use of org.entirej.applicationframework.rwt.application.form.containers.EJRWTTrayPane in project rap by entirej.
the class EJRWTFormRenderer method createSplitCanvas.
private void createSplitCanvas(Composite parent, final EJCanvasProperties canvasProperties, EJCanvasController canvasController) {
final EJRWTTrayPane trayPane = new EJRWTTrayPane(parent);
EJ_RWT.setTestId(trayPane, _form.getProperties().getName() + "." + canvasProperties.getName());
trayPane.setLayoutData(createCanvasGridData(canvasProperties));
parent = trayPane;
SashForm layoutBody = new SashForm(parent, canvasProperties.getSplitOrientation() == EJCanvasSplitOrientation.HORIZONTAL ? SWT.HORIZONTAL : SWT.VERTICAL);
trayPane.initBase(layoutBody);
layoutBody.setLayoutData(createCanvasGridData(canvasProperties));
CanvasHandler canvasHandler = new CanvasHandler() {
private Collection<EJMessage> msgs;
@Override
public void clearCanvasMessages() {
this.msgs = null;
if (trayPane != null && !trayPane.isDisposed()) {
trayPane.closeTray();
}
}
@Override
public void setCanvasMessages(Collection<EJMessage> messages) {
this.msgs = messages;
if (trayPane != null && !trayPane.isDisposed()) {
if (trayPane.getTray() != null) {
trayPane.closeTray();
}
{
MessageTray messageTray = new MessageTray(canvasProperties.getCloseableMessagePane()) {
@Override
void close() {
if (trayPane != null && !trayPane.isDisposed()) {
trayPane.closeTray();
}
}
};
messageTray.setMessages(msgs);
TrayLocation location = TrayLocation.RIGHT;
switch(canvasProperties.getMessagePosition()) {
case BOTTOM:
location = TrayLocation.BOTTOM;
break;
case LEFT:
location = TrayLocation.LEFT;
break;
case RIGHT:
location = TrayLocation.RIGHT;
break;
case TOP:
location = TrayLocation.TOP;
break;
default:
break;
}
trayPane.openTray(location, messageTray, canvasProperties.getMessagePaneSize());
}
}
}
@Override
public void add(EJInternalBlock block) {
}
@Override
public EJCanvasType getType() {
return EJCanvasType.SPLIT;
}
};
_canvases.put(canvasProperties.getName(), canvasHandler);
if (!canvasProperties.getCloseableMessagePane()) {
canvasHandler.setCanvasMessages(Collections.<EJMessage>emptyList());
}
layoutBody.setData(EJ_RWT.CUSTOM_VARIANT, EJ_RWT.CSS_CV_FORM);
if (canvasProperties.getType() == EJCanvasType.SPLIT) {
List<EJCanvasProperties> items = new ArrayList<EJCanvasProperties>(canvasProperties.getSplitCanvasContainer().getAllCanvasProperties());
int[] weights = new int[items.size()];
for (EJCanvasProperties containedCanvas : items) {
if (containedCanvas.getType() == EJCanvasType.BLOCK && containedCanvas.getBlockProperties() != null && containedCanvas.getBlockProperties().getMainScreenProperties() != null) {
weights[items.indexOf(containedCanvas)] = canvasProperties.getSplitOrientation() == EJCanvasSplitOrientation.HORIZONTAL ? containedCanvas.getBlockProperties().getMainScreenProperties().getWidth() + 1 : containedCanvas.getBlockProperties().getMainScreenProperties().getHeight() + 1;
EJCoreMainScreenProperties mainScreenProperties = (EJCoreMainScreenProperties) containedCanvas.getBlockProperties().getMainScreenProperties();
mainScreenProperties.setExpandHorizontally(true);
mainScreenProperties.setExpandVertically(true);
} else {
weights[items.indexOf(containedCanvas)] = canvasProperties.getSplitOrientation() == EJCanvasSplitOrientation.HORIZONTAL ? containedCanvas.getWidth() + 1 : containedCanvas.getHeight() + 1;
EJCoreCanvasProperties coreCanvasProperties = (EJCoreCanvasProperties) containedCanvas;
coreCanvasProperties.setExpandHorizontally(true);
coreCanvasProperties.setExpandVertically(true);
}
switch(containedCanvas.getType()) {
case BLOCK:
case GROUP:
createGroupCanvas(layoutBody, containedCanvas, canvasController);
break;
case FORM:
createFormCanvas(layoutBody, containedCanvas, canvasController);
break;
case SEPARATOR:
createSeparatorCanvas(layoutBody, containedCanvas);
break;
case SPLIT:
createSplitCanvas(layoutBody, containedCanvas, canvasController);
break;
case STACKED:
createStackedCanvas(layoutBody, containedCanvas, canvasController);
break;
case TAB:
createTabCanvas(layoutBody, containedCanvas, canvasController);
break;
case DRAWER:
createDrawerCanvas(layoutBody, containedCanvas, canvasController);
break;
case POPUP:
throw new AssertionError();
}
}
layoutBody.setWeights(weights);
}
}
Aggregations