+ private void refreshTypeCmbValues() {
+ List<Node> newAliases = AkbJcrUtils.getDefinedAliasForNode(akbNode);
+ boolean hasChanged = false;
+ // manually ckeck if something has changed
+ if (definedAliases == null
+ || newAliases.size() != definedAliases.size())
+ hasChanged = true;
+ else {
+
+ for (int i = 0; i < newAliases.size(); i++) {
+ if (!newAliases.get(i).equals(definedAliases.get(i))) {
+ hasChanged = true;
+ break;
+ }
+ }
+ }
+
+ if (hasChanged) {
+ definedAliases = newAliases;
+ final String[] names = new String[definedAliases.size()];
+ int i = 0;
+ for (Node node : definedAliases)
+ names[i++] = AkbJcrUtils.get(node, Property.JCR_TITLE);
+ typeCmb.setItems(names);
+ }
+ }
+
+ /**
+ * Returns the index in definedAliases list of the CURRENT defined alias as
+ * set in the item node <CODE>AkbNames.AKB_USED_CONNECTOR</CODE> if defined,
+ * -1 otherwise
+ */
+ private int getCurrAliasIndex() {
+ try {
+ String path = null;
+ int currAliasIndex = -1;
+ if (akbNode.hasProperty(AkbNames.AKB_USED_CONNECTOR))
+ path = akbNode.getProperty(AkbNames.AKB_USED_CONNECTOR)
+ .getString();
+
+ Session session = akbNode.getSession();
+ if (path != null && session.nodeExists(path)) {
+ for (int i = 0; i < definedAliases.size(); i++) {
+ if (path.equals(definedAliases.get(i).getPath())) {
+ currAliasIndex = i;
+ break;
+ }
+ }
+ // does not work
+ // Node chosenAlias = session.getNode(path);
+ // currAliasIndex = definedAliases.indexOf(chosenAlias);
+ }
+ return currAliasIndex;
+ } catch (RepositoryException re) {
+ throw new AkbException("Unable to retrieve current Alias", re);
+ }
+ }
+