use of org.talend.designer.filemultischemas.ui.preview.MultiSchemasShadowProcessPreview in project tdi-studio-se by Talend.
the class MultiSchemasUI method createHeaderSashForm.
private void createHeaderSashForm(Composite headerComposite) {
GridLayout layout;
headerSashForm = new SashForm(headerComposite, SWT.NONE);
headerSashForm.setLayout(new FillLayout());
headerSashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
headerSashForm.setSashWidth(ExternalMultiSchemasUIProperties.SASHFORM_WIDTH);
//
multiSchemasFilePreview = new MultiSchemasShadowProcessPreview(this, headerSashForm);
multiSchemasFilePreview.newTablePreview();
Composite struComp = new Composite(headerSashForm, SWT.NONE);
layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
struComp.setLayout(layout);
headerSashForm.setWeights(ExternalMultiSchemasUIProperties.getHeaderSashformWeights());
//
fetchBtn = new Button(struComp, SWT.PUSH);
fetchBtn.setText(ExternalMultiSchemasUIProperties.FETCH_LABEL);
fetchBtn.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
//
schemaTreeViewer = new TreeViewer(struComp, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
Tree tree = schemaTreeViewer.getTree();
tree.setLayoutData(new GridData(GridData.FILL_BOTH));
tree.setHeaderVisible(true);
tree.setLinesVisible(true);
schemaTreeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
// SchemasTreeDnD dnd = new SchemasTreeDnD(schemaTreeViewer);
// dnd.addDragAndDrop();
schemaTreeViewer.setContentProvider(new SchemasTreeContentProvider());
schemaTreeViewer.setLabelProvider(new SchemasTreeLabelProvider());
// schemaTreeViewer.setSorter(new ViewerSorter() {
//
// @SuppressWarnings("unchecked")
// @Override
// public int compare(Viewer viewer, Object e1, Object e2) {
// if (e1 instanceof SchemasKeyData && e2 instanceof SchemasKeyData) {
// return getComparator().compare(((SchemasKeyData) e1).getKeyName(), ((SchemasKeyData) e2).getKeyName());
// }
// return super.compare(viewer, e1, e2);
// }
//
// });
TreeColumn column = new TreeColumn(tree, SWT.LEFT);
column.setWidth(55);
//$NON-NLS-1$
column.setText("Schema");
column.setResizable(true);
column = new TreeColumn(tree, SWT.LEFT);
column.setWidth(100);
//$NON-NLS-1$
column.setText("Record");
column.setResizable(true);
column = new TreeColumn(tree, SWT.LEFT);
column.setWidth(20);
//$NON-NLS-1$
column.setText("Separator");
column.setResizable(true);
schemaTreeViewer.setColumnProperties(new String[] { ExternalMultiSchemasUIProperties.COLUMN_KEY, ExternalMultiSchemasUIProperties.COLUMN_RECORD, ExternalMultiSchemasUIProperties.COLUMN_SEPARATOR });
// hywang for 10263
int columnCount = schemaTreeViewer.getTree().getColumnCount();
CellEditor[] editors = new CellEditor[columnCount];
for (int i = 0; i < columnCount; i++) {
editors[i] = new TextCellEditor(schemaTreeViewer.getTree());
}
schemaTreeViewer.setCellEditors(editors);
schemaTreeViewer.setCellModifier(new ICellModifier() {
public void modify(Object element, String property, Object value) {
if (element != null) {
if (element instanceof TreeItem) {
TreeItem item = (TreeItem) element;
if (item.getData() != null) {
if (item.getData() instanceof SchemasKeyData) {
SchemasKeyData key = (SchemasKeyData) item.getData();
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_KEY)) {
final boolean flag = checkKeyValue(key.getUniqueRecord(), value.toString());
if (flag) {
key.setUniqueRecord(value.toString());
}
}
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_RECORD)) {
key.setRecordType(value.toString());
}
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_SEPARATOR)) {
key.setSeparator(value.toString());
}
// Object input = schemaTreeViewer.getInput();
// SchemasKeyData in = (SchemasKeyData) input;
// if (in.getChildren().contains(key)) {
// in.getChildren().remove(in.getChildren().indexOf(key));
// List<MultiMetadataColumn> colums = multiSchemaManager.createPropertiesColumns(key);
// key.setMetadataColumns(colums);
// in.getChildren().add(key);
// }
}
schemaTreeViewer.refresh();
}
}
}
}
public Object getValue(Object element, String property) {
String record = "";
if (element != null) {
if (element instanceof SchemasKeyData) {
SchemasKeyData key = (SchemasKeyData) element;
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_KEY)) {
record = key.getUniqueRecord();
}
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_RECORD)) {
record = key.getRecordType();
}
if (property.equals(ExternalMultiSchemasUIProperties.COLUMN_SEPARATOR)) {
record = key.getSeparator();
}
}
}
return record;
}
public boolean canModify(Object element, String property) {
return true;
}
});
Composite operateTreeComposite = new Composite(struComp, SWT.NONE);
operateTreeComposite.setLayout(new GridLayout(3, false));
operateTreeComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
addRow = new Button(operateTreeComposite, SWT.NONE);
addRow.setText("Add");
removeRow = new Button(operateTreeComposite, SWT.NONE);
removeRow.setText("Remove");
removeRow.setEnabled(false);
editSchema = new Button(operateTreeComposite, SWT.NONE);
editSchema.setText("Edit Columns");
editSchema.setEnabled(false);
Composite operation = new Composite(struComp, SWT.NONE);
operation.setLayout(new GridLayout(2, false));
operation.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
leftBtn = new Button(operation, SWT.PUSH);
leftBtn.setToolTipText("Left");
leftBtn.setImage(ImageProvider.getImage(EImage.LEFT_ICON));
leftBtn.setEnabled(false);
rightBtn = new Button(operation, SWT.PUSH);
rightBtn.setToolTipText("Right");
rightBtn.setImage(ImageProvider.getImage(EImage.RIGHT_ICON));
rightBtn.setEnabled(false);
}
Aggregations