Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrderColumnComposite.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrderColumnComposite.java373
1 files changed, 373 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrderColumnComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrderColumnComposite.java
new file mode 100644
index 0000000000..b8792e250b
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrderColumnComposite.java
@@ -0,0 +1,373 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2009 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.jpa2.details;
+
+import java.util.Collection;
+import org.eclipse.jpt.core.context.BaseColumn;
+import org.eclipse.jpt.core.context.NamedColumn;
+import org.eclipse.jpt.core.jpa2.context.OrderColumn2_0;
+import org.eclipse.jpt.db.Table;
+import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
+import org.eclipse.jpt.ui.internal.details.JptUiDetailsMessages;
+import org.eclipse.jpt.ui.internal.details.db.ColumnCombo;
+import org.eclipse.jpt.ui.internal.util.PaneEnabler;
+import org.eclipse.jpt.ui.internal.widgets.FormPane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | ColumnCombo | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | |
+ * | > Details |
+ * | |
+ * | x Insertable |
+ * | |
+ * | x Updatable |
+ * | |
+ * | x Nullable |
+ * | |
+ * | ---------------------------------------------------- |
+ * | Column Definition: | I | |
+ * | ---------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ * *
+ * @version 3.0
+ * @since 3.0
+ */
+public class OrderColumnComposite extends FormPane<OrderColumn2_0> {
+
+ /**
+ * Creates a new <code>ColumnComposite</code>.
+ *
+ * @param parentPane The parent container of this one
+ * @param subjectHolder The holder of the subject <code>IColumn</code>
+ * @param parent The parent container
+ */
+ public OrderColumnComposite(FormPane<?> parentPane,
+ PropertyValueModel<? extends OrderColumn2_0> subjectHolder,
+ Composite parent) {
+
+ super(parentPane, subjectHolder, parent, false);
+ }
+
+ /**
+ * Creates a new <code>ColumnComposite</code>.
+ *
+ * @param parentPane The parent container of this one
+ * @param subjectHolder The holder of the subject <code>IColumn</code>
+ * @param parent The parent container
+ * @param automaticallyAlignWidgets <code>true</code> to make the widgets
+ * this pane aligned with the widgets of the given parent controller;
+ * <code>false</code> to not align them
+ */
+ public OrderColumnComposite(FormPane<?> parentPane,
+ PropertyValueModel<? extends OrderColumn2_0> subjectHolder,
+ Composite parent,
+ boolean automaticallyAlignWidgets) {
+
+ super(parentPane, subjectHolder, parent, automaticallyAlignWidgets);
+ }
+
+ /**
+ * Creates a new <code>ColumnComposite</code>.
+ *
+ * @param parentPane The parent container of this one
+ * @param subjectHolder The holder of the subject <code>IColumn</code>
+ * @param parent The parent container
+ * @param automaticallyAlignWidgets <code>true</code> to make the widgets
+ * this pane aligned with the widgets of the given parent controller;
+ * <code>false</code> to not align them
+ */
+ public OrderColumnComposite(FormPane<?> parentPane,
+ PropertyValueModel<? extends OrderColumn2_0> subjectHolder,
+ Composite parent,
+ boolean automaticallyAlignWidgets,
+ boolean parentManagePane) {
+
+ super(parentPane, subjectHolder, parent, automaticallyAlignWidgets, parentManagePane);
+ }
+
+ private ColumnCombo<OrderColumn2_0> addColumnCombo(Composite container) {
+
+ return new ColumnCombo<OrderColumn2_0>(this, container) {
+
+ @Override
+ protected void addPropertyNames(Collection<String> propertyNames) {
+ super.addPropertyNames(propertyNames);
+ propertyNames.add(NamedColumn.DEFAULT_NAME_PROPERTY);
+ propertyNames.add(NamedColumn.SPECIFIED_NAME_PROPERTY);
+ }
+
+ @Override
+ protected String getDefaultValue() {
+ return getSubject().getDefaultName();
+ }
+
+ @Override
+ protected void setValue(String value) {
+ getSubject().setSpecifiedName(value);
+ }
+
+ @Override
+ protected Table getDbTable_() {
+ return getSubject().getDbTable();
+ }
+
+ @Override
+ protected String getValue() {
+ return getSubject().getSpecifiedName();
+ }
+ @Override
+ public String toString() {
+ return "OrderColumnComposite.columnCombo"; //$NON-NLS-1$
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildColumnDefinitionHolder() {
+ return new PropertyAspectAdapter<OrderColumn2_0, String>(getSubjectHolder(), NamedColumn.COLUMN_DEFINITION_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return this.subject.getColumnDefinition();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if (value.length() == 0) {
+ value = null;
+ }
+ this.subject.setColumnDefinition(value);
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<Boolean> buildInsertableHolder() {
+ return new PropertyAspectAdapter<OrderColumn2_0, Boolean>(getSubjectHolder(), BaseColumn.SPECIFIED_INSERTABLE_PROPERTY) {
+ @Override
+ protected Boolean buildValue_() {
+ return this.subject.getSpecifiedInsertable();
+ }
+
+ @Override
+ protected void setValue_(Boolean value) {
+ this.subject.setSpecifiedInsertable(value);
+ }
+ };
+ }
+
+ private PropertyValueModel<String> buildInsertableStringHolder() {
+ return new TransformationPropertyValueModel<Boolean, String>(buildDefaultInsertableHolder()) {
+ @Override
+ protected String transform(Boolean value) {
+ if (value != null) {
+ String defaultStringValue = value.booleanValue() ? JptUiDetailsMessages.Boolean_True : JptUiDetailsMessages.Boolean_False;
+ return NLS.bind(JptUiDetailsMessages.ColumnComposite_insertableWithDefault, defaultStringValue);
+ }
+ return JptUiDetailsMessages.ColumnComposite_insertable;
+ }
+ };
+ }
+
+ private PropertyValueModel<Boolean> buildDefaultInsertableHolder() {
+ return new PropertyAspectAdapter<OrderColumn2_0, Boolean>(
+ getSubjectHolder(),
+ BaseColumn.SPECIFIED_INSERTABLE_PROPERTY,
+ BaseColumn.DEFAULT_INSERTABLE_PROPERTY)
+ {
+ @Override
+ protected Boolean buildValue_() {
+ if (this.subject.getSpecifiedInsertable() != null) {
+ return null;
+ }
+ return Boolean.valueOf(this.subject.isDefaultInsertable());
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<Boolean> buildNullableHolder() {
+ return new PropertyAspectAdapter<OrderColumn2_0, Boolean>(
+ getSubjectHolder(),
+ BaseColumn.SPECIFIED_NULLABLE_PROPERTY)
+ {
+ @Override
+ protected Boolean buildValue_() {
+ return this.subject.getSpecifiedNullable();
+ }
+
+ @Override
+ protected void setValue_(Boolean value) {
+ this.subject.setSpecifiedNullable(value);
+ }
+ };
+ }
+
+ private PropertyValueModel<String> buildNullableStringHolder() {
+ return new TransformationPropertyValueModel<Boolean, String>(buildDefaultNullableHolder()) {
+ @Override
+ protected String transform(Boolean value) {
+ if (value != null) {
+ String defaultStringValue = value.booleanValue() ? JptUiDetailsMessages.Boolean_True : JptUiDetailsMessages.Boolean_False;
+ return NLS.bind(JptUiDetailsMessages.ColumnComposite_nullableWithDefault, defaultStringValue);
+ }
+ return JptUiDetailsMessages.ColumnComposite_nullable;
+ }
+ };
+ }
+
+ private PropertyValueModel<Boolean> buildDefaultNullableHolder() {
+ return new PropertyAspectAdapter<OrderColumn2_0, Boolean>(
+ getSubjectHolder(),
+ BaseColumn.SPECIFIED_NULLABLE_PROPERTY,
+ BaseColumn.DEFAULT_NULLABLE_PROPERTY)
+ {
+ @Override
+ protected Boolean buildValue_() {
+ if (this.subject.getSpecifiedNullable() != null) {
+ return null;
+ }
+ return Boolean.valueOf(this.subject.isDefaultNullable());
+ }
+ };
+ }
+
+
+ private WritablePropertyValueModel<Boolean> buildUpdatableHolder() {
+ return new PropertyAspectAdapter<OrderColumn2_0, Boolean>(
+ getSubjectHolder(),
+ BaseColumn.DEFAULT_UPDATABLE_PROPERTY,
+ BaseColumn.SPECIFIED_UPDATABLE_PROPERTY)
+ {
+ @Override
+ protected Boolean buildValue_() {
+ return this.subject.getSpecifiedUpdatable();
+ }
+
+ @Override
+ protected void setValue_(Boolean value) {
+ this.subject.setSpecifiedUpdatable(value);
+ }
+ };
+ }
+
+ private PropertyValueModel<String> buildUpdatableStringHolder() {
+
+ return new TransformationPropertyValueModel<Boolean, String>(buildDefaultUpdatableHolder()) {
+
+ @Override
+ protected String transform(Boolean value) {
+ if (value != null) {
+ String defaultStringValue = value.booleanValue() ? JptUiDetailsMessages.Boolean_True : JptUiDetailsMessages.Boolean_False;
+ return NLS.bind(JptUiDetailsMessages.ColumnComposite_updatableWithDefault, defaultStringValue);
+ }
+ return JptUiDetailsMessages.ColumnComposite_updatable;
+ }
+ };
+ }
+
+ private PropertyValueModel<Boolean> buildDefaultUpdatableHolder() {
+ return new PropertyAspectAdapter<OrderColumn2_0, Boolean>(
+ getSubjectHolder(),
+ BaseColumn.SPECIFIED_UPDATABLE_PROPERTY,
+ BaseColumn.DEFAULT_UPDATABLE_PROPERTY)
+ {
+ @Override
+ protected Boolean buildValue_() {
+ if (this.subject.getSpecifiedUpdatable() != null) {
+ return null;
+ }
+ return Boolean.valueOf(this.subject.isDefaultUpdatable());
+ }
+ };
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ // Column widgets
+ addLabeledComposite(
+ container,
+ JptUiDetailsMessages.ColumnComposite_name,
+ addColumnCombo(container),
+ JpaHelpContextIds.MAPPING_ORDER_COLUMN_ORDERING_COLUMN
+ );
+
+ // Details sub-pane
+ container = addCollapsableSubSection(
+ container,
+ JptUiDetailsMessages.ColumnComposite_details,
+ new SimplePropertyValueModel<Boolean>(Boolean.FALSE)
+ );
+
+ new DetailsComposite(this, getSubjectHolder(), addSubPane(container, 0, 16));
+ }
+
+ protected void installPaneEnabler(PropertyValueModel<Boolean> booleanHolder) {
+ new PaneEnabler(booleanHolder, this);
+ }
+
+ protected class DetailsComposite extends FormPane<OrderColumn2_0> {
+
+ public DetailsComposite(FormPane<?> parentPane,
+ PropertyValueModel<? extends OrderColumn2_0> subjectHolder,
+ Composite parent) {
+
+ super(parentPane, subjectHolder, parent, false);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+
+ // Insertable tri-state check box
+ addTriStateCheckBoxWithDefault(
+ addSubPane(container, 4),
+ JptUiDetailsMessages.ColumnComposite_insertable,
+ buildInsertableHolder(),
+ buildInsertableStringHolder(),
+ JpaHelpContextIds.MAPPING_COLUMN_INSERTABLE
+ );
+
+ // Updatable tri-state check box
+ addTriStateCheckBoxWithDefault(
+ container,
+ JptUiDetailsMessages.ColumnComposite_updatable,
+ buildUpdatableHolder(),
+ buildUpdatableStringHolder(),
+ JpaHelpContextIds.MAPPING_COLUMN_UPDATABLE
+ );
+
+ // Nullable tri-state check box
+ addTriStateCheckBoxWithDefault(
+ container,
+ JptUiDetailsMessages.ColumnComposite_nullable,
+ buildNullableHolder(),
+ buildNullableStringHolder(),
+ JpaHelpContextIds.MAPPING_COLUMN_NULLABLE
+ );
+
+ // Column Definition widgets
+ addLabeledText(
+ container,
+ JptUiDetailsMessages.ColumnComposite_columnDefinition,
+ buildColumnDefinitionHolder()
+ );
+ }
+ }
+} \ No newline at end of file

Back to the top