diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java | 160 |
1 files changed, 45 insertions, 115 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java index 501c5c17f9..68a0528a1d 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. + * Copyright (c) 2008, 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. @@ -11,24 +11,17 @@ package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching; import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching; import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages; -import org.eclipse.jpt.ui.internal.util.LabeledControlUpdater; -import org.eclipse.jpt.ui.internal.util.LabeledLabel; +import org.eclipse.jpt.ui.internal.widgets.IntegerCombo; import org.eclipse.jpt.ui.internal.widgets.Pane; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; 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.layout.GridData; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Spinner; /** * CacheSizeComposite */ -@SuppressWarnings("nls") public class CacheSizeComposite extends Pane<EntityCacheProperties> { /** @@ -45,125 +38,62 @@ public class CacheSizeComposite extends Pane<EntityCacheProperties> super(parentComposite, parent); } - private WritablePropertyValueModel<Integer> buildCacheSizeHolder() { - return new PropertyAspectAdapter<EntityCacheProperties, Integer>(getSubjectHolder(), EntityCacheProperties.CACHE_SIZE_PROPERTY) { + @Override + protected void initializeLayout(Composite container) { + addCacheSizeCombo(container); + } + + private void addCacheSizeCombo(Composite container) { + new IntegerCombo<EntityCacheProperties>(this, container) { + @Override - protected Integer buildValue_() { - Integer value = subject.getCacheSize(); - if (value == null) { - value = -1; - } - return value; + protected String getLabelText() { + return EclipseLinkUiMessages.CacheSizeComposite_cacheSize; } - + @Override - protected void setValue_(Integer value) { - if (value == -1) { - value = null; - } - subject.setCacheSize(value); + protected String getHelpId() { + return null; } - }; - } - - private PropertyValueModel<Caching> buildCachingHolder() { - return new TransformationPropertyValueModel<EntityCacheProperties, Caching>(getSubjectHolder()) { + @Override - protected Caching transform_(EntityCacheProperties value) { - return value.getCaching(); + protected PropertyValueModel<Integer> buildDefaultHolder() { + return new PropertyAspectAdapter<Caching, Integer>(buildCachingHolder(), Caching.CACHE_SIZE_DEFAULT_PROPERTY) { + @Override + protected Integer buildValue_() { + Integer value = this.subject.getCacheSizeDefault(); + if (value == null) { + value = this.subject.getDefaultCacheSizeDefault(); + } + return value; + } + }; } - }; - } - - private PropertyValueModel<Integer> buildDefaultCacheSizeHolder() { - return new PropertyAspectAdapter<Caching, Integer>(buildCachingHolder(), Caching.CACHE_SIZE_DEFAULT_PROPERTY) { + @Override - protected Integer buildValue_() { - Integer value = subject.getCacheSizeDefault(); - if (value == null) { - value = subject.getDefaultCacheSizeDefault(); - } - return value; + protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() { + return new PropertyAspectAdapter<EntityCacheProperties, Integer>(getSubjectHolder(), EntityCacheProperties.CACHE_SIZE_PROPERTY) { + @Override + protected Integer buildValue_() { + return this.subject.getCacheSize(); + } + + @Override + protected void setValue_(Integer value) { + this.subject.setCacheSize(value); + } + }; } }; } - - private Control addDefaultCacheSizeLabel(Composite container) { - - Label label = addLabel( - container, - EclipseLinkUiMessages.DefaultWithoutValue - ); - - new LabeledControlUpdater( - new LabeledLabel(label), - buildDefaultCacheSizeLabelHolder() - ); - - return label; - } - - private PropertyValueModel<String> buildDefaultCacheSizeLabelHolder() { - - return new TransformationPropertyValueModel<Integer, String>(buildDefaultCacheSizeHolder()) { - + + private PropertyValueModel<Caching> buildCachingHolder() { + return new TransformationPropertyValueModel<EntityCacheProperties, Caching>(getSubjectHolder()) { @Override - protected String transform(Integer value) { - - if (value != null) { - return NLS.bind(EclipseLinkUiMessages.DefaultWithValue, value); - } - - return ""; + protected Caching transform_(EntityCacheProperties value) { + return value.getCaching(); } }; } - @Override - protected void initializeLayout(Composite container) { - - Spinner spinner = this.addLabeledSpinner( - container, - EclipseLinkUiMessages.CacheSizeComposite_cacheSize, - this.buildCacheSizeHolder(), - -1, - -1, - Integer.MAX_VALUE, - this.addDefaultCacheSizeLabel(container), - null - ); - - updateGridData(container, spinner); - } - - /** - * Changes the layout of the given container by changing which widget will - * grab the excess of horizontal space. By default, the center control grabs - * the excess space, we change it to be the right control. - * - * @param container The container containing the controls needing their - * <code>GridData</code> to be modified from the default values - * @param spinner The spinner that got created - */ - private void updateGridData(Composite container, Spinner spinner) { - - // It is possible the spinner's parent is not the container of the - // label, spinner and right control (a pane is sometimes required for - // painting the spinner's border) - Composite paneContainer = spinner.getParent(); - - while (container != paneContainer.getParent()) { - paneContainer = paneContainer.getParent(); - } - - Control[] controls = paneContainer.getChildren(); - - GridData gridData = new GridData(); - gridData.grabExcessHorizontalSpace = false; - gridData.horizontalAlignment = GridData.BEGINNING; - controls[1].setLayoutData(gridData); - - controls[2].setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - removeAlignRight(controls[2]); - } }
\ No newline at end of file |