未验证 提交 29fe5714 编写于 作者: S Serge Rider 提交者: GitHub

Merge pull request #13077 from dbeaver/datatransfer-columns-table-ordering#12001

#12001 Allow changing order of table columns in columns mapping dialog
......@@ -47,6 +47,7 @@ import org.jkiss.dbeaver.ui.SharedTextColors;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.CustomComboBoxCellEditor;
import org.jkiss.dbeaver.ui.controls.ListContentProvider;
import org.jkiss.dbeaver.ui.controls.ViewerColumnController;
import org.jkiss.dbeaver.ui.dialogs.BaseDialog;
import org.jkiss.utils.CommonUtils;
......@@ -135,41 +136,29 @@ class ColumnsMappingDialog extends BaseDialog {
}
});
{
TableViewerColumn columnSource = new TableViewerColumn(mappingViewer, SWT.LEFT);
columnSource.setLabelProvider(new CellLabelProvider() {
final ViewerColumnController<?, ?> columnController = new ViewerColumnController<>(getClass().getName(), mappingViewer);
columnController.addColumn(DTUIMessages.columns_mapping_dialog_column_source_text, null, SWT.LEFT, true, false, new ColumnLabelProvider() {
@Override
public void update(ViewerCell cell)
{
DatabaseMappingAttribute attrMapping = (DatabaseMappingAttribute) cell.getElement();
cell.setText(DBUtils.getObjectFullName(attrMapping.getSource(), DBPEvaluationContext.UI));
if (attrMapping.getIcon() != null) {
cell.setImage(DBeaverIcons.getImage(attrMapping.getIcon()));
public void update(ViewerCell cell) {
DatabaseMappingAttribute mapping = (DatabaseMappingAttribute) cell.getElement();
cell.setText(DBUtils.getObjectFullName(mapping.getSource(), DBPEvaluationContext.UI));
if (mapping.getIcon() != null) {
cell.setImage(DBeaverIcons.getImage(mapping.getIcon()));
}
}
});
columnSource.getColumn().setText(DTUIMessages.columns_mapping_dialog_column_source_text);
columnSource.getColumn().setWidth(170);
}
{
TableViewerColumn columnSourceType = new TableViewerColumn(mappingViewer, SWT.LEFT);
columnSourceType.setLabelProvider(new CellLabelProvider() {
columnController.addColumn(DTUIMessages.columns_mapping_dialog_column_source_type_text, null, SWT.LEFT, true, false, new ColumnLabelProvider() {
@Override
public void update(ViewerCell cell)
{
public void update(ViewerCell cell) {
cell.setText(((DatabaseMappingAttribute) cell.getElement()).getSourceType());
}
});
columnSourceType.getColumn().setText(DTUIMessages.columns_mapping_dialog_column_source_type_text);
columnSourceType.getColumn().setWidth(100);
}
{
TableViewerColumn columnTarget = new TableViewerColumn(mappingViewer, SWT.LEFT);
columnTarget.setLabelProvider(new CellLabelProvider() {
columnController.addColumn(DTUIMessages.columns_mapping_dialog_column_target_text, null, SWT.LEFT, true, false, false, null, new ColumnLabelProvider() {
@Override
public void update(ViewerCell cell)
{
public void update(ViewerCell cell) {
DatabaseMappingAttribute mapping = (DatabaseMappingAttribute) cell.getElement();
cell.setText(mapping.getTargetName());
if (mapping.getMappingType() == DatabaseMappingType.unspecified) {
......@@ -179,10 +168,7 @@ class ColumnsMappingDialog extends BaseDialog {
}
cell.setFont(boldFont);
}
});
columnTarget.getColumn().setText(DTUIMessages.columns_mapping_dialog_column_target_text);
columnTarget.getColumn().setWidth(170);
columnTarget.setEditingSupport(new EditingSupport(mappingViewer) {
}, new EditingSupport(mappingViewer) {
@Override
protected CellEditor getCellEditor(Object element)
{
......@@ -254,23 +240,16 @@ class ColumnsMappingDialog extends BaseDialog {
}
}
});
}
{
TableViewerColumn columnTargetType = new TableViewerColumn(mappingViewer, SWT.LEFT);
columnTargetType.setLabelProvider(new CellLabelProvider() {
columnController.addColumn(DTUIMessages.columns_mapping_dialog_column_target_type_text, null, SWT.LEFT, true, false, false, null, new ColumnLabelProvider() {
@Override
public void update(ViewerCell cell)
{
public void update(ViewerCell cell) {
DatabaseMappingAttribute attrMapping = (DatabaseMappingAttribute) cell.getElement();
DBPDataSource dataSource = settings.getTargetDataSource(attrMapping);
cell.setText(attrMapping.getTargetType(dataSource, true));
cell.setFont(boldFont);
}
});
columnTargetType.getColumn().setText(DTUIMessages.columns_mapping_dialog_column_target_type_text);
columnTargetType.getColumn().setWidth(100);
columnTargetType.setEditingSupport(new EditingSupport(mappingViewer) {
}, new EditingSupport(mappingViewer) {
@Override
protected CellEditor getCellEditor(Object element)
{
......@@ -306,28 +285,25 @@ class ColumnsMappingDialog extends BaseDialog {
mappingViewer.refresh(element);
}
});
}
{
TableViewerColumn columnType = new TableViewerColumn(mappingViewer, SWT.LEFT);
columnType.setLabelProvider(new CellLabelProvider() {
columnController.addColumn(DTUIMessages.columns_mapping_dialog_column_type_text_mapping, null, SWT.LEFT, true, false, new ColumnLabelProvider() {
@Override
public void update(ViewerCell cell)
{
DatabaseMappingAttribute mapping = (DatabaseMappingAttribute) cell.getElement();
String text = "";
public String getText(Object element) {
DatabaseMappingAttribute mapping = (DatabaseMappingAttribute) element;
switch (mapping.getMappingType()) {
case unspecified: text = "?"; break;
case existing: text = DTUIMessages.columns_mapping_dialog_cell_text_existing; break;
case create: text = DTUIMessages.columns_mapping_dialog_cell_text_new; break;
case skip: text = DTUIMessages.columns_mapping_dialog_cell_text_skip; break;
case existing:
return DTUIMessages.columns_mapping_dialog_cell_text_existing;
case create:
return DTUIMessages.columns_mapping_dialog_cell_text_new;
case skip:
return DTUIMessages.columns_mapping_dialog_cell_text_skip;
default:
return "?";
}
cell.setText(text);
}
});
columnType.getColumn().setText(DTUIMessages.columns_mapping_dialog_column_type_text_mapping);
columnType.getColumn().setWidth(60);
}
columnController.createColumns();
mappingViewer.setInput(attributeMappings);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册