Changeset 33974 in osm for applications/editors/josm/plugins/indoorhelper/src/model
- Timestamp:
- 2018-01-04T11:05:03+01:00 (7 years ago)
- Location:
- applications/editors/josm/plugins/indoorhelper/src/model
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/indoorhelper/src/model/IndoorHelperModel.java
r33887 r33974 19 19 package model; 20 20 21 import java.util.ArrayList; 21 import static org.openstreetmap.josm.tools.I18n.tr; 22 23 import java.util.Collection; 22 24 import java.util.List; 23 25 … … 25 27 26 28 import org.openstreetmap.josm.Main; 29 import org.openstreetmap.josm.command.AddCommand; 27 30 import org.openstreetmap.josm.command.ChangePropertyCommand; 28 import org.openstreetmap.josm.data.osm.Filter; 29 import org.openstreetmap.josm.data.osm.Filter.FilterPreferenceEntry; 31 import org.openstreetmap.josm.data.osm.DataSet; 32 import org.openstreetmap.josm.data.osm.OsmPrimitive; 33 import org.openstreetmap.josm.data.osm.Relation; 34 import org.openstreetmap.josm.data.osm.RelationMember; 30 35 import org.openstreetmap.josm.data.osm.Tag; 31 36 import org.openstreetmap.josm.gui.MainApplication; 32 import org.openstreetmap.josm.gui.dialogs.FilterDialog;33 import org.openstreetmap.josm.gui.dialogs.FilterTableModel;34 37 35 38 import model.TagCatalog.IndoorObject; … … 40 43 * 41 44 * @author egru 45 * @author rebsc 42 46 */ 43 public class IndoorHelperModel { 44 45 private java.util.List<IndoorLevel> levelList; 46 private int workingLevel; 47 private int workingIndex; 47 public class IndoorHelperModel{ 48 48 49 private TagCatalog tags; 49 50 private PresetCounter counter; 50 51 51 52 /** 52 * Constructor for the {@link IndoorHelperModel} which sets the current53 * workingLevel to 0 and creates the {@link TagCatalog}.53 * Constructor for the {@link IndoorHelperModel} which creates the {@link TagCatalog} 54 * and {@link PresetCounter}. 54 55 */ 55 56 public IndoorHelperModel() { 56 this.workingLevel = 0;57 this.levelList = new ArrayList<>();58 57 this.tags = new TagCatalog(); 59 58 this.counter = new PresetCounter(); … … 61 60 62 61 /** 63 * Method to create a list of levels for the current building.64 * It also creates the filters which are needed to execute the indoor mapping.65 * minLevel should be lower than maxLevel or the same.66 *67 * @param minLevel the lowest level of the building68 * @param maxLevel the highest level of the building69 * @return boolean which indicates if the creation of the levelList was successful70 */71 public boolean setBuildingLevels(int minLevel, int maxLevel) {72 73 if (minLevel < maxLevel) {74 75 for (int i = minLevel; i <= maxLevel; i++) {76 77 IndoorLevel level = new IndoorLevel(i);78 levelList.add(level);79 80 // Get the filter dialog81 FilterDialog filterDialog = MainApplication.getMap().getToggleDialog(FilterDialog.class);82 83 if (filterDialog != null) {84 // Create a new filter85 //Filter filter = new Filter("\"indoor:level\"=\""+i+"\"", SearchMode.add, false, false, false);86 FilterPreferenceEntry entry = new FilterPreferenceEntry();87 entry.case_sensitive = false;88 entry.enable = false;89 entry.hiding = false;90 entry.inverted = false;91 entry.mapCSS_search = false;92 entry.mode = "add";93 entry.text = "\"indoor:level\"=\""+i+"\"";94 Filter filter = new Filter(entry);95 96 FilterTableModel filterTableModel = filterDialog.getFilterModel();97 98 boolean exists = false;99 100 // Search if the filter exists already.101 for (Filter listFilter : filterTableModel.getFilters()) {102 if (listFilter.equals(filter)) {103 exists = true;104 }105 }106 107 // Only add the filter if it is not already in the filter dialog.108 if (exists == false) {109 filterTableModel.addFilter(filter);110 }111 112 } else {113 //Show error message if filter dialog is null.114 JOptionPane.showMessageDialog(null, "Filter Dialog is null.", "Error", JOptionPane.ERROR_MESSAGE);115 }116 }117 118 return true;119 120 } else if (minLevel == maxLevel) {121 122 IndoorLevel level = new IndoorLevel(minLevel);123 levelList.add(level);124 125 // Get the filter dialog126 FilterDialog filterDialog = MainApplication.getMap().getToggleDialog(FilterDialog.class);127 128 if (filterDialog != null) {129 // Create a new filter130 //Filter filter = new Filter("\"indoor:level\"=\""+minLevel+"\"", SearchMode.add, false, false, false);131 132 FilterPreferenceEntry entry = new FilterPreferenceEntry();133 entry.case_sensitive = false;134 entry.enable = false;135 entry.hiding = false;136 entry.inverted = false;137 entry.mapCSS_search = false;138 entry.mode = "add";139 entry.text = "\"indoor:level\"=\""+minLevel+"\"";140 Filter filter = new Filter(entry);141 142 FilterTableModel filterTableModel = filterDialog.getFilterModel();143 144 boolean exists = false;145 146 // Search if the filter exists already.147 for (Filter listFilter : filterTableModel.getFilters()) {148 if (listFilter.equals(filter)) {149 exists = true;150 }151 }152 153 // Only add the filter if it is not already in the filter dialog.154 if (exists == false) {155 filterTableModel.addFilter(filter);156 }157 } else {158 JOptionPane.showMessageDialog(null, "Filter Dialog is null.", "Error", JOptionPane.ERROR_MESSAGE);159 }160 161 return true;162 }163 164 return false;165 }166 167 /**168 * Getter for the levelList of the model.169 *170 * @return the levelList, or null if no levelList was created yet171 */172 public java.util.List<IndoorLevel> getLevelList() {173 return this.levelList;174 }175 176 /**177 * Function to set the level the user wants to work on (with the level index) and activates the corresponding filter.178 *179 * @param index the index of the level the user wants to work on180 */181 public void setWorkingLevel(int index) {182 this.workingIndex = index;183 this.workingLevel = this.getLevelNumberFromIndex(index);184 185 FilterDialog filterDialog = MainApplication.getMap().getToggleDialog(FilterDialog.class);186 FilterTableModel filterTableModel = filterDialog.getFilterModel();187 188 189 for (Filter filter : filterTableModel.getFilters()) {190 // disable the filter for the current level191 if (filter.text.equals("\"indoor:level\"=\""+workingLevel+"\"")) {192 filterTableModel.setValueAt(false, filterTableModel.getFilters().indexOf(filter), FilterTableModel.COL_ENABLED);193 filterTableModel.setValueAt(false, filterTableModel.getFilters().indexOf(filter), FilterTableModel.COL_HIDING);194 } else if (filter.text.startsWith("\"indoor:level\"=\"")) {195 filterTableModel.setValueAt(true, filterTableModel.getFilters().indexOf(filter), FilterTableModel.COL_ENABLED);196 filterTableModel.setValueAt(true, filterTableModel.getFilters().indexOf(filter), FilterTableModel.COL_HIDING);197 }198 }199 }200 201 /**202 * Function to get the current working level of the plug-in203 *204 * @return {@link Integer} which represents the current working level205 */206 public int getWorkingLevel() {207 return this.workingLevel;208 }209 210 /**211 * Method to get the index of the current working level of the plug-in.212 *213 * @return {@link Integer} which represents the index214 */215 public int getWorkingIndex() {216 return this.workingIndex;217 }218 219 /**220 * Returns the level number which is corresponding to a specific index.221 *222 * @param index index of the level223 * @return a level number as an {@link Integer}224 */225 public int getLevelNumberFromIndex(int index) {226 return levelList.get(index).getLevelNumber();227 }228 229 /**230 * Function to set the nameTag of a specific level.231 *232 * @param levelNumber number of the level233 * @param levelName tag which the user wants to set234 * @return boolean which indicates if the level was found in the levelList235 */236 public void setLevelName(int levelIndex, String levelName) {237 if ((levelName.length() > 0) && (levelName != null)) {238 levelList.get(levelIndex).setNameTag(levelName);239 }240 }241 242 /**243 62 * Function to get a tag-set out of the {@link TagCatalog}. 244 * 63 * ClipboardUtils.copy(Main.getLayerManager().getEditDataSet(),Main.getLayerManager().getEditDataSet().getKey()); 245 64 * @param object the {@link IndoorObject} from which you want to get the tag-set 246 65 * @return a {@link List} of {@link Tag}s … … 250 69 } 251 70 252 253 /** 254 * Method which adds the selected tag-set to the currently selected OSM data. 255 * It also adds the level tag corresponding to the current working level. 71 /** 72 * Method which adds the selected tag-set to the currently selected OSM data. If OSM data is a relation add tag-set 73 * directly to the relation otherwise add it to nodes and/or ways. 256 74 * 257 75 * @param object the object which defines the tag-set you want to add 258 76 * @param userTags the tags which are given by the user input 259 */ 260 public void addTagsToOSM(IndoorObject object, List<Tag> userTags) { 77 * @author rebsc 78 */ 79 public void addTagsToOSM(IndoorObject object, List<Tag> userTags) { 261 80 if (!MainApplication.getLayerManager().getEditDataSet().selectionEmpty() && !Main.main.getInProgressSelection().isEmpty()) { 262 81 82 DataSet ds = Main.main.getEditDataSet(); 263 83 List<Tag> tags = this.getObjectTags(object); 84 Collection<Relation> relations = ds.getRelations(); 85 Relation relationToAdd = null; 86 264 87 tags.addAll(userTags); 265 tags.add(new Tag("indoor:level", Integer.toString(workingLevel))); 266 267 if (!this.getLevelList().get(workingIndex).hasEmptyName()) { 268 tags.add(this.getLevelList().get(workingIndex).getNameTag()); 88 89 // Increment the counter for the presets 90 this.counter.count(object); 91 92 // Put value on {@link relationToAdd} if selected object is a relation. 93 relationToAdd = getRelationFromDataSet(ds,relations); 94 95 if(relationToAdd != null) { 96 //Add tags to relation 97 for (Tag t : tags) { 98 Main.main.undoRedo.add(new ChangePropertyCommand(relationToAdd, t.getKey(), t.getValue())); 99 } 100 }else{ 101 //Add tags to ways or nodes 102 for (Tag t : tags) { 103 Main.main.undoRedo.add(new ChangePropertyCommand(Main.main.getInProgressSelection(), t.getKey(), t.getValue())); 104 } 269 105 } 270 271 // Increment the counter for the presets 106 //If the selected dataset is empty 107 } else if (MainApplication.getLayerManager().getEditDataSet().selectionEmpty()) { 108 109 JOptionPane.showMessageDialog(null, tr("No data selected."), tr("Error"), JOptionPane.ERROR_MESSAGE); 110 } 111 } 112 113 /** 114 * Method which adds a object {@link IndoorObject} to the currently selected OSM data (to nodes and/or ways). 115 * 116 * @param object the object which defines the tag-set you want to add 117 */ 118 public void addTagsToOSM(IndoorObject object) { 119 120 if (!MainApplication.getLayerManager().getEditDataSet().selectionEmpty() && !Main.main.getInProgressSelection().isEmpty()) { 121 List<Tag> tags = this.getObjectTags(object); 122 123 //Increment the counter for the presets 272 124 this.counter.count(object); 273 125 … … 276 128 Main.main.undoRedo.add(new ChangePropertyCommand(Main.main.getInProgressSelection(), t.getKey(), t.getValue())); 277 129 } 278 130 //If the selected dataset ist empty 279 131 } else if (MainApplication.getLayerManager().getEditDataSet().selectionEmpty()) { 280 281 JOptionPane.showMessageDialog(null, "No data selected.", "Error", JOptionPane.ERROR_MESSAGE); 282 } 283 } 284 285 /** 286 * Method which adds the selected tag-set to the currently selected OSM data. 287 * It also adds the level tag corresponding to the current working level. 288 * 289 * @param object the object which defines the tag-set you want to add 290 */ 291 public void addTagsToOSM(IndoorObject object) { 132 JOptionPane.showMessageDialog(null, tr("No data selected."), tr("Error"), JOptionPane.ERROR_MESSAGE); 133 } 134 } 135 136 /** 137 * Method which adds a list of tag-sets to the currently selected OSM data. Tags directly to ways and/or nodes. 138 * 139 * @param userTags the tags which are given by the user input 140 * @author rebsc 141 */ 142 public void addTagsToOSM(List<Tag> userTags) { 292 143 293 144 if (!MainApplication.getLayerManager().getEditDataSet().selectionEmpty() && !Main.main.getInProgressSelection().isEmpty()) { 294 List<Tag> tags = this.getObjectTags(object);295 tags.add(new Tag("indoor:level", Integer.toString(workingLevel)));296 297 // Increment the counter for the presets298 this.counter.count(object);299 145 300 146 //Add the tags to the current selection 301 for (Tag t : tags) {147 for (Tag t : userTags) { 302 148 Main.main.undoRedo.add(new ChangePropertyCommand(Main.main.getInProgressSelection(), t.getKey(), t.getValue())); 303 149 } 304 } else if (MainApplication.getLayerManager().getEditDataSet().selectionEmpty()) { 305 JOptionPane.showMessageDialog(null, "No data selected.", "Error", JOptionPane.ERROR_MESSAGE); 306 } 307 } 308 309 /** 150 } 151 else if (MainApplication.getLayerManager().getEditDataSet().selectionEmpty()) { 152 JOptionPane.showMessageDialog(null, tr("No data selected."), tr("Error"), JOptionPane.ERROR_MESSAGE); 153 } 154 } 155 156 /** 157 * Method which adds the relation to OSM data. Also adds the selected tag-set to relation object. 158 * 159 * @param String the Multipolygon Role as String 160 * @author rebsc 161 */ 162 public void addRelation(String role){ 163 Relation newRelation = new Relation(); 164 RelationMember newMember; 165 DataSet ds = Main.main.getEditDataSet(); 166 167 // Create new relation and add a new member with specific role 168 if(!MainApplication.getLayerManager().getEditDataSet().selectionEmpty()) { 169 for (OsmPrimitive osm : ds.getSelected()) { 170 newMember = new RelationMember(role == null ? "" : role, osm); 171 newRelation.addMember(newMember); 172 } 173 } 174 // Add relation to OSM data 175 MainApplication.undoRedo.add(new AddCommand(MainApplication.getLayerManager().getEditDataSet(), newRelation)); 176 } 177 178 /** 179 * Method which edits the selected object to the currently selected OSM data (relations). 180 * 181 * @param role The Multipolygon Role as String 182 * @param relation 183 * @author rebsc 184 */ 185 public void editRelation(String role, Collection<OsmPrimitive> innerRelation){ 186 187 RelationMember newMember; 188 DataSet ds = Main.main.getEditDataSet(); 189 Collection<Relation> relations = ds.getRelations(); 190 Relation relation = getRelationFromDataSet(ds,relations); 191 192 if (!MainApplication.getLayerManager().getEditDataSet().selectionEmpty() && !Main.main.getInProgressSelection().isEmpty() && 193 !innerRelation.isEmpty() && getRole(ds,relations).equals("outer")) { 194 195 //Add new relation member to selected relation 196 for (OsmPrimitive osm : innerRelation) { 197 newMember = new RelationMember(role == null ? "" : role, osm); 198 relation.addMember(newMember); 199 }; 200 201 //Check if dataset is not empty or if {@link innerRelation} has no value 202 }else if (MainApplication.getLayerManager().getEditDataSet().selectionEmpty() || innerRelation.isEmpty()) { 203 JOptionPane.showMessageDialog(null, tr("No data selected."), tr("Error"), JOptionPane.ERROR_MESSAGE); 204 205 //If selected object is not a relation member or not a relation member with role "outer" 206 }else if(!getRole(ds,relations).equals("outer")) { 207 JOptionPane.showMessageDialog(null, tr("No relation or no relation member with role \"outer\" selected."), tr("Error"), JOptionPane.ERROR_MESSAGE); 208 } 209 210 } 211 212 /** 310 213 * Returns the current ranking of the preset counter, which includes the 4 most used items. 311 214 * … … 315 218 return counter.getRanking(); 316 219 } 220 221 222 223 /************************************************* 224 * HELPER METHODS 225 * 226 */ 227 228 /** 229 * Function which returns the the relation (if any) of the currently selected object. 230 * If not returns null. 231 * @param ds actual working dataset 232 * @param relations collection of relations in the dataset 233 * @return relation of currently selected dataset 234 * @author rebsc 235 */ 236 private Relation getRelationFromDataSet(DataSet ds, Collection<Relation> relations) { 237 for(Relation r: relations) { 238 for(RelationMember rm: r.getMembers()) { 239 for(OsmPrimitive osm: ds.getSelected()) { 240 if(rm.refersTo(osm)) { 241 return r; 242 } 243 } 244 } 245 } 246 return null; 247 } 248 249 /** 250 * Function which returns the relation role (if any) of the currently selected object. 251 * If object is not a relation returns empty string. 252 * @param ds active dataset 253 * @param relations collection of relations in the dataset 254 * @return role of currently selected relation member if any 255 * @author rebsc 256 */ 257 private String getRole(DataSet ds, Collection<Relation> relations) { 258 259 if(isRelationMember(ds,relations)) { 260 for(Relation r: relations) { 261 for(RelationMember rm: r.getMembers()) { 262 for(OsmPrimitive osm: ds.getSelected()) { 263 if(rm.refersTo(osm)) { 264 return rm.getRole(); 265 } 266 } 267 } 268 } 269 } 270 return ""; 271 } 272 273 /** 274 * Function which returns true if the currently selected object is a relation 275 * @param ds active dataset 276 * @return true if selected object is a relation 277 * @author rebsc 278 */ 279 private boolean isRelationMember(DataSet ds, Collection<Relation> relations) { 280 for(Relation r: relations) { 281 for(RelationMember rm: r.getMembers()) { 282 for(OsmPrimitive osm: ds.getSelected()) { 283 if(rm.refersTo(osm)) { 284 return true; 285 } 286 } 287 } 288 } 289 return false; 290 } 291 292 293 /** 294 * 295 * 296 * 297 * 298 * 299 * 300 * 301 * 302 * 303 */ 317 304 } -
applications/editors/josm/plugins/indoorhelper/src/model/PresetCounter.java
r33887 r33974 30 30 * 31 31 * @author egru 32 * 32 * @author rebsc 33 33 */ 34 34 public class PresetCounter { … … 49 49 50 50 counterList.add(new ObjectCounter(IndoorObject.CONCRETE_WALL, 0)); 51 counterList.add(new ObjectCounter(IndoorObject.DOOR, 0)); 51 counterList.add(new ObjectCounter(IndoorObject.DOOR_PRIVATE, 0)); 52 counterList.add(new ObjectCounter(IndoorObject.DOOR_PUBLIC, 0)); 52 53 counterList.add(new ObjectCounter(IndoorObject.ELEVATOR, 0)); 53 54 counterList.add(new ObjectCounter(IndoorObject.ENTRANCE, 0)); 55 counterList.add(new ObjectCounter(IndoorObject.ENTRANCE_EXIT_ONLY, 0)); 56 counterList.add(new ObjectCounter(IndoorObject.ACCESS_PRIVATE, 0)); 57 counterList.add(new ObjectCounter(IndoorObject.ACCESS_PUBLIC, 0)); 54 58 counterList.add(new ObjectCounter(IndoorObject.GLASS_WALL, 0)); 55 59 counterList.add(new ObjectCounter(IndoorObject.ROOM, 0)); 56 counterList.add(new ObjectCounter(IndoorObject.SHELL, 0));57 counterList.add(new ObjectCounter(IndoorObject.STAIRWAYS, 0));58 60 counterList.add(new ObjectCounter(IndoorObject.STEPS, 0)); 61 counterList.add(new ObjectCounter(IndoorObject.CORRIDOR, 0)); 59 62 counterList.add(new ObjectCounter(IndoorObject.TOILET_FEMALE, 0)); 60 63 counterList.add(new ObjectCounter(IndoorObject.TOILET_MALE, 0)); 64 counterList.add(new ObjectCounter(IndoorObject.ZONE, 0)); 65 counterList.add(new ObjectCounter(IndoorObject.BENCH, 0)); 61 66 } 62 67 … … 134 139 } 135 140 141 142 143 /** 144 * 145 * 146 * 147 * 148 * 149 * 150 * 151 * 152 * 153 */ 136 154 } -
applications/editors/josm/plugins/indoorhelper/src/model/TagCatalog.java
r32637 r33974 19 19 package model; 20 20 21 /** 22 * Class to provide the indoor tagging catalog. 23 * 24 * @author egru 25 * @author rebsc 26 * 27 */ 28 29 /** 30 * Class to provide the indoor tagging catalog. 31 * 32 * @author egru 33 * @author rebsc 34 * 35 */ 36 import static org.openstreetmap.josm.tools.I18n.tr; 37 21 38 import java.util.ArrayList; 22 39 import java.util.List; … … 24 41 import org.openstreetmap.josm.data.osm.Tag; 25 42 26 /** 27 * Class to provide the indoor tagging catalog. 28 * 29 * @author egru 30 * 31 */ 43 public final class TagCatalog { 32 44 33 public final class TagCatalog {34 35 45 /** 36 * Function to get a specific tag-set out of the {@link TagCatalog}. 37 * 46 * Function to get a specific tag-set out of the {@link TagCatalog}. 47 * 38 48 * @param o the object for which you want the tag-set 39 49 * @return a list of tags for the specified object 40 */ 50 */ 41 51 public List<Tag> getTags(IndoorObject o) { 42 43 List<Tag> tagList = new ArrayList< Tag>();44 52 53 List<Tag> tagList = new ArrayList<>(); 54 45 55 switch(o) { 46 56 case CONCRETE_WALL: 47 tagList.add(new Tag( "indoor:area", "wall"));48 tagList.add(new Tag( "indoor:wall:material", "concrete"));57 tagList.add(new Tag(tr("indoor"), tr("wall"))); 58 tagList.add(new Tag(tr("material"), tr("concrete"))); 49 59 return tagList; 50 case DOOR: 51 tagList.add(new Tag("indoor:door", "yes")); 60 case DOOR_PRIVATE: 61 tagList.add(new Tag(tr("door"), tr("yes"))); 62 tagList.add(new Tag ("access","private")); 63 return tagList; 64 case DOOR_PUBLIC: 65 tagList.add(new Tag(tr("door"), tr("yes"))); 66 tagList.add(new Tag (tr("access"),tr("public"))); 52 67 return tagList; 53 68 case ELEVATOR: 54 tagList.add(new Tag( "indoor:area", "elevator"));69 tagList.add(new Tag(tr("highway"), tr("elevator"))); 55 70 return tagList; 56 71 case ENTRANCE: 57 tagList.add(new Tag( "indoor:entrance", "yes"));72 tagList.add(new Tag(tr("entrance"), tr("yes"))); 58 73 return tagList; 74 case ENTRANCE_EXIT_ONLY: 75 tagList.add(new Tag(tr("entrance"), tr("exit"))); 76 return tagList; 77 case ACCESS_PRIVATE: 78 tagList.add(new Tag(tr("access"),tr("private"))); 79 return tagList; 80 case ACCESS_PUBLIC: 81 tagList.add(new Tag(tr("access"),tr("public"))); 82 return tagList; 59 83 case TOILET_FEMALE: 60 tagList.add(new Tag( "indoor:area", "room"));61 tagList.add(new Tag( "amenity", "toilets"));62 tagList.add(new Tag( "female", "yes"));84 tagList.add(new Tag(tr("indoor"), tr("room"))); 85 tagList.add(new Tag(tr("amenity"), tr("toilets"))); 86 tagList.add(new Tag(tr("female"), tr("yes"))); 63 87 return tagList; 64 88 case GLASS_WALL: 65 tagList.add(new Tag( "indoor:area", "wall"));66 tagList.add(new Tag( "indoor:wall:material", "glass"));89 tagList.add(new Tag(tr("indoor"), tr("wall"))); 90 tagList.add(new Tag(tr("material"), tr("glass"))); 67 91 return tagList; 68 92 case TOILET_MALE: 69 tagList.add(new Tag( "indoor:area", "room"));70 tagList.add(new Tag( "amenity", "toilets"));71 tagList.add(new Tag( "male", "yes"));93 tagList.add(new Tag(tr("indoor"), tr("room"))); 94 tagList.add(new Tag(tr("amenity"), tr("toilets"))); 95 tagList.add(new Tag(tr("male"), tr("yes"))); 72 96 return tagList; 73 97 case ROOM: 74 tagList.add(new Tag("indoor:area", "room")); 75 return tagList; 76 case SHELL: 77 tagList.add(new Tag("indoor:area", "shell")); 78 return tagList; 79 case STAIRWAYS: 80 tagList.add(new Tag("indoor:area", "stairways")); 98 tagList.add(new Tag(tr("indoor"), tr("room"))); 81 99 return tagList; 82 100 case STEPS: 83 tagList.add(new Tag( "indoor:highway", "steps"));101 tagList.add(new Tag(tr("highway"), tr("steps"))); 84 102 return tagList; 103 case CORRIDOR: 104 tagList.add(new Tag(tr("indoor"), tr("corridor"))); 105 return tagList; 106 case BENCH: 107 tagList.add(new Tag(tr("amenity"),tr("bench"))); 108 return tagList; 109 case ZONE: 110 tagList.add(new Tag(tr("area"),tr("zone"))); 111 return tagList; 112 case NONE: 113 return tagList; 85 114 default: 86 115 tagList = null; … … 88 117 } 89 118 } 90 119 91 120 /** 92 121 * {@link Enum} class for an easier access of elements in the {@link TagCatalog} 93 * 122 * 94 123 * @author egru 124 * @author rebsc 95 125 * 96 126 */ 97 127 public enum IndoorObject { 98 SHELL, CONCRETE_WALL, GLASS_WALL, ROOM, TOILET_MALE, TOILET_FEMALE, ELEVATOR, STAIRWAYS, STEPS, DOOR, ENTRANCE; 128 CONCRETE_WALL, GLASS_WALL, ROOM, TOILET_MALE, TOILET_FEMALE, ELEVATOR, DOOR_PRIVATE, DOOR_PUBLIC, ENTRANCE, 129 ENTRANCE_EXIT_ONLY,ACCESS_PRIVATE,ACCESS_PUBLIC,STEPS,CORRIDOR,BENCH,ZONE,NONE; 99 130 } 100 131 132 133 /** 134 * 135 * 136 * 137 * 138 * 139 * 140 * 141 * 142 * 143 */ 101 144 }
Note:
See TracChangeset
for help on using the changeset viewer.