Changeset 12989 in josm


Ignore:
Timestamp:
2017-10-12T19:56:13+02:00 (7 years ago)
Author:
bastiK
Message:

closes #15410 - update tests + minor fixes

Location:
trunk
Files:
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/Preferences.java

    r12987 r12989  
    10811081     * @param colKey The color name
    10821082     * @return The color
    1083      */
     1083     * @deprecated (since 12989) no longer supported
     1084     */
     1085    @Deprecated
    10841086    public synchronized Color getDefaultColor(String colKey) {
    10851087        StringSetting col = Utils.cast(defaultsMap.get(COLOR_PREFIX+colKey), StringSetting.class);
  • trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java

    r12987 r12989  
    3131import javax.swing.ListSelectionModel;
    3232import javax.swing.event.ListSelectionEvent;
     33import javax.swing.event.ListSelectionListener;
     34import javax.swing.event.TableModelEvent;
     35import javax.swing.event.TableModelListener;
    3336import javax.swing.table.AbstractTableModel;
    3437import javax.swing.table.DefaultTableCellRenderer;
     
    6366 * @see NamedColorProperty
    6467 */
    65 public class ColorPreference implements SubPreferenceSetting {
     68public class ColorPreference implements SubPreferenceSetting, ListSelectionListener, TableModelListener {
    6669
    6770    /**
     
    320323            int sel = colors.getSelectedRow();
    321324            ColorEntry ce = tableModel.getEntry(sel);
    322             Color c = Main.pref.getDefaultColor(ce.key);
     325            Color c = ce.info.getDefaultValue();
    323326            if (c != null) {
    324327                colors.setValueAt(c, sel, 1);
     
    330333            for (int i = 0; i < data.size(); ++i) {
    331334                ColorEntry ce = data.get(i);
    332                 Color c = Main.pref.getDefaultColor(ce.key);
     335                Color c = ce.info.getDefaultValue();
    333336                if (c != null) {
    334337                    colors.setValueAt(c, i, 1);
     
    345348        defaultSet.setEnabled(false);
    346349
    347         colors = new JTable(tableModel) {
    348             @Override public void valueChanged(ListSelectionEvent e) {
    349                 super.valueChanged(e);
    350                 int sel = getSelectedRow();
    351                 remove.setEnabled(sel >= 0 && isRemoveColor(sel));
    352                 colorEdit.setEnabled(sel >= 0);
    353                 defaultSet.setEnabled(sel >= 0);
    354             }
    355         };
     350        colors = new JTable(tableModel);
    356351        colors.addMouseListener(new MouseAdapter() {
    357352            @Override
     
    402397        colors.setPreferredScrollableViewportSize(new Dimension(100, 112));
    403398
     399        colors.getSelectionModel().addListSelectionListener(this);
     400        colors.getModel().addTableModelListener(this);
     401
    404402        JPanel panel = new JPanel(new GridBagLayout());
    405403        panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
     
    417415    }
    418416
    419     Boolean isRemoveColor(int row) {
    420         return tableModel.getEntry(row).info.getCategory().equals(NamedColorProperty.COLOR_CATEGORY_LAYER);
     417    private boolean isRemoveColor(ColorEntry ce) {
     418        return ce.info.getCategory().equals(NamedColorProperty.COLOR_CATEGORY_LAYER);
    421419    }
    422420
     
    443441        }
    444442        for (ColorEntry e : tableModel.getData()) {
    445             if (!e.isDefault()) {
     443            if (e.info.getValue() != null) {
    446444                if (e.toProperty().put(e.info.getValue())
    447445                        && e.key.startsWith("mappaint.")) {
     
    463461        return gui.getDisplayPreference();
    464462    }
     463
     464    @Override
     465    public void valueChanged(ListSelectionEvent e) {
     466        updateEnabledState();
     467    }
     468
     469    @Override
     470    public void tableChanged(TableModelEvent e) {
     471        updateEnabledState();
     472    }
     473
     474    private void updateEnabledState() {
     475        int sel = colors.getSelectedRow();
     476        ColorEntry ce = sel >= 0 ? tableModel.getEntry(sel) : null;
     477        remove.setEnabled(ce != null && isRemoveColor(ce));
     478        colorEdit.setEnabled(ce != null);
     479        defaultSet.setEnabled(ce != null && !ce.isDefault());
     480    }
    465481}
  • trunk/test/unit/org/openstreetmap/josm/data/PreferencesTest.java

    r12949 r12989  
    33
    44import static org.junit.Assert.assertEquals;
    5 import static org.junit.Assert.assertTrue;
    6 
    7 import java.awt.Color;
    85
    96import org.junit.Rule;
    107import org.junit.Test;
    118import org.openstreetmap.josm.Main;
    12 import org.openstreetmap.josm.data.preferences.ColorProperty;
    139import org.openstreetmap.josm.testutils.JOSMTestRules;
    1410
     
    2824
    2925    /**
    30      * Test color name.
    31      */
    32     @Test
    33     public void testColorName() {
    34         assertEquals("Layer: {5DE308C0-916F-4B5A-B3DB-D45E17F30172}.gpx",
    35                 Main.pref.getColorName("layer.{5DE308C0-916F-4B5A-B3DB-D45E17F30172}.gpx"));
    36     }
    37 
    38     /**
    39      * Test color alpha.
    40      */
    41     @Test
    42     public void testColorAlpha() {
    43         assertEquals(0x12, new ColorProperty("foo", new Color(0x12345678, true)).get().getAlpha());
    44         assertTrue(Main.pref.putColor("bar", new Color(0x12345678, true)));
    45         assertEquals(0x12, new ColorProperty("bar", Color.RED).get().getAlpha());
    46     }
    47 
    48     /**
    49      * Test color name and alpha.
    50      */
    51     @Test
    52     public void testColorNameAlpha() {
    53         assertEquals(0x12, new ColorProperty("foo", new Color(0x12345678, true)).get().getAlpha());
    54         assertEquals(new Color(0x34, 0x56, 0x78, 0x12), Main.pref.getDefaultColor("foo"));
    55         assertEquals(0x12, Main.pref.getDefaultColor("foo").getAlpha());
    56     }
    57 
    58     /**
    5926     * Test {@link Preferences#toXML}.
    6027     */
  • trunk/test/unit/org/openstreetmap/josm/data/preferences/NamedColorPropertyTest.java

    r12988 r12989  
    33
    44import static org.junit.Assert.assertEquals;
     5import static org.junit.Assert.assertTrue;
    56
    67import java.awt.Color;
     8import java.util.Arrays;
    79
    810import org.junit.Before;
    911import org.junit.Rule;
    1012import org.junit.Test;
     13import org.openstreetmap.josm.Main;
    1114import org.openstreetmap.josm.spi.preferences.Config;
    1215import org.openstreetmap.josm.testutils.JOSMTestRules;
     
    1821 * @author Michael Zangl
    1922 */
    20 public class ColorPropertyTest {
     23public class NamedColorPropertyTest {
    2124    /**
    2225     * This is a preference test.
     
    2528    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
    2629    public JOSMTestRules test = new JOSMTestRules().preferences();
    27     private ColorProperty base;
     30    private NamedColorProperty base;
    2831
    2932    /**
     
    3235    @Before
    3336    public void createTestProperty() {
    34         base = new ColorProperty("test", Color.RED);
     37        base = new NamedColorProperty("test", Color.RED);
    3538    }
    3639
     
    4144    public void testGet() {
    4245        assertEquals(Color.RED, base.get());
    43 
    44         Config.getPref().put("color.test", "#00ff00");
    45         assertEquals(new Color(0xff00ff00), base.get());
    4646    }
    4747
     
    5353        assertEquals(Color.RED, base.get());
    5454
    55         base.put(new Color(0xff00ff00));
    56         assertEquals(new Color(0xff00ff00), base.get());
    57         assertEquals("#00ff00", Config.getPref().get("color.test").toLowerCase());
     55        base.put(new Color(0xff00af00));
     56        assertEquals(new Color(0xff00af00), base.get());
     57        assertEquals("#00af00", Config.getPref().getList("clr.general.test").get(0).toLowerCase());
    5858
    5959        base.put(null);
    6060        assertEquals(Color.RED, base.get());
     61    }
     62
     63    /**
     64     * Test color alpha.
     65     */
     66    @Test
     67    public void testColorAlpha() {
     68        assertEquals(0x12, new NamedColorProperty("foo", new Color(0x12345678, true)).get().getAlpha());
     69        assertTrue(Main.pref.putList("clr.general.bar", Arrays.asList("#34567812", "general", "", "bar")));
     70        assertEquals(0x12, new NamedColorProperty("bar", Color.RED).get().getAlpha());
     71    }
     72
     73    /**
     74     * Test color name and alpha.
     75     */
     76    @Test
     77    public void testColorNameAlpha() {
     78        assertEquals(0x12, new NamedColorProperty("foo", new Color(0x12345678, true)).get().getAlpha());
    6179    }
    6280
     
    6684    @Test
    6785    public void testGetChildColor() {
    68         AbstractToStringProperty<Color> child = base.getChildColor("test2");
     86        AbstractProperty<Color> child = base.getChildColor("test2");
    6987
    7088        assertEquals(Color.RED, child.get());
  • trunk/test/unit/org/openstreetmap/josm/gui/layer/LayerTest.java

    r10900 r12989  
    1616import org.openstreetmap.josm.Main;
    1717import org.openstreetmap.josm.data.preferences.AbstractProperty;
    18 import org.openstreetmap.josm.data.preferences.ColorProperty;
     18import org.openstreetmap.josm.data.preferences.NamedColorProperty;
    1919import org.openstreetmap.josm.testutils.JOSMTestRules;
    2020
     
    5252        AbstractProperty<Color> color = new LayerManagerTest.TestLayer() {
    5353            @Override
    54             protected ColorProperty getBaseColorProperty() {
    55                 return new ColorProperty("x", Color.BLACK);
     54            protected NamedColorProperty getBaseColorProperty() {
     55                return new NamedColorProperty("x", Color.BLACK);
    5656            }
    5757        }.getColorProperty();
     
    101101            @Override
    102102            public AbstractProperty<Color> getColorProperty() {
    103                 return new ColorProperty("test", Color.RED);
     103                return new NamedColorProperty("test", Color.RED);
    104104            }
    105105        };
Note: See TracChangeset for help on using the changeset viewer.