package org.nightlabs.jfire.trade.ui.tariff; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import javax.jdo.FetchPlan; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.nightlabs.jfire.accounting.Tariff; import org.nightlabs.jfire.accounting.TariffOrderConfigModule; import org.nightlabs.jfire.base.ui.config.AbstractConfigModuleController; import org.nightlabs.jfire.base.ui.config.AbstractUserConfigModulePreferencePage; import org.nightlabs.jfire.base.ui.config.IConfigModuleController; import org.nightlabs.jfire.config.ConfigModule; public class TariffOrderCfModPrefPage extends AbstractUserConfigModulePreferencePage { public TariffOrderCfModPrefPage() { super(TariffOrderCfModPrefPage.class.getName()); } @Override protected IConfigModuleController createConfigModuleController() { return new AbstractConfigModuleController(this) { public Class<? extends ConfigModule> getConfigModuleClass() { return TariffOrderConfigModule.class; } private Set<String> fetchGroups = null; public Set<String> getConfigModuleFetchGroups() { if (fetchGroups == null) { fetchGroups = new HashSet<String>(getCommonConfigModuleFetchGroups()); fetchGroups.add(TariffOrderConfigModule.FETCH_GROUP_TARIFF_ORDER_CONFIG_MODULE); fetchGroups.add(FetchPlan.DEFAULT); } return fetchGroups; } }; } private TariffOrderCfModComposite tariffOrderCfModComposite; @Override protected void createPreferencePage(Composite parent) { tariffOrderCfModComposite = new TariffOrderCfModComposite(parent, SWT.NONE, getPageDirtyStateManager()); } @Override public void updateConfigModule() { Map<Tariff, Integer> tariffOrderMap = new HashMap<Tariff, Integer>(); int index = 0; for (Tariff tariff : tariffOrderCfModComposite.getOrderedTariffs()) { tariffOrderMap.put(tariff, index++); } getConfigModule().setTariffOrderMap(tariffOrderMap); } private TariffOrderConfigModule getConfigModule() { return (TariffOrderConfigModule) getConfigModuleController().getConfigModule(); } @Override protected void updatePreferencePage() { if (!tariffOrderCfModComposite.isDisposed()) { tariffOrderCfModComposite.loadTariffs(getConfigModule()); } } //Removed by Chairat 19/02/2010 // @Override // protected void setEditable(boolean editable) { // if (!tariffOrderCfModComposite.isDisposed()) { // tariffOrderCfModComposite.setEditable(editable); // } // } }