use of org.eclipse.nebula.widgets.gallery.Gallery in project archi by archimatetool.
the class ImageManagerDialog method createDialogArea.
@Override
protected Control createDialogArea(Composite parent) {
// Help
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HELP_ID);
setTitle(Messages.ImageManagerDialog_1);
setMessage(Messages.ImageManagerDialog_2);
Composite composite = (Composite) super.createDialogArea(parent);
Composite client = new Composite(composite, SWT.NULL);
GridLayout layout = new GridLayout(2, false);
client.setLayout(layout);
client.setLayoutData(new GridData(GridData.FILL_BOTH));
SashForm sash = new SashForm(client, SWT.HORIZONTAL);
sash.setLayoutData(new GridData(GridData.FILL_BOTH));
GridData gd = new GridData(GridData.FILL_BOTH);
gd.widthHint = 580;
gd.heightHint = 300;
sash.setLayoutData(gd);
// Table
Composite tableComp = new Composite(sash, SWT.BORDER);
layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
tableComp.setLayout(layout);
CLabel label = new CLabel(tableComp, SWT.NULL);
label.setText(Messages.ImageManagerDialog_3);
Composite tableComp2 = new Composite(tableComp, SWT.NULL);
tableComp2.setLayout(new TableColumnLayout());
tableComp2.setLayoutData(new GridData(GridData.FILL_BOTH));
fModelsViewer = new ModelsViewer(tableComp2);
fModelsViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
// $NON-NLS-1$
fModelsViewer.setInput("");
fModelsViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
Object o = ((IStructuredSelection) event.getSelection()).getFirstElement();
if (o instanceof IArchimateModel) {
fScale.setEnabled(true);
clearGallery();
updateGallery((IArchimateModel) o);
}
}
});
// Mouse Up action...
fModelsViewer.getControl().addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
Object o = ((IStructuredSelection) fModelsViewer.getSelection()).getFirstElement();
// Open...
if (o == OPEN) {
handleOpenAction();
}
}
});
Composite galleryComposite = new Composite(sash, SWT.NULL);
layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
galleryComposite.setLayout(layout);
fGallery = new Gallery(galleryComposite, SWT.V_SCROLL | SWT.BORDER);
fGallery.setLayoutData(new GridData(GridData.FILL_BOTH));
// Renderers
final NoGroupRenderer groupRenderer = new NoGroupRenderer();
groupRenderer.setItemSize(DEFAULT_GALLERY_ITEM_SIZE, DEFAULT_GALLERY_ITEM_SIZE);
groupRenderer.setAutoMargin(true);
groupRenderer.setMinMargin(10);
fGallery.setGroupRenderer(groupRenderer);
final DefaultGalleryItemRenderer itemRenderer = new DefaultGalleryItemRenderer();
// itemRenderer.setDropShadows(true);
// itemRenderer.setDropShadowsSize(7);
itemRenderer.setShowRoundedSelectionCorners(true);
fGallery.setItemRenderer(itemRenderer);
// Root Group
fGalleryRoot = new GalleryItem(fGallery, SWT.NONE);
// Slider
fScale = new Scale(galleryComposite, SWT.HORIZONTAL);
gd = new GridData(SWT.END, SWT.NONE, false, false);
gd.widthHint = 120;
fScale.setLayoutData(gd);
fScale.setMinimum(MIN_GALLERY_ITEM_SIZE);
fScale.setMaximum(MAX_GALLERY_ITEM_SIZE);
fScale.setIncrement(8);
fScale.setPageIncrement(32);
fScale.setSelection(DEFAULT_GALLERY_ITEM_SIZE);
fScale.setEnabled(false);
fScale.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
int inc = fScale.getSelection();
itemRenderer.setDropShadows(inc >= 96);
groupRenderer.setItemSize(inc, inc);
}
});
// Gallery selections
fGallery.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (e.item instanceof GalleryItem) {
// $NON-NLS-1$
fUserSelectedImagePath = (String) ((GalleryItem) e.item).getData("imagepath");
// $NON-NLS-1$
fUserSelectedModel = (IArchimateModel) ((GalleryItem) e.item).getData("model");
} else {
fUserSelectedImagePath = null;
fUserSelectedModel = null;
}
}
});
// Double-clicks
fGallery.addListener(SWT.MouseDoubleClick, new Listener() {
@Override
public void handleEvent(Event event) {
GalleryItem item = fGallery.getItem(new Point(event.x, event.y));
if (item != null) {
okPressed();
}
}
});
// Dispose of the images here not in the main dispose() method because if the help system is showing then
// the TrayDialog is resized and this control is asked to relayout.
fGallery.addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
disposeImages();
}
});
sash.setWeights(new int[] { 30, 70 });
// If we have this model in the table, select it
if (fUserSelectedModel != null && ((ModelsViewerContentProvider) fModelsViewer.getContentProvider()).getModels().contains(fUserSelectedModel)) {
fModelsViewer.setSelection(new StructuredSelection(fUserSelectedModel));
// Make selection of image path if it's set
if (fUserSelectedImagePath != null) {
for (GalleryItem item : fGalleryRoot.getItems()) {
// $NON-NLS-1$
String imagePath = (String) item.getData("imagepath");
if (imagePath != null && fUserSelectedImagePath.equals(imagePath)) {
fGallery.setSelection(new GalleryItem[] { item });
break;
}
}
}
} else // Else select the first model in the table, if there is one
{
Object element = fModelsViewer.getElementAt(0);
if (element != null) {
fModelsViewer.setSelection(new StructuredSelection(element), true);
}
}
return composite;
}
use of org.eclipse.nebula.widgets.gallery.Gallery in project archi by archimatetool.
the class NewModelFromTemplateWizardPage method createControl.
@Override
public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
container.setLayout(new GridLayout());
setControl(container);
// Help
PlatformUI.getWorkbench().getHelpSystem().setHelp(container, getHelpID());
GridData gd;
SashForm sash1 = new SashForm(container, SWT.HORIZONTAL);
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
gd.widthHint = 800;
gd.heightHint = 500;
sash1.setLayoutData(gd);
Composite tableComposite = new Composite(sash1, SWT.BORDER);
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
layout.verticalSpacing = 0;
tableComposite.setLayout(layout);
// Inbuilt Templates
gd = new GridData(SWT.FILL, SWT.FILL, true, false);
fInbuiltTableViewer = createGroupsTableViewer(tableComposite, Messages.NewModelFromTemplateWizardPage_2, gd);
fInbuiltTableViewer.setInput(new Object[] { fTemplateManager.getInbuiltTemplateGroup(), OPEN, MANAGE });
// Mouse UP actions...
fInbuiltTableViewer.getControl().addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
Object o = ((IStructuredSelection) fInbuiltTableViewer.getSelection()).getFirstElement();
// Open...
if (o == OPEN) {
handleOpenAction();
} else // Manage...
if (o == MANAGE) {
handleManageTemplatesAction();
}
}
});
// My Templates
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
fUserTableViewer = createGroupsTableViewer(tableComposite, Messages.NewModelFromTemplateWizardPage_3, gd);
fUserTableViewer.setComparator(new ViewerComparator() {
@Override
public int category(Object element) {
if (element == fTemplateManager.AllUserTemplatesGroup) {
return 0;
}
return 1;
}
});
fUserTableViewer.setInput(fTemplateManager);
SashForm sash2 = new SashForm(sash1, SWT.VERTICAL);
Composite galleryComposite = new Composite(sash2, SWT.NULL);
layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
// layout.verticalSpacing = 0;
galleryComposite.setLayout(layout);
fGallery = new Gallery(galleryComposite, SWT.V_SCROLL | SWT.BORDER);
fGallery.setLayoutData(new GridData(GridData.FILL_BOTH));
// Renderers
final NoGroupRenderer groupRenderer = new NoGroupRenderer();
groupRenderer.setItemSize(DEFAULT_GALLERY_ITEM_SIZE, DEFAULT_GALLERY_ITEM_SIZE);
groupRenderer.setAutoMargin(true);
groupRenderer.setMinMargin(10);
fGallery.setGroupRenderer(groupRenderer);
final DefaultGalleryItemRenderer itemRenderer = new DefaultGalleryItemRenderer();
itemRenderer.setDropShadows(true);
itemRenderer.setDropShadowsSize(7);
itemRenderer.setShowRoundedSelectionCorners(false);
fGallery.setItemRenderer(itemRenderer);
// Root Group
fGalleryRoot = new GalleryItem(fGallery, SWT.NONE);
// Slider
final Scale scale = new Scale(galleryComposite, SWT.HORIZONTAL);
gd = new GridData(SWT.END, SWT.NONE, false, false);
gd.widthHint = 120;
scale.setLayoutData(gd);
scale.setMaximum(480);
scale.setMinimum(64);
scale.setIncrement(8);
scale.setPageIncrement(64);
scale.setSelection(DEFAULT_GALLERY_ITEM_SIZE);
scale.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
int inc = scale.getSelection();
itemRenderer.setDropShadows(inc >= DEFAULT_GALLERY_ITEM_SIZE);
groupRenderer.setItemSize(inc, inc);
}
});
// Description
fDescriptionText = new StyledText(sash2, SWT.V_SCROLL | SWT.READ_ONLY | SWT.WRAP | SWT.BORDER);
fGallery.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (e.item instanceof GalleryItem) {
ITemplate template = (ITemplate) ((GalleryItem) e.item).getData();
updateWizard(template);
} else {
updateWizard(null);
}
}
});
// Double-clicks
fGallery.addListener(SWT.MouseDoubleClick, new Listener() {
@Override
public void handleEvent(Event event) {
GalleryItem item = fGallery.getItem(new Point(event.x, event.y));
if (item != null) {
((ExtendedWizardDialog) getContainer()).finishPressed();
}
}
});
// Mouse move shows thumbnails
registerMouseMoveHandler();
// Select first group on table
selectFirstTableItem();
sash1.setWeights(new int[] { 30, 70 });
sash2.setWeights(new int[] { 70, 30 });
// Yes it's OK
setPageComplete(true);
}
Aggregations