/******************************************************************************* * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com) * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at http://www.gnu.org/licenses/lgpl.txt ******************************************************************************/ package com.opendoorlogistics.core.distances.ui; import java.awt.Dimension; import java.awt.Window; import java.awt.event.ItemEvent; import javax.swing.Box; import javax.swing.JLabel; import javax.swing.SwingUtilities; import com.opendoorlogistics.api.distances.DistancesOutputConfiguration; import com.opendoorlogistics.api.distances.DistancesOutputConfiguration.OutputDistanceUnit; import com.opendoorlogistics.api.distances.DistancesOutputConfiguration.OutputTimeUnit; import com.opendoorlogistics.core.utils.ui.EnumComboBox; public class UnitsBox extends AbstractDistancesConfigBox{ private final JLabel outputDistanceUnitLabel; private final EnumComboBox<OutputDistanceUnit> outputDistanceUnit; private final JLabel outputTimeUnitLabel; private final EnumComboBox<OutputTimeUnit> outputTimeUnit; private final DistancesOutputConfiguration config; public UnitsBox(Window owner,final DistancesOutputConfiguration config, long flags){ super(owner, "Units", flags); this.config = config; // output distance unit outputDistanceUnitLabel = new JLabel("Distance unit "); outputDistanceUnit = new EnumComboBox<OutputDistanceUnit>(OutputDistanceUnit.values(), config.getOutputDistanceUnit()){ @Override public void itemStateChanged(ItemEvent e) { config.setOutputDistanceUnit((OutputDistanceUnit)getSelectedItem()); // updateAppearance(); } }; outputDistanceUnit.setPreferredSize(new Dimension(120,26)); // output time unit outputTimeUnitLabel = new JLabel("Time unit "); outputTimeUnit = new EnumComboBox<OutputTimeUnit>(OutputTimeUnit.values(), config.getOutputTimeUnit()){ @Override public void itemStateChanged(ItemEvent e) { config.setOutputTimeUnit((OutputTimeUnit)getSelectedItem()); } }; panel.addLine(outputDistanceUnitLabel, outputDistanceUnit, Box.createRigidArea(new Dimension(10, 1)),outputTimeUnitLabel, outputTimeUnit); pack(); } public static void main(String []args){ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { UnitsBox box = new UnitsBox(null, new DistancesOutputConfiguration(),0); box.setVisible(true); } }); } // private void updateAppearance(){ // //// outputTimeUnitLabel.setEnabled(config.isUsesTime()|| hasFlag(UIFactory.COMPONENT_USES_TRAVEL_TIME)); //// outputTimeUnit.setEnabled(config.isUsesTime()|| hasFlag(UIFactory.COMPONENT_USES_TRAVEL_TIME)); //// //// outputDistanceUnitLabel.setEnabled(outType.isUsesDistance() || hasFlag(UIFactory.COMPONENT_USES_TRAVEL_DISTANCE)); //// outputDistanceUnit.setEnabled(outType.isUsesDistance()|| hasFlag(UIFactory.COMPONENT_USES_TRAVEL_DISTANCE)); // // } }