use of org.eclipse.jface.layout.TableColumnLayout in project archi by archimatetool.
the class UserPropertiesManagerDialog method createTableControl.
private void createTableControl(Composite parent) {
Composite tableComp = new Composite(parent, SWT.BORDER);
TableColumnLayout tableLayout = new TableColumnLayout();
tableComp.setLayout(tableLayout);
tableComp.setLayoutData(new GridData(GridData.FILL_BOTH));
fTableViewer = new TableViewer(tableComp, SWT.MULTI | SWT.FULL_SELECTION);
fTableViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
// Mac Silicon Item height
UIUtils.fixMacSiliconItemHeight(fTableViewer.getTable());
// Edit cell on double-click and add Tab key traversal
TableViewerEditor.create(fTableViewer, new ColumnViewerEditorActivationStrategy(fTableViewer) {
@Override
protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
return super.isEditorActivationEvent(event) || (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION);
}
}, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK | ColumnViewerEditor.KEYBOARD_ACTIVATION);
fTableViewer.getTable().setHeaderVisible(true);
fTableViewer.getTable().setLinesVisible(true);
fTableViewer.setComparator(new ViewerComparator());
// Columns
TableViewerColumn columnOldKey = new TableViewerColumn(fTableViewer, SWT.NONE, 0);
columnOldKey.getColumn().setText(Messages.UserPropertiesManagerDialog_6);
tableLayout.setColumnData(columnOldKey.getColumn(), new ColumnWeightData(40, true));
TableViewerColumn columnNewKey = new TableViewerColumn(fTableViewer, SWT.NONE, 1);
columnNewKey.getColumn().setText(Messages.UserPropertiesManagerDialog_7);
tableLayout.setColumnData(columnNewKey.getColumn(), new ColumnWeightData(40, true));
columnNewKey.setEditingSupport(new KeyEditingSupport(fTableViewer));
TableViewerColumn columnUsedNumber = new TableViewerColumn(fTableViewer, SWT.NONE, 2);
// $NON-NLS-1$
columnUsedNumber.getColumn().setText("# " + Messages.UserPropertiesManagerDialog_8);
tableLayout.setColumnData(columnUsedNumber.getColumn(), new ColumnWeightData(20, true));
// Content Provider
fTableViewer.setContentProvider(new IStructuredContentProvider() {
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
@Override
public void dispose() {
}
@Override
public Object[] getElements(Object inputElement) {
return fKeysTable.entrySet().toArray();
}
});
// Label Provider
fTableViewer.setLabelProvider(new LabelCellProvider());
fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
fActionDelete.setEnabled(!event.getSelection().isEmpty());
fButtonDelete.setEnabled(!event.getSelection().isEmpty());
fActionRename.setEnabled(!event.getSelection().isEmpty());
fButtonRename.setEnabled(!event.getSelection().isEmpty());
}
});
// anything will do //$NON-NLS-1$
fTableViewer.setInput("");
}
use of org.eclipse.jface.layout.TableColumnLayout in project archi by archimatetool.
the class ProfilesManagerDialog method createTableControl.
/**
* Create the Table
*/
private void createTableControl(Composite parent) {
Composite tableComp = new Composite(parent, SWT.BORDER);
TableColumnLayout tableLayout = new TableColumnLayout();
tableComp.setLayout(tableLayout);
GridDataFactory.create(GridData.FILL_BOTH).applyTo(tableComp);
fTableViewer = new TableViewer(tableComp, SWT.MULTI | SWT.FULL_SELECTION);
GridDataFactory.create(GridData.FILL_BOTH).applyTo(fTableViewer.getControl());
// Mac Silicon Item height
UIUtils.fixMacSiliconItemHeight(fTableViewer.getTable());
// Edit cell on single-click and add Tab key traversal
TableViewerEditor.create(fTableViewer, new ColumnViewerEditorActivationStrategy(fTableViewer), ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK | ColumnViewerEditor.KEYBOARD_ACTIVATION);
fTableViewer.getTable().setHeaderVisible(true);
fTableViewer.getTable().setLinesVisible(true);
fTableViewer.setComparator(new ViewerComparator() {
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
return ((IProfile) e1).getName().compareToIgnoreCase(((IProfile) e2).getName());
}
});
// Columns
// Icon
TableViewerColumn columnIcon = new TableViewerColumn(fTableViewer, SWT.NONE, 0);
tableLayout.setColumnData(columnIcon.getColumn(), new ColumnWeightData(5, true));
// Name
TableViewerColumn columnName = new TableViewerColumn(fTableViewer, SWT.NONE, 1);
columnName.getColumn().setText(Messages.ProfilesManagerDialog_7);
tableLayout.setColumnData(columnName.getColumn(), new ColumnWeightData(50, true));
columnName.setEditingSupport(new NameEditingSupport(fTableViewer));
// Restricted to Concept Type
TableViewerColumn columnConceptType = new TableViewerColumn(fTableViewer, SWT.NONE, 2);
columnConceptType.getColumn().setText(Messages.ProfilesManagerDialog_8);
tableLayout.setColumnData(columnConceptType.getColumn(), new ColumnWeightData(35, true));
columnConceptType.setEditingSupport(new ConceptTypeEditingSupport(fTableViewer));
// Usage
TableViewerColumn columnUsage = new TableViewerColumn(fTableViewer, SWT.NONE, 3);
columnUsage.getColumn().setText(Messages.ProfilesManagerDialog_9);
tableLayout.setColumnData(columnUsage.getColumn(), new ColumnWeightData(10, true));
// Content Provider
fTableViewer.setContentProvider(new IStructuredContentProvider() {
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
@Override
public void dispose() {
}
@Override
public Object[] getElements(Object inputElement) {
return fProfilesTemp.values().toArray();
}
});
// Label Provider
fTableViewer.setLabelProvider(new LabelCellProvider());
fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = event.getStructuredSelection();
boolean enabled = !selection.isEmpty();
// Disable/enable some actions
fActionDelete.setEnabled(enabled);
fButtonDelete.setEnabled(enabled);
fActionChooseImage.setEnabled(enabled);
fActionClearImage.setEnabled(false);
// Image buttons/actions depend on some factors...
for (Object o : selection) {
IProfile profile = (IProfile) o;
// If any selected Profile can't have an image then this is disabled
if (!canHaveImage(profile)) {
fActionChooseImage.setEnabled(false);
}
// Enable clear image only if there is one image to clear in the selection
if (profile.getImagePath() != null) {
fActionClearImage.setEnabled(true);
}
}
fImageButton.setEnabled(fActionChooseImage.isEnabled() || fActionClearImage.isEnabled());
// Update Image Preview
updateImagePreview();
}
});
/*
* Table Double-click
*/
fTableViewer.getTable().addListener(SWT.MouseDoubleClick, (e) -> {
// Get Table item
Point pt = new Point(e.x, e.y);
TableItem item = fTableViewer.getTable().getItem(pt);
// Double-click into empty table creates new Profile
if (item == null) {
createNewProfile();
}
});
// anything will do //$NON-NLS-1$
fTableViewer.setInput("");
}
use of org.eclipse.jface.layout.TableColumnLayout in project archi by archimatetool.
the class NewNestedRelationDialog method createDialogArea.
@Override
protected Control createDialogArea(Composite parent) {
// Help
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HELP_ID);
setTitle(Messages.NewNestedRelationDialog_1);
String message = NLS.bind(Messages.NewNestedRelationDialog_2, fSourceObject.getName(), fTargetObject.getName());
setMessage(message);
Composite composite = (Composite) super.createDialogArea(parent);
Composite client = new Composite(composite, SWT.NULL);
GridLayout layout = new GridLayout(1, false);
client.setLayout(layout);
client.setLayoutData(new GridData(GridData.FILL_BOTH));
Composite tableComp = new Composite(client, SWT.BORDER);
tableComp.setLayout(new TableColumnLayout());
tableComp.setLayoutData(new GridData(GridData.FILL_BOTH));
fTableViewer = new RelationsTableViewer(tableComp, SWT.NONE);
fTableViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
// anything will do //$NON-NLS-1$
fTableViewer.setInput("");
fTableViewer.addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent event) {
okPressed();
}
});
fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
fSelected = (NestedConnectionInfo) ((IStructuredSelection) fTableViewer.getSelection()).getFirstElement();
}
});
if (fTableViewer.validRelations != null && !fTableViewer.validRelations.isEmpty()) {
fTableViewer.setSelection(new StructuredSelection(fTableViewer.validRelations.get(0)));
}
return composite;
}
use of org.eclipse.jface.layout.TableColumnLayout in project archi by archimatetool.
the class NewNestedRelationsDialog method createDialogArea.
@Override
protected Control createDialogArea(Composite parent) {
// Help
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HELP_ID);
setTitle(Messages.NewNestedRelationsDialog_2);
String message = NLS.bind(Messages.NewNestedRelationsDialog_3, fParentObject.getName());
setMessage(message);
Composite composite = (Composite) super.createDialogArea(parent);
Composite client = new Composite(composite, SWT.NULL);
GridLayout layout = new GridLayout(1, false);
client.setLayout(layout);
client.setLayoutData(new GridData(GridData.FILL_BOTH));
Composite tableComp = new Composite(client, SWT.BORDER);
tableComp.setLayout(new TableColumnLayout());
tableComp.setLayoutData(new GridData(GridData.FILL_BOTH));
fTableViewer = new RelationsTableViewer(tableComp, SWT.NONE);
fTableViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
// anything will do //$NON-NLS-1$
fTableViewer.setInput("");
return composite;
}
use of org.eclipse.jface.layout.TableColumnLayout in project archi by archimatetool.
the class UserPropertiesSection method createTableControl.
private void createTableControl(Composite parent) {
// Table Composite
Composite tableComp = createTableComposite(parent, SWT.NULL);
TableColumnLayout tableLayout = (TableColumnLayout) tableComp.getLayout();
// Table Viewer
fTableViewer = new TableViewer(tableComp, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
// Font
UIUtils.setFontFromPreferences(fTableViewer.getTable(), IPreferenceConstants.PROPERTIES_TABLE_FONT, true);
// Mac Silicon Item height
UIUtils.fixMacSiliconItemHeight(fTableViewer.getTable());
// Edit cell on double-click and add Tab key traversal
TableViewerEditor.create(fTableViewer, new ColumnViewerEditorActivationStrategy(fTableViewer) {
@Override
protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
return super.isEditorActivationEvent(event) || (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION);
}
}, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK | ColumnViewerEditor.KEYBOARD_ACTIVATION);
fTableViewer.getTable().setHeaderVisible(true);
fTableViewer.getTable().setLinesVisible(true);
addDragSupport();
addDropSupport();
// Help ID on table
PlatformUI.getWorkbench().getHelpSystem().setHelp(fTableViewer.getTable(), HELP_ID);
// Columns
TableViewerColumn columnBlank = new TableViewerColumn(fTableViewer, SWT.NONE, 0);
tableLayout.setColumnData(columnBlank.getColumn(), new ColumnWeightData(3, false));
columnBlank.getColumn().setWidth(38);
TableViewerColumn columnKey = new TableViewerColumn(fTableViewer, SWT.NONE, 1);
columnKey.getColumn().setText(Messages.UserPropertiesSection_0);
tableLayout.setColumnData(columnKey.getColumn(), new ColumnWeightData(20, true));
columnKey.setEditingSupport(new KeyEditingSupport(fTableViewer));
// Click on Key Table Header
columnKey.getColumn().addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
sortKeys();
}
});
TableViewerColumn columnValue = new TableViewerColumn(fTableViewer, SWT.NONE, 2);
columnValue.getColumn().setText(Messages.UserPropertiesSection_1);
tableLayout.setColumnData(columnValue.getColumn(), new ColumnWeightData(77, true));
columnValue.setEditingSupport(new ValueEditingSupport(fTableViewer));
// Content Provider
fTableViewer.setContentProvider(new IStructuredContentProvider() {
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
@Override
public void dispose() {
}
@Override
public Object[] getElements(Object inputElement) {
return ((IProperties) inputElement).getProperties().toArray();
}
});
// Label Provider
fTableViewer.setLabelProvider(new LabelCellProvider());
// Enable tooltips
ColumnViewerToolTipSupport.enableFor(fTableViewer);
// Toolbar
ToolBar toolBar = new ToolBar(parent, SWT.FLAT | SWT.VERTICAL);
getWidgetFactory().adapt(toolBar);
GridDataFactory.fillDefaults().align(SWT.END, SWT.TOP).applyTo(toolBar);
ToolBarManager toolBarmanager = new ToolBarManager(toolBar);
// New Property
fActionNewProperty = new Action(Messages.UserPropertiesSection_2) {
@Override
public void run() {
if (isAlive(fPropertiesElement)) {
// complete any current editing
fTableViewer.applyEditorValue();
int index = -1;
IProperty selected = (IProperty) ((IStructuredSelection) fTableViewer.getSelection()).getFirstElement();
if (selected != null) {
index = fPropertiesElement.getProperties().indexOf(selected) + 1;
}
IProperty property = IArchimateFactory.eINSTANCE.createProperty();
executeCommand(new NewPropertyCommand(fPropertiesElement.getProperties(), property, index));
fTableViewer.editElement(property, 1);
}
}
@Override
public String getToolTipText() {
return getText();
}
@Override
public ImageDescriptor getImageDescriptor() {
return IArchiImages.ImageFactory.getImageDescriptor(IArchiImages.ICON_PLUS);
}
};
// New Multiple Properties
fActionNewMultipleProperty = new Action(Messages.UserPropertiesSection_3) {
@Override
public void run() {
if (isAlive(fPropertiesElement)) {
MultipleAddDialog dialog = new MultipleAddDialog(fPage.getSite().getShell());
if (dialog.open() == Window.OK) {
executeCommand(dialog.getCommand());
}
}
}
@Override
public String getToolTipText() {
return getText();
}
@Override
public ImageDescriptor getImageDescriptor() {
return IArchiImages.ImageFactory.getImageDescriptor(IArchiImages.ICON_MUTIPLE);
}
};
// Remove Property
fActionRemoveProperty = new Action(Messages.UserPropertiesSection_4) {
@Override
public void run() {
if (isAlive(fPropertiesElement)) {
CompoundCommand compoundCmd = new EObjectNonNotifyingCompoundCommand(fPropertiesElement) {
@Override
public String getLabel() {
return getCommands().size() > 1 ? Messages.UserPropertiesSection_5 : Messages.UserPropertiesSection_6;
}
};
for (Object o : ((IStructuredSelection) fTableViewer.getSelection()).toList()) {
Command cmd = new RemovePropertyCommand(fPropertiesElement.getProperties(), (IProperty) o);
compoundCmd.add(cmd);
}
executeCommand(compoundCmd);
}
}
@Override
public String getToolTipText() {
return getText();
}
@Override
public ImageDescriptor getImageDescriptor() {
return IArchiImages.ImageFactory.getImageDescriptor(IArchiImages.ICON_SMALL_X);
}
};
fActionRemoveProperty.setEnabled(false);
// Manage
fActionShowKeyEditor = new Action(Messages.UserPropertiesSection_7) {
@Override
public void run() {
if (isAlive(fPropertiesElement)) {
UserPropertiesManagerDialog dialog = new UserPropertiesManagerDialog(fPage.getSite().getShell(), getArchimateModel());
dialog.open();
}
}
@Override
public String getToolTipText() {
return getText();
}
@Override
public ImageDescriptor getImageDescriptor() {
return IArchiImages.ImageFactory.getImageDescriptor(IArchiImages.ICON_COG);
}
};
toolBarmanager.add(fActionNewProperty);
toolBarmanager.add(fActionNewMultipleProperty);
toolBarmanager.add(fActionRemoveProperty);
toolBarmanager.add(fActionShowKeyEditor);
toolBarmanager.update(true);
/*
* Selection Listener
*/
fTableViewer.addSelectionChangedListener((e) -> {
fActionRemoveProperty.setEnabled(!e.getSelection().isEmpty());
});
/*
* Table Double-click
*/
fTableViewer.getTable().addListener(SWT.MouseDoubleClick, (e) -> {
// Get Table item
Point pt = new Point(e.x, e.y);
TableItem item = fTableViewer.getTable().getItem(pt);
// Double-click into empty table creates new Property
if (item == null) {
fActionNewProperty.run();
} else // Double-clicked in column 0 with item
if (item.getData() instanceof IProperty) {
Rectangle rect = item.getBounds(0);
if (rect.contains(pt)) {
handleDoubleClick((IProperty) item.getData());
}
}
});
/*
* Edit table row on key press
*/
fTableViewer.getTable().addKeyListener(KeyListener.keyPressedAdapter(e -> {
if (e.keyCode == SWT.CR) {
Object selected = fTableViewer.getStructuredSelection().getFirstElement();
if (selected != null) {
fTableViewer.editElement(selected, 1);
}
}
}));
hookContextMenu();
}
Aggregations