package org.nightlabs.jfire.trade.ui.articlecontainer; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.nightlabs.base.ui.composite.XComposite; import org.nightlabs.base.ui.notification.IDirtyStateManager; import org.nightlabs.base.ui.timelength.TimeLengthComposite; import org.nightlabs.jfire.trade.config.OfferConfigModule; import org.nightlabs.jfire.trade.ui.resource.Messages; public class OfferCfModPrefPageComposite extends XComposite { private IDirtyStateManager dirtyStateManager; private TimeLengthComposite expiryDurationUnfinalized; private TimeLengthComposite expiryDurationFinalized; private boolean suppressMarkDirty = false; public OfferCfModPrefPageComposite(Composite parent, int style, IDirtyStateManager _dirtyStateManager) { super(parent, style); this.dirtyStateManager = _dirtyStateManager; { Group group = new Group(this, SWT.NONE); group.setText(Messages.getString("org.nightlabs.jfire.trade.ui.articlecontainer.OfferCfModPrefPageComposite.group.expiryDurationUnfinalizedOffer.text")); //$NON-NLS-1$ group.setLayout(new GridLayout()); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Label label = new Label(group, SWT.WRAP); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label.setText(Messages.getString("org.nightlabs.jfire.trade.ui.articlecontainer.OfferCfModPrefPageComposite.label.expiryDurationUnfinalizedOffer")); //$NON-NLS-1$ expiryDurationUnfinalized = new TimeLengthComposite(group); expiryDurationUnfinalized.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); expiryDurationUnfinalized.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent event) { if (!suppressMarkDirty) dirtyStateManager.markDirty(); } }); } { Group group = new Group(this, SWT.NONE); group.setText(Messages.getString("org.nightlabs.jfire.trade.ui.articlecontainer.OfferCfModPrefPageComposite.group.expiryDurationFinalizedOffer.text")); //$NON-NLS-1$ group.setLayout(new GridLayout()); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Label label = new Label(group, SWT.WRAP); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label.setText(Messages.getString("org.nightlabs.jfire.trade.ui.articlecontainer.OfferCfModPrefPageComposite.label.expiryDurationFinalizedOffer")); //$NON-NLS-1$ expiryDurationFinalized = new TimeLengthComposite(group); expiryDurationFinalized.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); expiryDurationFinalized.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent event) { if (!suppressMarkDirty) dirtyStateManager.markDirty(); } }); } } /** * Transfer the data from the config-module to the UI. * * @param offerConfigModule the config-module to read the data from. */ public void updatePreferencePage(OfferConfigModule offerConfigModule) { suppressMarkDirty = true; try { expiryDurationUnfinalized.setTimeLength( offerConfigModule.getExpiryDurationMSecUnfinalized() ); expiryDurationFinalized.setTimeLength( offerConfigModule.getExpiryDurationMSecFinalized() ); } finally { suppressMarkDirty = false; } } public void updateConfigModule(OfferConfigModule offerConfigModule) { offerConfigModule.setExpiryDurationMSecUnfinalized( expiryDurationUnfinalized.getTimeLength() ); offerConfigModule.setExpiryDurationMSecFinalized( expiryDurationFinalized.getTimeLength() ); } }