/** Updates the state (enabled, not enabled) of the buttons */ private void updateEnabledState() { TableItem[] itemsIdMaps = fIdMapsTable.getSelection(); if (itemsIdMaps.length > 0) { IdMap idmap = (IdMap) itemsIdMaps[0].getData(); if (idmap.isInternal()) { fRenameIdMapButton.setEnabled(false); fRemoveIdMapButton.setEnabled(false); fEditIdMapButton.setEnabled(true); fNewMappingsButton.setEnabled(false); fEditMappingsButton.setEnabled(false); fRemoveMappingsButton.setEnabled(false); fNewOrderedButton.setEnabled(false); fEditOrderedButton.setEnabled(false); fRemoveOrderedButton.setEnabled(false); } else { fRenameIdMapButton.setEnabled(true); fRemoveIdMapButton.setEnabled(true); fEditIdMapButton.setEnabled(false); fNewMappingsButton.setEnabled(true); fEditMappingsButton.setEnabled(true); fRemoveMappingsButton.setEnabled(true); fNewOrderedButton.setEnabled(true); fEditOrderedButton.setEnabled(true); fRemoveOrderedButton.setEnabled(true); } } }
private void removeMapping(Shell shell) { TableItem[] itemsIdMaps = fIdMapsTable.getSelection(); TableItem[] itemsMappings = fMappingsTable.getSelection(); if (itemsMappings.length > 0 && itemsIdMaps.length > 0) { Mapping mapping = (Mapping) itemsMappings[0].getData(); IdMap idmap = (IdMap) itemsIdMaps[0].getData(); HashMap idmapHS = (HashMap) fIdMaps.get(idmap.getName()); idmapHS.remove(mapping.getKey()); Vector mappings = idmap.getMappings(); mappings.remove(mapping); itemsMappings[0].dispose(); // Table is single selection } }
private void removeOrdered(Shell shell) { TableItem[] itemsIdMaps = fIdMapsTable.getSelection(); TableItem[] itemsOrdered = fOrderedTable.getSelection(); if (itemsOrdered.length > 0 && itemsIdMaps.length > 0) { Mapping mapping = (Mapping) itemsOrdered[0].getData(); IdMap idmap = (IdMap) itemsIdMaps[0].getData(); ArrayList idmapAL = (ArrayList) fOrderedElements.get(idmap.getName()); idmapAL.remove(mapping.getKey()); if (idmapAL.size() <= 0) fOrderedElements.remove(idmap.getName()); ArrayList ordered = idmap.getOrdered(); ordered.remove(mapping); if (ordered.size() <= 0) idmap.setOrdered(null); itemsOrdered[0].dispose(); // Table is single selection } }
private void editOrdered(Shell shell) { TableItem[] itemsIdMaps = fIdMapsTable.getSelection(); TableItem[] itemsOrdered = fOrderedTable.getSelection(); if (itemsOrdered.length > 0) { IdMap idmap = (IdMap) itemsIdMaps[0].getData(); ArrayList idmapAL = (ArrayList) fOrderedElements.get(idmap.getName()); Mapping mapping = (Mapping) itemsOrdered[0].getData(); String idmapALKey = mapping.getKey(); idmapAL.remove(idmapALKey); XMLCompareEditOrderedDialog dialog = new XMLCompareEditOrderedDialog(shell, mapping, null, true); if (dialog.open() == Window.OK) { idmapALKey = mapping.getKey(); idmapAL.add(idmapALKey); fOrderedTable.remove(fOrderedTable.indexOf(itemsOrdered[0])); newOrderedTableItem(mapping, true); } } }
private void editMapping(Shell shell) { TableItem[] itemsIdMaps = fIdMapsTable.getSelection(); TableItem[] itemsMappings = fMappingsTable.getSelection(); if (itemsMappings.length > 0) { IdMap idmap = (IdMap) itemsIdMaps[0].getData(); HashMap idmapHM = (HashMap) fIdMaps.get(idmap.getName()); Mapping mapping = (Mapping) itemsMappings[0].getData(); String idmapHMKey = mapping.getKey(); idmapHM.remove(idmapHMKey); XMLCompareEditMappingDialog dialog = new XMLCompareEditMappingDialog(shell, mapping, null, true); if (dialog.open() == Window.OK) { idmapHMKey = mapping.getKey(); idmapHM.put(idmapHMKey, mapping.getIdAttribute()); fMappingsTable.remove(fMappingsTable.indexOf(itemsMappings[0])); newMappingsTableItem(mapping, true); } } }
private void fillIdMaps(boolean internal) { HashMap IdMaps = (internal) ? fIdMapsInternal : fIdMaps; HashMap OrderedElements = (internal) ? fOrderedElementsInternal : fOrderedElements; Set IdMapKeys = IdMaps.keySet(); for (Iterator iter_internal = IdMapKeys.iterator(); iter_internal.hasNext(); ) { String IdMapName = (String) iter_internal.next(); Vector Mappings = new Vector(); IdMap idmap = new IdMap(IdMapName, internal, Mappings); // create mappings of internal idmaps HashMap idmapHM = (HashMap) IdMaps.get(IdMapName); Set idmapKeys = idmapHM.keySet(); for (Iterator iter_idmap = idmapKeys.iterator(); iter_idmap.hasNext(); ) { Mapping mapping = new Mapping(); String signature = (String) iter_idmap.next(); int end_of_signature = signature.lastIndexOf(SIGN_SEPARATOR, signature.length() - 2); if (end_of_signature < XMLStructureCreator.ROOT_ID.length() + 1) mapping.setSignature(""); // $NON-NLS-1$ else mapping.setSignature( signature.substring(XMLStructureCreator.ROOT_ID.length() + 1, end_of_signature)); mapping.setElement(signature.substring(end_of_signature + 1, signature.length() - 1)); mapping.setIdAttribute((String) idmapHM.get(signature)); Mappings.add(mapping); } // create ordered mappings ArrayList idmapOrdered = (ArrayList) OrderedElements.get(IdMapName); if (idmapOrdered != null) { setOrdered(idmap, idmapOrdered); } // set extension if (fIdExtensionToName.containsValue(IdMapName)) { Set keySet = fIdExtensionToName.keySet(); String extension = new String(); for (Iterator iter = keySet.iterator(); iter.hasNext(); ) { extension = (String) iter.next(); if (((String) fIdExtensionToName.get(extension)).equals(IdMapName)) break; } idmap.setExtension(extension); } newIdMapsTableItem(idmap, false); } }
private void addMapping(Shell shell) { TableItem[] items = fIdMapsTable.getSelection(); if (items.length > 0) { IdMap idmap = (IdMap) items[0].getData(); Mapping mapping = new Mapping(); HashMap idmapHM = (HashMap) fIdMaps.get(idmap.getName()); XMLCompareEditMappingDialog dialog = new XMLCompareEditMappingDialog(shell, mapping, idmapHM, false); if (dialog.open() == Window.OK) { String idmapHMKey = mapping.getKey(); if (idmapHM == null) idmapHM = new HashMap(); if (!idmapHM.containsKey(idmapHMKey)) { idmapHM.put(idmapHMKey, mapping.getIdAttribute()); newMappingsTableItem(mapping, true); Vector mappings = idmap.getMappings(); mappings.add(mapping); } } } }
protected TableItem newIdMapsTableItem(IdMap idmap, boolean selected) { // find index where to insert table entry TableItem[] items = fIdMapsTable.getItems(); int i = 0; while (i < items.length && idmap.getName().compareToIgnoreCase(items[i].getText(0)) > 0) i++; TableItem item = new TableItem(fIdMapsTable, SWT.NULL, i); String[] values = new String[] { idmap.getName(), (idmap.isInternal()) ? XMLCompareMessages.XMLComparePreference_topTableColumn2internal : XMLCompareMessages.XMLComparePreference_topTableColumn2user, idmap.getExtension() }; item.setText(values); item.setData(idmap); if (selected) { fIdMapsTable.setSelection(i); fIdMapsTable.setFocus(); selectionChanged(); } return item; }
protected static void setOrdered(IdMap idmap, ArrayList idmapOrdered) { ArrayList Ordered = new ArrayList(); for (Iterator iter_ordered = idmapOrdered.iterator(); iter_ordered.hasNext(); ) { Mapping mapping = new Mapping(); String signature = (String) iter_ordered.next(); int end_of_signature = signature.lastIndexOf(SIGN_SEPARATOR, signature.length() - 2); if (end_of_signature < XMLStructureCreator.ROOT_ID.length() + 1) mapping.setSignature(""); // $NON-NLS-1$ else mapping.setSignature( signature.substring(XMLStructureCreator.ROOT_ID.length() + 1, end_of_signature)); mapping.setElement(signature.substring(end_of_signature + 1, signature.length() - 1)); Ordered.add(mapping); } idmap.setOrdered(Ordered); }
private void addIdMap(Shell shell) { IdMap idmap = new IdMap(false); XMLCompareAddIdMapDialog dialog = new XMLCompareAddIdMapDialog( shell, idmap, fIdMaps, fIdMapsInternal, fIdExtensionToName, false); if (dialog.open() == Window.OK) { if (!fIdMaps.containsKey(idmap.getName())) { fIdMaps.put(idmap.getName(), new HashMap()); if (!idmap.getExtension().equals("")) // $NON-NLS-1$ fIdExtensionToName.put(idmap.getExtension(), idmap.getName()); newIdMapsTableItem(idmap, true); } } }
private void editIdMap(Shell shell) { TableItem[] items = fIdMapsTable.getSelection(); if (items.length > 0) { IdMap idmap = (IdMap) items[0].getData(); XMLCompareEditCopyIdMapDialog dialog = new XMLCompareEditCopyIdMapDialog(shell, idmap, fIdMaps, fIdMapsInternal); if (dialog.open() == Window.OK) { String new_idmapName = dialog.getResult(); if (!fIdMaps.containsKey(new_idmapName)) { // copy over id mappings Vector newMappings = new Vector(); IdMap newIdMap = new IdMap(new_idmapName, false, newMappings); HashMap newIdmapHM = new HashMap(); fIdMaps.put(newIdMap.getName(), newIdmapHM); Vector Mappings = idmap.getMappings(); for (Enumeration enumeration = Mappings.elements(); enumeration.hasMoreElements(); ) { Mapping mapping = (Mapping) enumeration.nextElement(); Mapping newMapping = new Mapping(mapping.getElement(), mapping.getSignature(), mapping.getIdAttribute()); newMappings.add(newMapping); newIdmapHM.put(newMapping.getKey(), newMapping.getIdAttribute()); } // copy over ordered entries ArrayList orderedAL = idmap.getOrdered(); if (orderedAL != null && orderedAL.size() > 0) { ArrayList newOrderedAL = new ArrayList(); newIdMap.setOrdered(newOrderedAL); ArrayList idmapOrdered = new ArrayList(); fOrderedElements.put(newIdMap.getName(), idmapOrdered); for (Iterator iter = orderedAL.iterator(); iter.hasNext(); ) { Mapping ordered = (Mapping) iter.next(); Mapping newOrdered = new Mapping(ordered.getElement(), ordered.getSignature()); newOrderedAL.add(newOrdered); idmapOrdered.add(newOrdered.getKey()); } } newIdMapsTableItem(newIdMap, true); selectionChanged(); } } } }
private void renameIdMap(Shell shell) { TableItem[] itemsIdMaps = fIdMapsTable.getSelection(); if (itemsIdMaps.length > 0) { IdMap idmap = (IdMap) itemsIdMaps[0].getData(); String old_name = idmap.getName(); String old_extension = idmap.getExtension(); HashMap idmapHS = (HashMap) fIdMaps.get(old_name); XMLCompareAddIdMapDialog dialog = new XMLCompareAddIdMapDialog( shell, idmap, fIdMaps, fIdMapsInternal, fIdExtensionToName, true); if (dialog.open() == Window.OK) { fIdMaps.remove(old_name); fIdExtensionToName.remove(old_extension); fIdMaps.put(idmap.getName(), idmapHS); if (!idmap.getExtension().equals("")) // $NON-NLS-1$ fIdExtensionToName.put(idmap.getExtension(), idmap.getName()); fIdMapsTable.remove(fIdMapsTable.indexOf(itemsIdMaps[0])); newIdMapsTableItem(idmap, true); } } }
private void addOrdered(Shell shell) { TableItem[] items = fIdMapsTable.getSelection(); if (items.length > 0) { // Set orderedSet= fOrderedElements.keySet(); // for (Iterator iter= orderedSet.iterator(); iter.hasNext(); ) { // String IdMapName= (String) iter.next(); // ArrayList ordered= (ArrayList) fOrderedElements.get(IdMapName); // for (Iterator iter2= ordered.iterator(); iter2.hasNext(); ) { // System.out.println(IdMapName + ": " + iter2.next()); //$NON-NLS-1$ // } // } IdMap idmap = (IdMap) items[0].getData(); Mapping mapping = new Mapping(); ArrayList idmapAL = (ArrayList) fOrderedElements.get(idmap.getName()); if (idmapAL == null) idmapAL = new ArrayList(); XMLCompareEditOrderedDialog dialog = new XMLCompareEditOrderedDialog(shell, mapping, idmapAL, false); if (dialog.open() == Window.OK) { String idmapALKey = mapping.getKey(); if (!idmapAL.contains(idmapALKey)) { idmapAL.add(idmapALKey); newOrderedTableItem(mapping, true); ArrayList ordered = idmap.getOrdered(); if (ordered == null) { ordered = new ArrayList(); ordered.add(mapping); idmap.setOrdered(ordered); } else { ordered.add(mapping); } if (!fOrderedElements.containsKey(idmap.getName())) fOrderedElements.put(idmap.getName(), idmapAL); } } } }