import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.api.NodeConstants;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.api.cms.CmsUi;
+import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.CmsLog;
+import org.argeo.api.cms.CmsConstants;
+import org.argeo.cms.Localized;
+import org.argeo.cms.swt.CmsSwtUtils;
import org.argeo.jcr.Jcr;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
/** The view for the default ergonomics of Argeo Suite. */
-class SuiteUi extends Composite {
+class SuiteUi extends Composite implements CmsUi {
private static final long serialVersionUID = 6207018859086689108L;
- private final static Log log = LogFactory.getLog(SuiteUi.class);
+ private final static CmsLog log = CmsLog.getLog(SuiteUi.class);
+
+ private Localized title;
private Composite header;
+ private Composite footer;
private Composite belowHeader;
private Composite leadPane;
+ private Composite sidePane;
private Composite dynamicArea;
private Session sysSession;
-// private Session homeSession;
+ private Session homeSession;
private Node userDir;
private Map<String, SuiteLayer> layers = new HashMap<>();
public SuiteUi(Composite parent, int style) {
super(parent, style);
- cmsView = CmsView.getCmsView(parent);
- this.setLayout(CmsUiUtils.noSpaceGridLayout());
+ cmsView = CmsSwtUtils.getCmsView(parent);
+ this.setLayout(CmsSwtUtils.noSpaceGridLayout());
header = new Composite(this, SWT.NONE);
- header.setLayout(CmsUiUtils.noSpaceGridLayout());
- CmsUiUtils.style(header, SuiteStyle.header);
- header.setLayoutData(CmsUiUtils.fillWidth());
+ header.setLayout(CmsSwtUtils.noSpaceGridLayout());
+ CmsSwtUtils.style(header, SuiteStyle.header);
+ header.setLayoutData(CmsSwtUtils.fillWidth());
belowHeader = new Composite(this, SWT.NONE);
- belowHeader.setLayoutData(CmsUiUtils.fillAll());
+ belowHeader.setLayoutData(CmsSwtUtils.fillAll());
+
+ footer = new Composite(this, SWT.NONE);
+ footer.setLayout(CmsSwtUtils.noSpaceGridLayout());
+ CmsSwtUtils.style(footer, SuiteStyle.footer);
+ footer.setLayoutData(CmsSwtUtils.fillWidth());
}
public void refreshBelowHeader(boolean initApp) {
- CmsUiUtils.clear(belowHeader);
+ CmsSwtUtils.clear(belowHeader);
int style = getStyle();
if (initApp) {
- belowHeader.setLayout(CmsUiUtils.noSpaceGridLayout(2));
+ belowHeader.setLayout(CmsSwtUtils.noSpaceGridLayout(3));
if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
+ sidePane = new Composite(belowHeader, SWT.NONE);
+ sidePane.setLayout(CmsSwtUtils.noSpaceGridLayout());
+ sidePane.setLayoutData(CmsSwtUtils.fillHeight());
dynamicArea = new Composite(belowHeader, SWT.NONE);
leadPane = new Composite(belowHeader, SWT.NONE);
} else {
leadPane = new Composite(belowHeader, SWT.NONE);
dynamicArea = new Composite(belowHeader, SWT.NONE);
+ sidePane = new Composite(belowHeader, SWT.NONE);
+ sidePane.setLayout(CmsSwtUtils.noSpaceGridLayout());
+ sidePane.setLayoutData(CmsSwtUtils.fillHeight());
}
- leadPane.setLayoutData(CmsUiUtils.fillHeight());
- leadPane.setLayout(CmsUiUtils.noSpaceGridLayout());
- CmsUiUtils.style(leadPane, SuiteStyle.leadPane);
+ leadPane.setLayoutData(CmsSwtUtils.fillHeight());
+ leadPane.setLayout(CmsSwtUtils.noSpaceGridLayout());
+ CmsSwtUtils.style(leadPane, SuiteStyle.leadPane);
- dynamicArea.setLayoutData(CmsUiUtils.fillAll());
+ dynamicArea.setLayoutData(CmsSwtUtils.fillAll());
dynamicArea.setLayout(new FormLayout());
} else {
- belowHeader.setLayout(CmsUiUtils.noSpaceGridLayout());
+ belowHeader.setLayout(CmsSwtUtils.noSpaceGridLayout());
}
}
protected Composite initLayer(String id, SuiteLayer layer, Node context) {
Composite workArea = cmsView.doAs(() -> (Composite) layer.createUiPart(dynamicArea, context));
- workArea.setLayoutData(CmsUiUtils.coverAll());
+ CmsSwtUtils.style(workArea, SuiteStyle.workArea);
+ workArea.setLayoutData(CmsSwtUtils.coverAll());
workAreas.put(id, workArea);
return workArea;
}
synchronized void logout() {
userDir = null;
Jcr.logout(sysSession);
-// Jcr.logout(homeSession);
+ Jcr.logout(homeSession);
currentLayerId = null;
workAreas.clear();
}
return header;
}
+ Composite getFooter() {
+ return footer;
+ }
+
Composite getLeadPane() {
return leadPane;
}
+ Composite getSidePane() {
+ return sidePane;
+ }
+
Composite getBelowHeader() {
return belowHeader;
}
//
synchronized void initSessions(Repository repository, String userDirPath) throws RepositoryException {
this.sysSession = repository.login();
-// this.homeSession = repository.login(NodeConstants.HOME_WORKSPACE);
+ this.homeSession = repository.login(CmsConstants.HOME_WORKSPACE);
userDir = sysSession.getNode(userDirPath);
addDisposeListener((e) -> {
Jcr.logout(sysSession);
-// Jcr.logout(homeSession);
+ Jcr.logout(homeSession);
});
}
Session getSession(String workspaceName) {
if (workspaceName == null)
return sysSession;
- if (NodeConstants.SYS_WORKSPACE.equals(workspaceName))
+ if (CmsConstants.SYS_WORKSPACE.equals(workspaceName))
return sysSession;
-// else if (NodeConstants.HOME_WORKSPACE.equals(workspaceName))
-// return homeSession;
+ else if (CmsConstants.HOME_WORKSPACE.equals(workspaceName))
+ return homeSession;
else
throw new IllegalArgumentException("Unknown workspace " + workspaceName);
}
return cmsView;
}
+ public Localized getTitle() {
+ return title;
+ }
+
+ public void setTitle(Localized title) {
+ this.title = title;
+ }
+
}