getWidgetFactory().createCLabel(topForm, Messages.getString("EORelationship.name"), SWT.NONE);
getWidgetFactory().createCLabel(topForm, Messages.getString("EORelationship." + EORelationship.NAME), SWT.NONE);
  public void createControls(Composite _parent, TabbedPropertySheetPage _tabbedPropertySheetPage) {    super.createControls(_parent, _tabbedPropertySheetPage);    Composite form = getWidgetFactory().createFlatFormComposite(_parent);    FormLayout formLayout = new FormLayout();    form.setLayout(formLayout);    Composite topForm = getWidgetFactory().createPlainComposite(form, SWT.NONE);    FormData topFormData = new FormData();    topFormData.top = new FormAttachment(0, 5);    topFormData.left = new FormAttachment(0, 5);    topFormData.right = new FormAttachment(100, -5);    topForm.setLayoutData(topFormData);    GridLayout topFormLayout = new GridLayout();    topFormLayout.numColumns = 2;    topForm.setLayout(topFormLayout);    getWidgetFactory().createCLabel(topForm, Messages.getString("EORelationship.name"), SWT.NONE); //$NON-NLS-1$    myNameText = new Text(topForm, SWT.BORDER);    GridData nameFieldLayoutData = new GridData(GridData.FILL_HORIZONTAL);    myNameText.setLayoutData(nameFieldLayoutData);    getWidgetFactory().createCLabel(topForm, Messages.getString("EORelationship.cardinality"), SWT.NONE); //$NON-NLS-1$    Composite cardinalityComposite = getWidgetFactory().createPlainComposite(topForm, SWT.NONE);    GridLayout cardinalityLayout = new GridLayout();    cardinalityLayout.numColumns = 2;    cardinalityLayout.makeColumnsEqualWidth = true;    cardinalityComposite.setLayout(cardinalityLayout);    myToOneButton = new Button(cardinalityComposite, SWT.RADIO);    myToOneButton.setText(Messages.getString("EORelationship.toOne")); //$NON-NLS-1$    GridData toOneButtonLayoutData = new GridData(GridData.FILL_HORIZONTAL);    myToOneButton.setLayoutData(toOneButtonLayoutData);    myToManyButton = new Button(cardinalityComposite, SWT.RADIO);    myToManyButton.setText(Messages.getString("EORelationship.toMany")); //$NON-NLS-1$    GridData toManyButtonLayoutData = new GridData(GridData.FILL_HORIZONTAL);    myToManyButton.setLayoutData(toManyButtonLayoutData);    GridData cardinalityCompositeLayoutData = new GridData(GridData.FILL_HORIZONTAL);    cardinalityComposite.setLayoutData(cardinalityCompositeLayoutData);    getWidgetFactory().createCLabel(topForm, Messages.getString("EORelationship.optionality"), SWT.NONE); //$NON-NLS-1$    Composite optionalityComposite = getWidgetFactory().createPlainComposite(topForm, SWT.NONE);    GridLayout optionalityLayout = new GridLayout();    optionalityLayout.numColumns = 2;    optionalityLayout.makeColumnsEqualWidth = true;    optionalityComposite.setLayout(optionalityLayout);    myOptionalButton = new Button(optionalityComposite, SWT.RADIO);    myOptionalButton.setText(Messages.getString("EORelationship.optional")); //$NON-NLS-1$    GridData optionalButtonLayoutData = new GridData(GridData.FILL_HORIZONTAL);    myOptionalButton.setLayoutData(optionalButtonLayoutData);    myMandatoryButton = new Button(optionalityComposite, SWT.RADIO);    myMandatoryButton.setText(Messages.getString("EORelationship.mandatory")); //$NON-NLS-1$    GridData mandatoryButtonLayoutData = new GridData(GridData.FILL_HORIZONTAL);    myMandatoryButton.setLayoutData(mandatoryButtonLayoutData);    GridData optioanlityCompositeLayoutData = new GridData(GridData.FILL_HORIZONTAL);    optionalityComposite.setLayoutData(optioanlityCompositeLayoutData);    getWidgetFactory().createCLabel(topForm, Messages.getString("EORelationship.deleteRule"), SWT.NONE); //$NON-NLS-1$    Combo deleteRuleCombo = new Combo(topForm, SWT.BORDER | SWT.FLAT | SWT.READ_ONLY);    myDeleteRuleComboViewer = new ComboViewer(deleteRuleCombo);    myDeleteRuleComboViewer.setLabelProvider(new EODeleteRuleLabelProvider());    myDeleteRuleComboViewer.setContentProvider(new EODeleteRuleContentProvider());    myDeleteRuleComboViewer.setInput(EODeleteRule.DELETE_RULES);    myDeleteRuleComboViewer.setSelection(new StructuredSelection(EODeleteRule.NULLIFY));    GridData deleteRuleComboLayoutData = new GridData(GridData.FILL_HORIZONTAL);    deleteRuleCombo.setLayoutData(deleteRuleComboLayoutData);    getWidgetFactory().createCLabel(topForm, Messages.getString("EORelationship.model"), SWT.NONE); //$NON-NLS-1$    Combo modelCombo = new Combo(topForm, SWT.BORDER | SWT.FLAT | SWT.READ_ONLY);    myModelComboViewer = new ComboViewer(modelCombo);    myModelComboViewer.setLabelProvider(new EOModelLabelProvider());    myModelComboViewer.setContentProvider(new EOModelListContentProvider());    myModelComboViewer.addSelectionChangedListener(new ModelSelectionListener());    GridData modelRuleComboLayoutData = new GridData(GridData.FILL_HORIZONTAL);    modelCombo.setLayoutData(modelRuleComboLayoutData);    getWidgetFactory().createCLabel(topForm, Messages.getString("EORelationship.entity"), SWT.NONE); //$NON-NLS-1$    Combo entityCombo = new Combo(topForm, SWT.BORDER | SWT.FLAT | SWT.READ_ONLY);    myEntityComboViewer = new ComboViewer(entityCombo);    myEntityComboViewer.setLabelProvider(new EOEntityLabelProvider());    myEntityComboViewer.setContentProvider(new EOEntityListContentProvider());    GridData entityComboLayoutData = new GridData(GridData.FILL_HORIZONTAL);    entityCombo.setLayoutData(entityComboLayoutData);    Combo joinSemanticCombo = new Combo(topForm, SWT.BORDER | SWT.FLAT | SWT.READ_ONLY);    myJoinSemanticComboViewer = new ComboViewer(joinSemanticCombo);    myJoinSemanticComboViewer.setLabelProvider(new EOJoinSemanticLabelProvider());    myJoinSemanticComboViewer.setContentProvider(new EOJoinSemanticContentProvider());    myJoinSemanticComboViewer.setInput(EOJoinSemantic.JOIN_SEMANTICS);    myJoinSemanticComboViewer.setSelection(new StructuredSelection(EOJoinSemantic.INNER));    GridData joinSemanticLayoutData = new GridData(GridData.FILL_HORIZONTAL);    joinSemanticLayoutData.verticalAlignment = SWT.TOP;    joinSemanticCombo.setLayoutData(joinSemanticLayoutData);    myJoinsTableViewer = new TableViewer(topForm, SWT.BORDER | SWT.FLAT | SWT.MULTI | SWT.FULL_SELECTION);    myJoinsTableViewer.getTable().setHeaderVisible(true);    myJoinsTableViewer.getTable().setLinesVisible(true);    TableUtils.createTableColumns(myJoinsTableViewer, "EOJoin", EOJoinsConstants.COLUMNS); //$NON-NLS-1$    myJoinsTableViewer.setContentProvider(new EOJoinsContentProvider());    myJoinsTableViewer.setLabelProvider(new EOJoinsLabelProvider(EOJoinsConstants.COLUMNS));    myJoinsTableViewer.setSorter(new TablePropertyViewerSorter(myJoinsTableViewer, EOJoinsConstants.COLUMNS));    myJoinsTableViewer.setColumnProperties(EOJoinsConstants.COLUMNS);    CellEditor[] cellEditors = new CellEditor[EOJoinsConstants.COLUMNS.length];    cellEditors[TableUtils.getColumnNumber(EOJoinsConstants.COLUMNS, EOJoin.SOURCE_ATTRIBUTE_NAME)] = new KeyComboBoxCellEditor(myJoinsTableViewer.getTable(), new String[0], SWT.READ_ONLY);    cellEditors[TableUtils.getColumnNumber(EOJoinsConstants.COLUMNS, EOJoin.DESTINATION_ATTRIBUTE_NAME)] = new KeyComboBoxCellEditor(myJoinsTableViewer.getTable(), new String[0], SWT.READ_ONLY);    myJoinsTableViewer.setCellModifier(new EOJoinsCellModifier(myJoinsTableViewer));    myJoinsTableViewer.setCellEditors(cellEditors);    GridData joinsTableLayoutData = new GridData(GridData.FILL_HORIZONTAL);    joinsTableLayoutData.heightHint = 100;    myJoinsTableViewer.getTable().setLayoutData(joinsTableLayoutData);    myJoinsTableViewer.addSelectionChangedListener(myButtonUpdateListener);    Composite buttonGroup = getWidgetFactory().createPlainComposite(form, SWT.NONE);    FormData buttonGroupFormData = new FormData();    buttonGroupFormData.top = new FormAttachment(topForm, 5);    buttonGroupFormData.left = new FormAttachment(0, 5);    buttonGroupFormData.right = new FormAttachment(100, -5);    buttonGroup.setLayoutData(buttonGroupFormData);    FormLayout layout = new FormLayout();    buttonGroup.setLayout(layout);    myAddButton = new Button(buttonGroup, SWT.PUSH);    myAddButton.setText(Messages.getString("button.add")); //$NON-NLS-1$    FormData addButtonData = new FormData();    addButtonData.right = new FormAttachment(100, 0);    myAddButton.setLayoutData(addButtonData);    myAddButton.addSelectionListener(new AddJoinHandler());    myRemoveButton = new Button(buttonGroup, SWT.PUSH);    myRemoveButton.setText(Messages.getString("button.remove")); //$NON-NLS-1$    FormData remoteButtonData = new FormData();    remoteButtonData.right = new FormAttachment(myAddButton, 0);    myRemoveButton.setLayoutData(remoteButtonData);    myRemoveButton.addSelectionListener(new RemoveJoinsHandler());  }