use of org.eclipse.gef.palette.PaletteListener in project archi by archimatetool.
the class AbstractDiagramEditor method configurePaletteViewer.
/**
* Configure the Palette Viewer
*/
protected void configurePaletteViewer(final PaletteViewer viewer) {
PaletteViewerPreferences prefs = viewer.getPaletteViewerPreferences();
// Don't use large icons
prefs.setUseLargeIcons(PaletteViewerPreferences.LAYOUT_ICONS, false);
prefs.setUseLargeIcons(PaletteViewerPreferences.LAYOUT_COLUMNS, false);
prefs.setUseLargeIcons(PaletteViewerPreferences.LAYOUT_DETAILS, false);
prefs.setUseLargeIcons(PaletteViewerPreferences.LAYOUT_LIST, false);
// First time use so set to icons layout
if (!InternalGEFPlugin.getDefault().getPreferenceStore().getBoolean("com.archimatetool.paletteSet")) {
// $NON-NLS-1$
// $NON-NLS-1$
InternalGEFPlugin.getDefault().getPreferenceStore().setValue("com.archimatetool.paletteSet", true);
prefs.setLayoutSetting(PaletteViewerPreferences.LAYOUT_ICONS);
prefs.setCurrentUseLargeIcons(false);
}
// Register as drag source to drag onto the canvas
viewer.addDragSourceListener(new TemplateTransferDragSourceListener(viewer));
/*
* Tool Changed
*/
viewer.addPaletteListener(new PaletteListener() {
@Override
public void activeToolChanged(PaletteViewer palette, ToolEntry toolEntry) {
CreationFactory factory = (CreationFactory) toolEntry.getToolProperty(CreationTool.PROPERTY_CREATION_FACTORY);
if (factory != null) {
ComponentSelectionManager.INSTANCE.fireSelectionEvent(toolEntry, factory.getObjectType());
}
}
});
/*
* Mouse Hover
*/
viewer.getControl().addMouseTrackListener(new MouseTrackAdapter() {
@Override
public void mouseHover(MouseEvent e) {
ToolEntry toolEntry = findToolEntryAt(viewer, new Point(e.x, e.y));
if (toolEntry != null) {
CreationFactory factory = (CreationFactory) toolEntry.getToolProperty(CreationTool.PROPERTY_CREATION_FACTORY);
if (factory != null) {
ComponentSelectionManager.INSTANCE.fireSelectionEvent(toolEntry, factory.getObjectType());
}
}
}
});
viewer.getControl().addMouseListener(new MouseAdapter() {
/*
* If Shift key is pressed set Tool Entry to unload or not
*/
@Override
public void mouseDown(MouseEvent e) {
ToolEntry toolEntry = findToolEntryAt(viewer, new Point(e.x, e.y));
if (toolEntry != null) {
boolean shiftKey = (e.stateMask & SWT.SHIFT) != 0;
toolEntry.setToolProperty(AbstractTool.PROPERTY_UNLOAD_WHEN_FINISHED, !shiftKey);
}
}
/*
* Double-click on Format Painter
*/
@Override
public void mouseDoubleClick(MouseEvent e) {
ToolEntry toolEntry = findToolEntryAt(viewer, new Point(e.x, e.y));
if (toolEntry instanceof FormatPainterToolEntry) {
FormatPainterInfo.INSTANCE.reset();
}
}
});
}
Aggregations