+ private void refreshTypeCmbValues() {
+ List<Node> newAliases;
+ try {
+ newAliases = JcrUtils.nodeIteratorToList(akbService
+ .getDefinedAliases(
+ AkbJcrUtils.getCurrentTemplate(itemNode),
+ AkbJcrUtils.getAliasTypeForNode(itemNode)));
+ } catch (RepositoryException e) {
+ throw new AkbException("Unable to get defined aliases for node "
+ + itemNode, e);
+ }
+ 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);
+ aliasCmb.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 {
+ if (itemNode.hasProperty(AkbNames.AKB_USED_CONNECTOR)) {
+ String aliasPath = itemNode.getProperty(
+ AkbNames.AKB_USED_CONNECTOR).getString();
+ Node alias = itemNode.getSession().getNode(aliasPath);
+ return aliasCmb.indexOf(alias.getProperty(Property.JCR_TITLE).getString());
+ } else
+ return -1;
+ } catch (RepositoryException re) {
+ throw new AkbException("Unable to retrieve current Alias", re);
+ }
+ }
+