package org.argeo.suite.ui;
+import static org.argeo.suite.ui.SuiteIcon.dashboard;
+
+import org.argeo.cms.ui.CmsTheme;
+import org.argeo.cms.ui.CmsView;
import org.argeo.cms.ui.util.CmsUiUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
-public class ArgeoSuiteUi {
- private Composite parent;
+/** The {@link CmsView} for the work ergonomics of Argeo Suite. */
+public class ArgeoSuiteUi extends Composite {
+ private static final long serialVersionUID = 6207018859086689108L;
private Composite header;
+ private Composite belowHeader;
private Composite leadPane;
private SashForm dynamicArea;
private Composite entryArea;
- private CTabFolder editorArea;
+ private Composite editorArea;
+ private CTabFolder editorTabFolder;
private Composite defaultBody;
+ private CmsTheme theme;
+
public ArgeoSuiteUi(Composite parent, int style) {
- this.parent = parent;
- parent.setLayout(CmsUiUtils.noSpaceGridLayout());
+ super(parent, style);
+ theme = CmsTheme.getCmsTheme(parent);
+ this.setLayout(CmsUiUtils.noSpaceGridLayout());
- header = new Composite(parent, SWT.NONE);
- CmsUiUtils.style(header, WorkStyles.header);
+ header = new Composite(this, SWT.NONE);
+ CmsUiUtils.style(header, SuiteStyle.header);
header.setLayoutData(CmsUiUtils.fillWidth());
- Composite belowHeader = new Composite(parent, SWT.NONE);
+ belowHeader = new Composite(this, SWT.NONE);
belowHeader.setLayoutData(CmsUiUtils.fillAll());
belowHeader.setLayout(CmsUiUtils.noSpaceGridLayout(2));
dynamicArea = new SashForm(belowHeader, SWT.HORIZONTAL);
}
leadPane.setLayoutData(CmsUiUtils.fillHeight());
- CmsUiUtils.style(leadPane, WorkStyles.leadPane);
+ CmsUiUtils.style(leadPane, SuiteStyle.leadPane);
dynamicArea.setLayoutData(CmsUiUtils.fillAll());
if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
- editorArea = new CTabFolder(dynamicArea, SWT.NONE);
- entryArea = new Composite(dynamicArea, SWT.NONE);
+ editorArea = new Composite(dynamicArea, SWT.BORDER);
+ entryArea = new Composite(dynamicArea, SWT.BORDER);
} else {
entryArea = new Composite(dynamicArea, SWT.NONE);
- editorArea = new CTabFolder(dynamicArea, SWT.NONE);
+ editorArea = new Composite(dynamicArea, SWT.NONE);
}
int[] weights = new int[] { 2000, 8000 };
dynamicArea.setWeights(weights);
-
- Composite buttons = new Composite(editorArea, SWT.NONE);
- buttons.setLayout(new RowLayout(SWT.HORIZONTAL));
- Button delete = new Button(buttons, SWT.PUSH);
- delete.setText("Delete");
- editorArea.setTopRight(buttons);
-
- CTabItem defaultTab = new CTabItem(editorArea, SWT.NONE);
- defaultTab.setText("Home");
- defaultBody = new Composite(editorArea, SWT.NONE);
+ 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);
}
- Composite getParent() {
- return parent;
- }
+ /*
+ * GETTERS / SETTERS
+ */
Composite getHeader() {
return header;
return entryArea;
}
- CTabFolder getEditorArea() {
- return editorArea;
+ CTabFolder getEditorTabFolder() {
+ return editorTabFolder;
}
Composite getDefaultBody() {
return defaultBody;
}
+ Composite getBelowHeader() {
+ return belowHeader;
+ }
+
}