Ignore:
Timestamp:
2010-12-18T21:25:43+01:00 (14 years ago)
Author:
malcolmh
Message:

save

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java

    r24786 r24799  
    2727import oseam.seamarks.MarkUkn;
    2828import oseam.seamarks.MarkSaw;
     29import smed.plug.ifc.SmedPluginManager;
    2930
    3031public class OSeaMAction {
    3132
     33        private SmedPluginManager manager;
    3234        private OSeaMAction dia = null;
    3335        public PanelMain panelMain = null;
    3436
    35         private SeaMark mark = null;
     37        public SeaMark mark = null;
    3638        private Collection<? extends OsmPrimitive> Selection = null;
    3739        private OsmPrimitive SelNode = null;
    3840
    3941        public SelectionChangedListener SmpListener = new SelectionChangedListener() {
    40                 public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
     42                public void selectionChanged(
     43                                Collection<? extends OsmPrimitive> newSelection) {
    4144                        Node node;
    4245                        Selection = newSelection;
    4346
    44 System.out.println("SmpListener");
    4547                        for (OsmPrimitive osm : Selection) {
    4648                                if (osm instanceof Node) {
     
    4951                                                if (node.compareTo(SelNode) != 0) {
    5052                                                        SelNode = node;
    51 System.out.println(node);
    5253                                                        parseSeaMark();
    5354                                                        mark.paintSign();
     
    5960        };
    6061
    61         public OSeaMAction() {
    62 
     62        public OSeaMAction(SmedPluginManager mngr) {
     63
     64                manager = mngr;
    6365                dia = this;
    6466                String str = Main.pref.get("mappaint.style.sources");
     
    7274                if (str.equals("#000000") || str.isEmpty())
    7375                        Main.pref.put("color.background", "#606060");
    74 System.out.println("newOSeaMAction");
    7576        }
    7677
    7778        public JPanel getOSeaMPanel() {
    7879                if (panelMain == null) {
    79                         panelMain = new PanelMain();
     80                        panelMain = new PanelMain(this);
    8081                        panelMain.setLayout(null);
    8182                        panelMain.setSize(new Dimension(400, 360));
     
    9495                ds = Main.main.getCurrentDataSet();
    9596
     97                manager.showVisualMessage("");
    9698                if (ds == null) {
    97                         mark = new MarkUkn(this, tr("Active layer contains no OSM data"));
    98                         mark.setNode(null);
     99                        manager.showVisualMessage(tr("Active layer contains no OSM data"));
     100                        mark = new MarkUkn(this, null);
    99101                        return;
    100102                }
     
    104106
    105107                if (nodes == 0) {
    106                         mark = new MarkUkn(this, tr("Please select a node"));
    107                         mark.setNode(null);
     108                        manager.showVisualMessage(tr("Please select a node"));
     109                        mark = new MarkUkn(this, null);
    108110                        return;
    109111                }
    110112
    111113                if (nodes > 1) {
    112                         mark = new MarkUkn(this, tr("Please select only one node"));
    113                         mark.setNode(null);
     114                        manager.showVisualMessage(tr("Please select only one node"));
     115                        mark = new MarkUkn(this, null);
    114116                        return;
    115117                }
     
    125127                if (keys.containsKey("seamark:type"))
    126128                        type = keys.get("seamark:type");
    127                
     129
    128130                if (type.equals("buoy_lateral") || type.equals("beacon_lateral")) {
    129131                        mark = new MarkLat(this, node);
    130132                        return;
    131133
    132                 } else if (type.equals("buoy_cardinal") || type.equals("beacon_cardinal")) {
    133                         mark = new MarkCard(this, node);
    134                         return;
    135 
    136                 } else if (type.equals("buoy_safe_water") || type.equals("beacon_safe_water")) {
    137                         mark = new MarkSaw(this, node);
    138                         return;
    139 
    140                 } else if (type.equals("buoy_special_purpose") || type.equals("beacon_special_purpose")) {
    141                         mark = new MarkSpec(this, node);
    142                         return;
    143 
    144                 } else if (type.equals("buoy_isolated_danger") || type.equals("beacon_isolated_danger")) {
     134                } else if (type.equals("buoy_cardinal")
     135                                || type.equals("beacon_cardinal")) {
     136                        mark = new MarkCard(this, node);
     137                        return;
     138
     139                } else if (type.equals("buoy_safe_water")
     140                                || type.equals("beacon_safe_water")) {
     141                        mark = new MarkSaw(this, node);
     142                        return;
     143
     144                } else if (type.equals("buoy_special_purpose")
     145                                || type.equals("beacon_special_purpose")) {
     146                        mark = new MarkSpec(this, node);
     147                        return;
     148
     149                } else if (type.equals("buoy_isolated_danger")
     150                                || type.equals("beacon_isolated_danger")) {
    145151                        mark = new MarkIsol(this, node);
    146152                        return;
     
    155161                                str = keys.get("seamark:light_float:colour");
    156162                                if (str.equals("red") || str.equals("green")
    157                                                 || str.equals("red;green;red") || str.equals("green;red;green")) {
     163                                                || str.equals("red;green;red")
     164                                                || str.equals("green;red;green")) {
    158165                                        mark = new MarkLat(this, node);
    159166                                        return;
    160167                                } else if (str.equals("black;yellow")
    161                                                 || str.equals("black;yellow;black") || str.equals("yellow;black")
     168                                                || str.equals("black;yellow;black")
     169                                                || str.equals("yellow;black")
    162170                                                || str.equals("yellow;black;yellow")) {
    163171                                        mark = new MarkCard(this, node);
     
    188196                }
    189197
    190                 if (keys.containsKey("buoy_lateral:category") || keys.containsKey("beacon_lateral:category")) {
    191                         mark = new MarkLat(this, node);
    192                         return;
    193                 } else if (keys.containsKey("buoy_cardinal:category") || keys.containsKey("beacon_cardinal:category")) {
    194                         mark = new MarkCard(this, node);
    195                         return;
    196                 } else if (keys.containsKey("buoy_isolated_danger:category") || keys.containsKey("beacon_isolated_danger:category")) {
    197                         mark = new MarkIsol(this, node);
    198                         return;
    199                 } else if (keys.containsKey("buoy_safe_water:category") || keys.containsKey("beacon_safe_water:category")) {
    200                         mark = new MarkSaw(this, node);
    201                         return;
    202                 } else if (keys.containsKey("buoy_special_purpose:category") || keys.containsKey("beacon_special_purpose:category")) {
    203                         mark = new MarkSpec(this, node);
    204                         return;
    205                 }
    206 
    207                 if (keys.containsKey("buoy_lateral:shape") || keys.containsKey("beacon_lateral:shape")) {
    208                         mark = new MarkLat(this, node);
    209                         return;
    210                 } else if (keys.containsKey("buoy_cardinal:shape") || keys.containsKey("beacon_cardinal:shape")) {
    211                         mark = new MarkCard(this, node);
    212                         return;
    213                 } else if (keys.containsKey("buoy_isolated_danger:shape") || keys.containsKey("beacon_isolated_danger:shape")) {
    214                         mark = new MarkIsol(this, node);
    215                         return;
    216                 } else if (keys.containsKey("buoy_safe_water:shape") || keys.containsKey("beacon_safe_water:shape")) {
    217                         mark = new MarkSaw(this, node);
    218                         return;
    219                 } else if (keys.containsKey("buoy_special_purpose:shape") || keys.containsKey("beacon_special_purpose:shape")) {
    220                         mark = new MarkSpec(this, node);
    221                         return;
    222                 }
    223 
    224                 if (keys.containsKey("buoy_lateral:colour") || keys.containsKey("beacon_lateral:colour")) {
    225                         mark = new MarkLat(this, node);
    226                         return;
    227                 } else if (keys.containsKey("buoy_cardinal:colour") || keys.containsKey("beacon_cardinal:colour")) {
    228                         mark = new MarkCard(this, node);
    229                         return;
    230                 } else if (keys.containsKey("buoy_isolated_danger:colour") || keys.containsKey("beacon_isolated_danger:colour")) {
    231                         mark = new MarkIsol(this, node);
    232                         return;
    233                 } else if (keys.containsKey("buoy_safe_water:colour") || keys.containsKey("beacon_safe_water:colour")) {
    234                         mark = new MarkSaw(this, node);
    235                         return;
    236                 } else if (keys.containsKey("buoy_special_purpose:colour") || keys.containsKey("beacon_special_purpose:colour")) {
    237                         mark = new MarkSpec(this, node);
    238                         return;
    239                 }
    240 
    241                 mark = new MarkUkn(this, Messages.getString("SmpDialogAction.91"));
    242                 mark.setNode(node);
    243                 mark.paintSign();
     198                if (keys.containsKey("buoy_lateral:category")
     199                                || keys.containsKey("beacon_lateral:category")) {
     200                        mark = new MarkLat(this, node);
     201                        return;
     202                } else if (keys.containsKey("buoy_cardinal:category")
     203                                || keys.containsKey("beacon_cardinal:category")) {
     204                        mark = new MarkCard(this, node);
     205                        return;
     206                } else if (keys.containsKey("buoy_isolated_danger:category")
     207                                || keys.containsKey("beacon_isolated_danger:category")) {
     208                        mark = new MarkIsol(this, node);
     209                        return;
     210                } else if (keys.containsKey("buoy_safe_water:category")
     211                                || keys.containsKey("beacon_safe_water:category")) {
     212                        mark = new MarkSaw(this, node);
     213                        return;
     214                } else if (keys.containsKey("buoy_special_purpose:category")
     215                                || keys.containsKey("beacon_special_purpose:category")) {
     216                        mark = new MarkSpec(this, node);
     217                        return;
     218                }
     219
     220                if (keys.containsKey("buoy_lateral:shape")
     221                                || keys.containsKey("beacon_lateral:shape")) {
     222                        mark = new MarkLat(this, node);
     223                        return;
     224                } else if (keys.containsKey("buoy_cardinal:shape")
     225                                || keys.containsKey("beacon_cardinal:shape")) {
     226                        mark = new MarkCard(this, node);
     227                        return;
     228                } else if (keys.containsKey("buoy_isolated_danger:shape")
     229                                || keys.containsKey("beacon_isolated_danger:shape")) {
     230                        mark = new MarkIsol(this, node);
     231                        return;
     232                } else if (keys.containsKey("buoy_safe_water:shape")
     233                                || keys.containsKey("beacon_safe_water:shape")) {
     234                        mark = new MarkSaw(this, node);
     235                        return;
     236                } else if (keys.containsKey("buoy_special_purpose:shape")
     237                                || keys.containsKey("beacon_special_purpose:shape")) {
     238                        mark = new MarkSpec(this, node);
     239                        return;
     240                }
     241
     242                if (keys.containsKey("buoy_lateral:colour")
     243                                || keys.containsKey("beacon_lateral:colour")) {
     244                        mark = new MarkLat(this, node);
     245                        return;
     246                } else if (keys.containsKey("buoy_cardinal:colour")
     247                                || keys.containsKey("beacon_cardinal:colour")) {
     248                        mark = new MarkCard(this, node);
     249                        return;
     250                } else if (keys.containsKey("buoy_isolated_danger:colour")
     251                                || keys.containsKey("beacon_isolated_danger:colour")) {
     252                        mark = new MarkIsol(this, node);
     253                        return;
     254                } else if (keys.containsKey("buoy_safe_water:colour")
     255                                || keys.containsKey("beacon_safe_water:colour")) {
     256                        mark = new MarkSaw(this, node);
     257                        return;
     258                } else if (keys.containsKey("buoy_special_purpose:colour")
     259                                || keys.containsKey("beacon_special_purpose:colour")) {
     260                        mark = new MarkSpec(this, node);
     261                        return;
     262                }
     263
     264                manager.showVisualMessage(tr("No seamark recognised at this node"));
     265                mark = new MarkUkn(this, node);
    244266                return;
    245267        }
Note: See TracChangeset for help on using the changeset viewer.