- int[] weights = new int[] { 2000, 8000 };
- dynamicArea.setWeights(weights);
- editorArea.setLayout(new GridLayout());
-
- editorTabFolder = new CTabFolder(editorArea, SWT.NONE);
- editorTabFolder.setLayoutData(CmsUiUtils.fillAll());
-
- // TODO make it dynamic
- Composite buttons = new Composite(editorTabFolder, SWT.NONE);
- buttons.setLayout(CmsUiUtils.noSpaceGridLayout());
- ToolBar toolBar = new ToolBar(buttons, SWT.NONE);
- toolBar.setLayoutData(new GridData(SWT.END, SWT.TOP, false, false));
- ToolItem deleteItem = new ToolItem(toolBar, SWT.PUSH);
- deleteItem.setImage(SuiteIcon.delete.getSmallIcon(theme));
- deleteItem.setEnabled(false);
- editorTabFolder.setTopRight(buttons);
-
- CTabItem defaultTab = new CTabItem(editorTabFolder, SWT.NONE);
- // defaultTab.setText("Home");
- defaultTab.setImage(dashboard.getSmallIcon(theme));
- defaultBody = new Composite(editorTabFolder, SWT.NONE);
- defaultTab.setControl(defaultBody);
- editorTabFolder.setSelection(defaultTab);
-
- // editorArea.setSingle(true);
+ }
+
+ /*
+ * LAYERS
+ */
+
+ Composite getCurrentLayer() {
+ if (currentLayer == null)
+ throw new IllegalStateException("No current layer");
+ return layers.get(currentLayer).getArea();
+ }
+
+ Composite getLayer(String id) {
+ if (!layers.containsKey(id))
+ throw new IllegalArgumentException("No layer " + id + " is available.");
+ return layers.get(id).getArea();
+ }
+
+ Composite switchToLayer(String layer) {
+ Composite current = getCurrentLayer();
+ if (currentLayer.equals(layer))
+ return current;
+ Composite toShow = getLayer(layer);
+ getDisplay().syncExec(() -> toShow.moveAbove(current));
+ currentLayer = layer;
+ return toShow;
+ }
+
+ void addLayer(String layer) {
+ WorkLayer workLayer = new WorkLayer(dynamicArea, getStyle());
+ layers.put(layer, workLayer);