Compare commits

...

1 Commits

Author SHA1 Message Date
guol
85d2f1353c TUP-5330 feature added: tMap - Batch Change of Expressions 2016-09-22 15:58:01 +08:00
4 changed files with 151 additions and 0 deletions

View File

@@ -44,6 +44,7 @@ VarsDataMapTableView.nullable=Nullable
OutputDataMapTableView.columnTitle.expression=Expression
OutputDataMapTableView.columnTitle.filterCondition=Filters conditions (AND)
DataMapTableView.buttonTooltip.activateExpressionFilter=Enable/disable expression filter
DataMapTableView.buttonTooltip.ColumnNameFilter=Enable/disable column name filter
DataMapTableView.buttonTooltip.addFilterRow=Add filter row
DataMapTableView.widgetTooltip.enableOutputReject=Enable/disable output reject
DataMapTableView.widgetTooltip.enableLookupInnerJoin=Enable/disable lookup inner join reject

View File

@@ -81,6 +81,8 @@ public class ExternalMapperTable extends AbstractExternalMapTable implements Ser
private boolean activateCondensedTool;
private boolean activateColumnNameFilter;
private String matchingMode;
private String lookupMode;
@@ -527,6 +529,14 @@ public class ExternalMapperTable extends AbstractExternalMapTable implements Ser
return false;
}
public boolean isActivateColumnNameFilter() {
return this.activateColumnNameFilter;
}
public void setActiveColumnNameFilter(boolean activateColumnNameFilter) {
this.activateColumnNameFilter = activateColumnNameFilter;
}
public boolean isActivateCondensedTool() {
return this.activateCondensedTool;
}

View File

