subform.setLayout(subformLayout);
Text txtName = factory.createText(subform, "Name:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
factory.createCheckBox(subform, "Auto creation:", "Enabled", "autoCreate");
Label lblActions = new Label(subform, SWT.NONE);
lblActions.setText("Actions:");
HyperlinkGroup actionGroup = new HyperlinkGroup(Display.getCurrent());
Hyperlink defineMetas = new Hyperlink(subform, SWT.NONE);
defineMetas.setText("add properties...");
defineMetas.addHyperlinkListener(new IHyperlinkListener() {
public void linkExited(HyperlinkEvent e) {
}
public void linkEntered(HyperlinkEvent e) {
}
public void linkActivated(HyperlinkEvent e) {
handleAddMetaDataDefinition();
}
});
actionGroup.add(defineMetas);
Label lbl = new Label(subform, SWT.NONE);
Hyperlink defineItems = new Hyperlink(subform, SWT.NONE);
defineItems.setText("add item definition...");
defineItems.addHyperlinkListener(new IHyperlinkListener() {
public void linkExited(HyperlinkEvent e) {
}
public void linkEntered(HyperlinkEvent e) {
}
public void linkActivated(HyperlinkEvent e) {
handleAddItemDefinition();
}
});
actionGroup.add(defineItems);
WGContentTypeDefinitionModel contentTypeDefinitionModel = new WGContentTypeDefinitionModel();
contentTypeDefinitionModel.addListener(new BeanChangedListener<WGContentTypeDefinition>() {
public void changed(WGContentTypeDefinition bean) {
_treeViewer.refresh(bean, true);
_model.fireModelChanged();
}
});
_subforms.put(SUBFORM_CONTENT_TYPE_DEFINITION, subform);
_subformModels.put(SUBFORM_CONTENT_TYPE_DEFINITION, contentTypeDefinitionModel);
// area subform
subform = toolkit.createComposite(_detailSection);
subformLayout = new GridLayout();
subformLayout.numColumns = 2;
subform.setLayout(subformLayout);
txtName = factory.createText(subform, "Name:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
factory.createCheckBox(subform, "Auto creation:", "Enabled", "autoCreate");
WGAreaDefinitionModel areaDefintionModel = new WGAreaDefinitionModel();
areaDefintionModel.addListener(new BeanChangedListener<WGAreaDefinition>() {
public void changed(WGAreaDefinition bean) {
_treeViewer.refresh(bean, true);
_model.fireModelChanged();
}
});
_subforms.put(SUBFORM_AREA_DEFINITION, subform);
_subformModels.put(SUBFORM_AREA_DEFINITION, areaDefintionModel);
// language subform
subform = toolkit.createComposite(_detailSection);
subformLayout = new GridLayout();
subformLayout.numColumns = 2;
subform.setLayout(subformLayout);
txtName = factory.createText(subform, "Name:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
factory.createCheckBox(subform, "Auto creation:", "Enabled", "autoCreate");
WGLanguageDefinitionModel languageDefinitionModel = new WGLanguageDefinitionModel();
languageDefinitionModel.addListener(new BeanChangedListener<WGLanguageDefinition>() {
public void changed(WGLanguageDefinition bean) {
_treeViewer.refresh(bean, true);
_model.fireModelChanged();
}
});
_subforms.put(SUBFORM_LANGUAGE_DEFINITION, subform);
_subformModels.put(SUBFORM_LANGUAGE_DEFINITION, languageDefinitionModel);
// item subform
subform = toolkit.createComposite(_detailSection);
subformLayout = new GridLayout();
subformLayout.numColumns = 2;
subform.setLayout(subformLayout);
Group parentGroup = createParentInformationGroup(subform);
GridData parentInfoLayoutData = new GridData(GridData.FILL_HORIZONTAL);
parentInfoLayoutData.horizontalSpan = 2;
parentGroup.setLayoutData(parentInfoLayoutData);
txtName = factory.createText(subform, "Itemname:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Combo itemTypeCombo = factory.createCombo(subform, "Type:", "type");
_chkItemList = factory.createCheckBox(subform, "List:", "Enabled", "list");
_lblInitialValues = new Label(subform, SWT.NONE);
_lblInitialValues.setText("Initial values:");
_lblInitialValues.setLayoutData(new GridData(SWT.NONE, SWT.BEGINNING, false, false));
_initialValuesSection = toolkit.createSection(subform, Section.EXPANDED | Section.NO_TITLE);
GridData initialValuesSectionLayoutData = new GridData(GridData.FILL_BOTH);
_initialValuesSection.setLayoutData(initialValuesSectionLayoutData);
// item subform - text values
_initialTextValuesSectionClient = toolkit.createComposite(_initialValuesSection);
_initialTextValuesSectionClient.setLayout(new FillLayout());
_tblItemTextValues = new EditableTableControl<PrimitiveTypeBean<String>>(_initialTextValuesSectionClient, SWT.NONE);
_itemTextValuesModel = new PrimitiveTypeBeanListTableModel<String>(true);
_itemTextValuesModel.addListener(new BeanListTableModelListener() {
public void update(Object bean) {
_model.fireModelChanged();
}
public void remove(Object bean) {
_model.fireModelChanged();
}
public void refresh(List beans) {
}
public void add(Object bean) {
_model.fireModelChanged();
}
});
_tblItemTextValues.init(new String[] {"#", "Value"}, _itemTextValuesModel);
CellEditor[] cellEditors = new CellEditor[2];
cellEditors[0] = null;
cellEditors[1] = new TextCellEditor(_tblItemTextValues.getTable());
_tblItemTextValues.getTableViewer().setCellEditors(cellEditors);
_tblItemTextValues.getButton(EditableTableControl.BUTTON_ADD).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
WGContentItemDefinitionModel model = (WGContentItemDefinitionModel)_subformModels.get(SUBFORM_CONTENT_ITEM_DEFINITION);
if (_itemTextValuesModel.getBeans().size() > 0) {
_chkItemList.setSelection(true);
model.setList(true);
}
handleAdd(_tblItemTextValues, "");
}
});
_tblItemTextValues.getButton(EditableTableControl.BUTTON_REMOVE).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
handleRemove(_tblItemTextValues);
}
});
// item subform - boolean values
_initialBooleanValuesSectionClient = toolkit.createComposite(_initialValuesSection);
_initialBooleanValuesSectionClient.setLayout(new FillLayout());
_tblItemBooleanValues = new EditableTableControl<PrimitiveTypeBean<Boolean>>(_initialBooleanValuesSectionClient, SWT.NONE);
_itemBooleanValuesModel = new PrimitiveTypeBeanListTableModel<Boolean>(true);
_itemBooleanValuesModel.addListener(new BeanListTableModelListener() {
public void update(Object bean) {
_model.fireModelChanged();
}
public void remove(Object bean) {
_model.fireModelChanged();
}
public void refresh(List beans) {
}
public void add(Object bean) {
_model.fireModelChanged();
}
});
_tblItemBooleanValues.init(new String[] {"#", "Value"}, _itemBooleanValuesModel);
cellEditors = new CellEditor[2];
cellEditors[0] = null;
cellEditors[1] = new CheckboxCellEditor(_tblItemBooleanValues.getTable());
_tblItemBooleanValues.getTableViewer().setCellEditors(cellEditors);
_tblItemBooleanValues.getButton(EditableTableControl.BUTTON_ADD).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
WGContentItemDefinitionModel model = (WGContentItemDefinitionModel)_subformModels.get(SUBFORM_CONTENT_ITEM_DEFINITION);
if (_itemBooleanValuesModel.getBeans().size() > 0) {
_chkItemList.setSelection(true);
model.setList(true);
}
handleAdd(_tblItemBooleanValues, false);
}
});
_tblItemBooleanValues.getButton(EditableTableControl.BUTTON_REMOVE).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
handleRemove(_tblItemBooleanValues);
}
});
// item subform - number values
_initialNumberValuesSectionClient = toolkit.createComposite(_initialValuesSection);
_initialNumberValuesSectionClient.setLayout(new FillLayout());
_tblItemNumberValues = new EditableTableControl<PrimitiveTypeBean<Number>>(_initialNumberValuesSectionClient, SWT.NONE);
_itemNumberValuesModel = new PrimitiveTypeBeanListTableModel<Number>(true);
_itemNumberValuesModel.addListener(new BeanListTableModelListener() {
public void update(Object bean) {
_model.fireModelChanged();
}
public void remove(Object bean) {
_model.fireModelChanged();
}
public void refresh(List beans) {
}
public void add(Object bean) {
_model.fireModelChanged();
}
});
_tblItemNumberValues.init(new String[] {"#", "Value"}, _itemNumberValuesModel);
cellEditors = new CellEditor[2];
cellEditors[0] = null;
cellEditors[1] = new DoubleValueCellEditor(_tblItemNumberValues.getTable());
_tblItemNumberValues.getTableViewer().setCellEditors(cellEditors);
_tblItemNumberValues.getButton(EditableTableControl.BUTTON_ADD).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
WGContentItemDefinitionModel model = (WGContentItemDefinitionModel)_subformModels.get(SUBFORM_CONTENT_ITEM_DEFINITION);
if (_itemNumberValuesModel.getBeans().size() > 0) {
_chkItemList.setSelection(true);
model.setList(true);
}
handleAdd(_tblItemNumberValues, 0);
}
});
_tblItemNumberValues.getButton(EditableTableControl.BUTTON_REMOVE).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
handleRemove(_tblItemNumberValues);
}
});
itemTypeCombo.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
WGContentItemDefinitionModel model = (WGContentItemDefinitionModel)_subformModels.get(SUBFORM_CONTENT_ITEM_DEFINITION);
WGContentItemDefinition.Type type = model.getType().getKey();
if (type.equals(WGContentItemDefinition.Type.TEXT)) {
_initialValuesSection.setVisible(true);
_lblInitialValues.setVisible(true);
_itemTextValuesModel.bind(model.getInitialValues());
_initialTextValuesSectionClient.setVisible(true);
_initialBooleanValuesSectionClient.setVisible(false);
_initialNumberValuesSectionClient.setVisible(false);
_initialValuesSection.setClient(_initialTextValuesSectionClient);
_initialValuesSection.layout();
} else if (type.equals(WGContentItemDefinition.Type.BOOLEAN)) {
_initialValuesSection.setVisible(true);
_lblInitialValues.setVisible(true);
_itemBooleanValuesModel.bind(model.getInitialValues());
_initialBooleanValuesSectionClient.setVisible(true);
_initialTextValuesSectionClient.setVisible(false);
_initialNumberValuesSectionClient.setVisible(false);
_initialValuesSection.setClient(_initialBooleanValuesSectionClient);
_initialValuesSection.layout();
} else if (type.equals(WGContentItemDefinition.Type.NUMBER)) {
_initialValuesSection.setVisible(true);
_lblInitialValues.setVisible(true);
_itemNumberValuesModel.bind(model.getInitialValues());
_initialNumberValuesSectionClient.setVisible(true);
_initialBooleanValuesSectionClient.setVisible(false);
_initialTextValuesSectionClient.setVisible(false);
_initialValuesSection.setClient(_initialNumberValuesSectionClient);
_initialValuesSection.layout();
} else {
_initialValuesSection.setVisible(false);
_lblInitialValues.setVisible(false);
}
}
});
WGContentItemDefinitionModel contentItemDefinitionModel = new WGContentItemDefinitionModel(_model);
contentItemDefinitionModel.addListener(new BeanChangedListener<WGContentItemDefinition>() {
public void changed(WGContentItemDefinition bean) {
_treeViewer.refresh(bean, true);
_model.fireModelChanged();
}
});
_subforms.put(SUBFORM_CONTENT_ITEM_DEFINITION, subform);
_subformModels.put(SUBFORM_CONTENT_ITEM_DEFINITION, contentItemDefinitionModel);
// content type meta data subforms
// subform for description
subform = toolkit.createComposite(_detailSection);
subformLayout = new GridLayout();
subformLayout.numColumns = 2;
subform.setLayout(subformLayout);
parentGroup = createParentInformationGroup(subform);
parentInfoLayoutData = new GridData(GridData.FILL_HORIZONTAL);
parentInfoLayoutData.horizontalSpan = 2;
parentGroup.setLayoutData(parentInfoLayoutData);
txtName = factory.createText(subform, "Property:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
txtName.setEditable(false);
Text txtValue = factory.createTextArea(subform, "Description", "description");
GridData txtValueLayoutData = new GridData(GridData.FILL_BOTH);
txtValueLayoutData.minimumHeight = 200;
txtValue.setLayoutData(txtValueLayoutData);
WGDescriptionMetaFieldDefinitionModel descriptionMetaFieldDefinitionModel = new WGDescriptionMetaFieldDefinitionModel(_model);
descriptionMetaFieldDefinitionModel.addListener(new BeanChangedListener<WGMetaFieldDefinition>() {
public void changed(WGMetaFieldDefinition bean) {
_treeViewer.refresh(bean, true);
_model.fireModelChanged();
}
});
_subforms.put(SUBFORM_META_DESCRIPTION, subform);
_subformModels.put(SUBFORM_META_DESCRIPTION, descriptionMetaFieldDefinitionModel);
// subform for event scripts
subform = toolkit.createComposite(_detailSection);
subformLayout = new GridLayout();
subformLayout.numColumns = 2;
subform.setLayout(subformLayout);
parentGroup = createParentInformationGroup(subform);
parentInfoLayoutData = new GridData(GridData.FILL_HORIZONTAL);
parentInfoLayoutData.horizontalSpan = 2;
parentGroup.setLayoutData(parentInfoLayoutData);
txtName = factory.createText(subform, "Property:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
txtName.setEditable(false);
txtValue = factory.createTextArea(subform, "Scriptcode:", "code");
txtValueLayoutData = new GridData(GridData.FILL_BOTH);
txtValueLayoutData.minimumHeight = 200;
txtValue.setLayoutData(txtValueLayoutData);
WGEventScriptMetaFieldDefinitionModel eventScriptMetaFieldDefinitionModel = new WGEventScriptMetaFieldDefinitionModel(_model);
eventScriptMetaFieldDefinitionModel.addListener(new BeanChangedListener<WGMetaFieldDefinition>() {
public void changed(WGMetaFieldDefinition bean) {
_treeViewer.refresh(bean, true);
_model.fireModelChanged();
}
});
_subforms.put(SUBFORM_META_EVENTSCRIPT, subform);
_subformModels.put(SUBFORM_META_EVENTSCRIPT, eventScriptMetaFieldDefinitionModel);
// subform for layouts
subform = toolkit.createComposite(_detailSection);
subformLayout = new GridLayout();
subformLayout.numColumns = 3;
subform.setLayout(subformLayout);
parentGroup = createParentInformationGroup(subform);
parentInfoLayoutData = new GridData(GridData.FILL_HORIZONTAL);
parentInfoLayoutData.horizontalSpan = 3;
parentGroup.setLayoutData(parentInfoLayoutData);
txtName = factory.createText(subform, "Property:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
txtName.setEditable(false);
factory.addFiller(subform);
txtValue = factory.createText(subform, "Module:", "layout");
txtValue.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
final Text fTxtLayout = txtValue;
Button btnBrowseLayout = new Button(subform, SWT.PUSH);
btnBrowseLayout.setText("browse ...");
btnBrowseLayout.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
handleBrowserLayout(fTxtLayout);
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
WGLayoutMetaFieldDefinitionModel layoutMetaFieldDefinitionModel = new WGLayoutMetaFieldDefinitionModel(_model);
layoutMetaFieldDefinitionModel.addListener(new BeanChangedListener<WGMetaFieldDefinition>() {
public void changed(WGMetaFieldDefinition bean) {
_treeViewer.refresh(bean, true);
_model.fireModelChanged();
}
});
_subforms.put(SUBFORM_META_LAYOUT, subform);
_subformModels.put(SUBFORM_META_LAYOUT, layoutMetaFieldDefinitionModel);
// subform for allowed positions
subform = toolkit.createComposite(_detailSection);
subformLayout = new GridLayout();
subformLayout.numColumns = 2;
subform.setLayout(subformLayout);
parentGroup = createParentInformationGroup(subform);
parentInfoLayoutData = new GridData(GridData.FILL_HORIZONTAL);
parentInfoLayoutData.horizontalSpan = 2;
parentGroup.setLayoutData(parentInfoLayoutData);
txtName = factory.createText(subform, "Property:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
txtName.setEditable(false);
Combo comboPositioning = factory.createCombo(subform, "Positions:", "positioning");
comboPositioning.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
factory.addFiller(subform);
_tblAllowedPositions = new EditableTableControl<PrimitiveTypeBean<String>>(subform, SWT.NONE);
_allowedPositionsModel = new PrimitiveTypeBeanListTableModel<String>();
_allowedPositionsModel.addListener(new BeanListTableModelListener() {
public void update(Object bean) {
_model.fireModelChanged();
}
public void remove(Object bean) {
_model.fireModelChanged();
}
public void refresh(List beans) {
}
public void add(Object bean) {
_model.fireModelChanged();
}
});
_tblAllowedPositions.init(new String[] {"Name"}, _allowedPositionsModel);
GridData tblLayoutData = new GridData(GridData.FILL_BOTH);
tblLayoutData.minimumHeight = 200;
_tblAllowedPositions.setLayoutData(tblLayoutData);
cellEditors = new CellEditor[1];
cellEditors[0] = new TextCellEditor(_tblAllowedPositions.getTable());
_tblAllowedPositions.getTableViewer().setCellEditors(cellEditors);
comboPositioning.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
WGPositioningMetaFieldDefinitionModel model = (WGPositioningMetaFieldDefinitionModel)_subformModels.get(SUBFORM_META_POSITIONING);
if (model.getPositioning().getKey().equals(WGContentType.POSITIONING_FIXEDPARENTS) || model.getPositioning().getKey().equals(WGContentType.POSITIONING_FIXEDPARENTTYPES)) {
_tblAllowedPositions.setVisible(true);
WGContentTypeDefinition cTypeDefinition = _model.findContentTypeDefinition(model.getBean());
((PrimitiveTypeBeanListTableModel<String>)_tblAllowedPositions.getModel()).bind(model.getAllowedPositions(cTypeDefinition));
} else {
_tblAllowedPositions.setVisible(false);
}
}
});
_tblAllowedPositions.getButton(EditableTableControl.BUTTON_ADD).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
handleAdd(_tblAllowedPositions, "<value>");
}
});
_tblAllowedPositions.getButton(EditableTableControl.BUTTON_REMOVE).addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
handleRemove(_tblAllowedPositions);
}
});
WGPositioningMetaFieldDefinitionModel positioningMetaFieldDefinitionModel = new WGPositioningMetaFieldDefinitionModel(_model);
positioningMetaFieldDefinitionModel.addListener(new BeanChangedListener<WGMetaFieldDefinition>() {
public void changed(WGMetaFieldDefinition bean) {
_treeViewer.refresh(bean, true);
_model.fireModelChanged();
}
});
_subforms.put(SUBFORM_META_POSITIONING, subform);
_subformModels.put(SUBFORM_META_POSITIONING, positioningMetaFieldDefinitionModel);
// subform for editors
subform = toolkit.createComposite(_detailSection);
subformLayout = new GridLayout();
subformLayout.numColumns = 2;
subform.setLayout(subformLayout);
parentGroup = createParentInformationGroup(subform);
parentInfoLayoutData = new GridData(GridData.FILL_HORIZONTAL);
parentInfoLayoutData.horizontalSpan = 2;
parentGroup.setLayoutData(parentInfoLayoutData);
txtName = factory.createText(subform, "Property:", "name");
txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
txtName.setEditable(false);
Label label = new Label(subform, SWT.NONE);
label.setText("Editors:");
label.setLayoutData(new GridData(SWT.NONE, SWT.BEGINNING, false, false));
_tblEditors = new EditableTableControl<PrimitiveTypeBean<String>>(subform, SWT.NONE);
_editorsModel = new PrimitiveTypeBeanListTableModel<String>();
_editorsModel.addListener(new BeanListTableModelListener() {