@@ -48,6 +48,8 @@ public abstract class AbstractInOutTable extends AbstractDataMapTable {
private boolean activateExpressionFilter;
private boolean activateColumnNameFilter;
private boolean activateCondensedTool;
protected List<GlobalMapEntry> mapSettingEntries = new ArrayList<GlobalMapEntry>();
@@ -103,6 +105,7 @@ public abstract class AbstractInOutTable extends AbstractDataMapTable {
if (externalMapperTable != null) {
this.expressionFilterEntry.setExpression(externalMapperTable.getExpressionFilter());
this.activateExpressionFilter = externalMapperTable.isActivateExpressionFilter();
this.activateColumnNameFilter = externalMapperTable.isActivateColumnNameFilter();
this.activateCondensedTool = externalMapperTable.isActivateCondensedTool();
this.id = externalMapperTable.getId();
this.isRepository = this.id == null ? false : true;
@@ -202,6 +205,14 @@ public abstract class AbstractInOutTable extends AbstractDataMapTable {
this.activateExpressionFilter = activateExpressionFilter;
}
public boolean isActivateColumnNameFilter() {
return this.activateColumnNameFilter;
}
public void setActiveColumnNameFilter(boolean activateColumnNameFilter) {
this.activateColumnNameFilter = activateColumnNameFilter;
}
public boolean isActivateCondensedTool() {
return this.activateCondensedTool;
}

View File

@@ -35,6 +35,8 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ExtendedModifyEvent;
@@ -245,6 +247,8 @@ public abstract class DataMapTableView extends Composite implements IDataMapTabl
private Text constraintExpressionTextEditor;
private Text columnNameTextFilter;
private Cursor currentCursor;
private final ExpressionColorProvider expressionColorProvider;
@@ -319,6 +323,8 @@ public abstract class DataMapTableView extends Composite implements IDataMapTabl
protected GridData tableForMapSettingGridData;
protected GridData nameFilterTextGridData;
private ExpressionProposalProvider expressionProposalProviderForExpressionFilter;
private UnnotifiableColorStyledText expressionFilterText;
@@ -352,8 +358,12 @@ public abstract class DataMapTableView extends Composite implements IDataMapTabl
private ToolItem activateFilterCheck;
private ToolItem columnNameFilter;
private boolean previousStateCheckFilter;
private boolean previousColumnNameFilter;
private IExpressionBuilderDialogController dialog;
private boolean customSized;
@@ -548,6 +558,10 @@ public abstract class DataMapTableView extends Composite implements IDataMapTabl
initExtraTable();
}
if (mapperManager.isAdvancedMap() && this instanceof OutputDataMapTableView) {
createColumnNameFilter();
}
createContent();
if (!mapperManager.componentIsReadOnly()) {
@@ -1558,6 +1572,7 @@ public abstract class DataMapTableView extends Composite implements IDataMapTabl
if (mapperManager.isAdvancedMap()) {
createActivateFilterCheck();
createColumnNameFilterCheck();
} else {
@@ -1633,6 +1648,36 @@ public abstract class DataMapTableView extends Composite implements IDataMapTabl
// /////////////////////////////////////////////////////////////////
}
protected void createColumnNameFilterCheck() {
AbstractInOutTable table = (AbstractInOutTable) getDataMapTable();
boolean isErrorReject = false;
if (getDataMapTable() instanceof OutputTable) {
isErrorReject = getMapperManager().ERROR_REJECT.equals(getDataMapTable().getName());
}
columnNameFilter = new ToolItem(toolBarActions, SWT.CHECK);
columnNameFilter.setEnabled(!mapperManager.componentIsReadOnly() && !isErrorReject);
previousColumnNameFilter = table.isActivateColumnNameFilter();
columnNameFilter.setSelection(table.isActivateColumnNameFilter());
columnNameFilter.setToolTipText(Messages.getString("DataMapTableView.buttonTooltip.ColumnNameFilter")); //$NON-NLS-1$
columnNameFilter.setImage(ImageProviderMapper.getImage(ImageInfo.ACTIVATE_FILTER_ICON));
if (columnNameFilter != null) {
columnNameFilter.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
// ((OutputTable) abstractDataMapTable).setActiveColumnNameFilter(columnNameFilter.getSelection());
updateColumnNameFilterTextAndLayout(true);
previousColumnNameFilter = columnNameFilter.getSelection();
}
});
}
}
protected void createToolItems() {
}
@@ -2637,6 +2682,62 @@ public abstract class DataMapTableView extends Composite implements IDataMapTabl
}
}
protected void createColumnNameFilter() {
if (mapperManager.isAdvancedMap() && getDataMapTable() instanceof AbstractInOutTable) {
final AbstractInOutTable table = (AbstractInOutTable) getDataMapTable();
columnNameTextFilter = new Text(getCenterComposite(), SWT.BORDER);
columnNameTextFilter.setToolTipText("For column name filter"); //$NON-NLS-1$
columnNameTextFilter.setEditable(true);
nameFilterTextGridData = new GridData(GridData.FILL_HORIZONTAL);
nameFilterTextGridData.minimumHeight = 10;
nameFilterTextGridData.heightHint = 15;
nameFilterTextGridData.minimumWidth = 25;
nameFilterTextGridData.widthHint = 50;
columnNameTextFilter.setLayoutData(nameFilterTextGridData);
if (mapperManager.componentIsReadOnly()) {
columnNameTextFilter.setEditable(false);
}
columnNameTextFilter.setVisible(table.isActivateColumnNameFilter());
nameFilterTextGridData.exclude = !table.isActivateColumnNameFilter();
columnNameTextFilter.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
tableViewerCreatorForColumns.getTableViewer().refresh();
}
});
}
}
public String getNameFilter() {
return this.columnNameTextFilter.getText().trim();
}
class selectorViewerFilter extends ViewerFilter {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
// String pattern = getNameFilter();
// SearchPattern matcher = new SearchPattern();
// matcher.setPattern(pattern);
// if (element instanceof TableNode) {
// TableNode node = (TableNode) element;
// if (node.getType() == TableNode.TABLE) {
// if (!matcher.matches(node.getValue())) {
// return false;
// }
// }
// }
return true;
}
}
/**
* DOC amaumont Comment method "onExpressionFilterTextResized".
*/
@@ -2910,6 +3011,34 @@ public abstract class DataMapTableView extends Composite implements IDataMapTabl
correctAsynchStyledTextWrapBug();
}
protected void updateColumnNameFilterTextAndLayout(boolean buttonPressed) {
final AbstractInOutTable table = (AbstractInOutTable) getDataMapTable();
if (columnNameFilter.getSelection()) {
columnNameTextFilter.setVisible(true);
nameFilterTextGridData.exclude = false;
table.setActiveColumnNameFilter(true);
// mapperManager.getUiManager().parseExpression(expressionFilterText.getText(), table.getExpressionFilter(),
// false,
// false, false);
} else {
columnNameTextFilter.setVisible(false);
nameFilterTextGridData.exclude = true;
table.setActiveColumnNameFilter(false);
// mapperManager.removeTableEntry(table.getExpressionFilter());
}
// updateGridDataHeightForTableConstraints();
if (buttonPressed) {
DataMapTableView.this.changeSize(DataMapTableView.this.getPreferredSize(false, true, false), true, true);
}
DataMapTableView.this.layout();
mapperManager.getUiManager().refreshBackground(true, false);
if (columnNameTextFilter.isVisible() && buttonPressed) {
columnNameTextFilter.setFocus();
}
}
/**
*
* DOC amaumont InputDataMapTableView class global comment. Detailled comment <br/>