]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Remove AKB from SLC
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 26 Jan 2014 12:34:40 +0000 (12:34 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 26 Jan 2014 12:34:40 +0000 (12:34 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@6770 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

90 files changed:
dep/org.argeo.slc.dep.akb.rap/pom.xml [deleted file]
dep/org.argeo.slc.dep.akb.rcp/pom.xml [deleted file]
modules/org.argeo.slc.akb.services/.project [deleted file]
modules/org.argeo.slc.akb.services/META-INF/spring/jackrabbit.xml [deleted file]
modules/org.argeo.slc.akb.services/META-INF/spring/services-osgi.xml [deleted file]
modules/org.argeo.slc.akb.services/META-INF/spring/services.xml [deleted file]
modules/org.argeo.slc.akb.services/init.ldif [deleted file]
modules/org.argeo.slc.akb.services/pom.xml [deleted file]
plugins/org.argeo.slc.akb.ui/.classpath [deleted file]
plugins/org.argeo.slc.akb.ui/.project [deleted file]
plugins/org.argeo.slc.akb.ui/.settings/org.eclipse.jdt.core.prefs [deleted file]
plugins/org.argeo.slc.akb.ui/META-INF/spring/commands.xml [deleted file]
plugins/org.argeo.slc.akb.ui/META-INF/spring/editors.xml [deleted file]
plugins/org.argeo.slc.akb.ui/META-INF/spring/osgi.xml [deleted file]
plugins/org.argeo.slc.akb.ui/META-INF/spring/views.xml [deleted file]
plugins/org.argeo.slc.akb.ui/build.properties [deleted file]
plugins/org.argeo.slc.akb.ui/icons/addConnector.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/addItem.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/akb.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/connectors.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/environment.png [deleted file]
plugins/org.argeo.slc.akb.ui/icons/environments.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/itemFolder.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/jcrConnector.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/jcrQuery.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/jdbcConnector.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/jdbcQuery.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/note.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/refresh.png [deleted file]
plugins/org.argeo.slc.akb.ui/icons/searchView.png [deleted file]
plugins/org.argeo.slc.akb.ui/icons/smallerOrnamentLogo.png [deleted file]
plugins/org.argeo.slc.akb.ui/icons/sshCommand.png [deleted file]
plugins/org.argeo.slc.akb.ui/icons/sshConnector.png [deleted file]
plugins/org.argeo.slc.akb.ui/icons/sshFile.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/template.gif [deleted file]
plugins/org.argeo.slc.akb.ui/icons/treeView.png [deleted file]
plugins/org.argeo.slc.akb.ui/plugin.xml [deleted file]
plugins/org.argeo.slc.akb.ui/pom.xml [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbEnvPerspective.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbImages.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbMessages.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbTemplatesPerspective.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiConstants.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiPlugin.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiUtils.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/CreateAkbNode.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/DeleteAkbNodes.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/ForceRefresh.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/OpenAkbNodeEditor.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/OpenUrl.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ActiveItemHeaderComposite.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/AkbItemsTableComposite.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/AliasListItemComposite.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ConnectorAliasSmallComposite.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ItemTemplateTitleComposite.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/MixTitleComposite.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/dialogs/AddItemDialog.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AbstractAkbNodeEditor.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AkbItemTemplateEditor.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AkbNodeEditorInput.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/ConnectorAliasEditor.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/EnvTemplateEditor.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcQueryTemplateEditor.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcTestPage.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/SshCommandTemplateEditor.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/SshFileTemplateEditor.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/ActiveEnvsTreeContentProvider.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/ActiveTreeItem.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/AkbImageProvider.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/AkbTreeLabelProvider.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/TemplatesTreeContentProvider.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/utils/AkbItemsComparator.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/utils/Refreshable.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbDefaultView.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbTemplatesTreeView.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/EnvironmentsTreeView.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/wizards/ActiveConnectorWizard.java [deleted file]
plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/wizards/CreateEnvInstanceWizard.java [deleted file]
runtime/org.argeo.slc.akb/.classpath [deleted file]
runtime/org.argeo.slc.akb/.project [deleted file]
runtime/org.argeo.slc.akb/build.properties [deleted file]
runtime/org.argeo.slc.akb/pom.xml [deleted file]
runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbConstants.java [deleted file]
runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbException.java [deleted file]
runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbNames.java [deleted file]
runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbService.java [deleted file]
runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbTypes.java [deleted file]
runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/core/AkbServiceImpl.java [deleted file]
runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/utils/AkbJcrUtils.java [deleted file]
runtime/org.argeo.slc.akb/src/main/resources/org/argeo/slc/akb/akb.cnd [deleted file]

diff --git a/dep/org.argeo.slc.dep.akb.rap/pom.xml b/dep/org.argeo.slc.dep.akb.rap/pom.xml
deleted file mode 100644 (file)
index 81cbb81..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.argeo.slc</groupId>
-               <artifactId>dep</artifactId>
-               <version>1.1.15-SNAPSHOT</version>
-               <relativePath>..</relativePath>
-       </parent>
-       <artifactId>org.argeo.slc.akb.dep.rap</artifactId>
-       <name>SLC AKB RAP Dependencies</name>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <configuration>
-                                       <instructions>
-                                               <SLC-ModularDistribution>default</SLC-ModularDistribution>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.argeo.maven.plugins</groupId>
-                               <artifactId>maven-argeo-osgi-plugin</artifactId>
-                               <executions>
-                                       <execution>
-                                               <id>generate-descriptors</id>
-                                               <goals>
-                                                       <goal>descriptors</goal>
-                                               </goals>
-                                               <phase>generate-resources</phase>
-                                       </execution>
-                               </executions>
-                       </plugin>
-               </plugins>
-       </build>
-       <dependencies>
-               <!-- AKB -->
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.akb</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.akb.services</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.akb.ui</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-
-               <!-- SLC -->
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.support.simple</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.support.jcr</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-<!--           <dependency> -->
-<!--                   <groupId>org.argeo.slc</groupId> -->
-<!--                   <artifactId>org.argeo.slc.client.rap</artifactId> -->
-<!--                   <version>1.1.15-SNAPSHOT</version> -->
-<!--                   <optional>true</optional> -->
-<!--           </dependency> -->
-
-               <!-- Secure Application -->
-               <dependency>
-                       <groupId>org.argeo.commons.security</groupId>
-                       <artifactId>org.argeo.security.dep.node.rap</artifactId>
-                       <version>${version.argeo-commons}</version>
-               </dependency>
-       </dependencies>
-       <profiles>
-               <profile>
-                       <id>check-osgi</id>
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               <groupId>org.argeo.maven.plugins</groupId>
-                                               <artifactId>maven-argeo-osgi-plugin</artifactId>
-                                               <executions>
-                                                       <execution>
-                                                               <id>check-osgi</id>
-                                                               <phase>test</phase>
-                                                               <goals>
-                                                                       <goal>equinox</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       <onlyCheck>true</onlyCheck>
-                                                               </configuration>
-                                                       </execution>
-                                               </executions>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
-       </profiles>
-</project>
\ No newline at end of file
diff --git a/dep/org.argeo.slc.dep.akb.rcp/pom.xml b/dep/org.argeo.slc.dep.akb.rcp/pom.xml
deleted file mode 100644 (file)
index 7ad1d20..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.argeo.slc</groupId>
-               <artifactId>dep</artifactId>
-               <version>1.1.15-SNAPSHOT</version>
-               <relativePath>..</relativePath>
-       </parent>
-       <artifactId>org.argeo.slc.akb.dep.rcp</artifactId>
-       <name>SLC AKB RCP Dependencies</name>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <configuration>
-                                       <instructions>
-                                               <SLC-ModularDistribution>default</SLC-ModularDistribution>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.argeo.maven.plugins</groupId>
-                               <artifactId>maven-argeo-osgi-plugin</artifactId>
-                               <executions>
-                                       <execution>
-                                               <id>generate-descriptors</id>
-                                               <goals>
-                                                       <goal>descriptors</goal>
-                                               </goals>
-                                               <phase>generate-resources</phase>
-                                       </execution>
-                               </executions>
-                       </plugin>
-               </plugins>
-       </build>
-       <dependencies>
-               <!-- AKB -->
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.akb</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.akb.services</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.akb.ui</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-
-               <!-- SLC -->
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.support.simple</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.support.jcr</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-<!--           <dependency> -->
-<!--                   <groupId>org.argeo.slc</groupId> -->
-<!--                   <artifactId>org.argeo.slc.client.rcp</artifactId> -->
-<!--                   <version>1.1.15-SNAPSHOT</version> -->
-<!--                   <optional>true</optional> -->
-<!--           </dependency> -->
-
-               <!-- Secure Application -->
-               <dependency>
-                       <groupId>org.argeo.commons.security</groupId>
-                       <artifactId>org.argeo.security.dep.node.rcp</artifactId>
-                       <version>${version.argeo-commons}</version>
-               </dependency>
-       </dependencies>
-       <profiles>
-               <profile>
-                       <id>check-osgi</id>
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               <groupId>org.argeo.maven.plugins</groupId>
-                                               <artifactId>maven-argeo-osgi-plugin</artifactId>
-                                               <executions>
-                                                       <execution>
-                                                               <id>check-osgi</id>
-                                                               <phase>test</phase>
-                                                               <goals>
-                                                                       <goal>equinox</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       <onlyCheck>true</onlyCheck>
-                                                               </configuration>
-                                                       </execution>
-                                               </executions>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
-       </profiles>
-</project>
\ No newline at end of file
diff --git a/modules/org.argeo.slc.akb.services/.project b/modules/org.argeo.slc.akb.services/.project
deleted file mode 100644 (file)
index 62cda5c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>org.argeo.slc.akb.services</name>
-       <comment></comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-       </natures>
-</projectDescription>
diff --git a/modules/org.argeo.slc.akb.services/META-INF/spring/jackrabbit.xml b/modules/org.argeo.slc.akb.services/META-INF/spring/jackrabbit.xml
deleted file mode 100644 (file)
index 06bdb45..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
-
-       <bean id="akbRepository" class="org.argeo.jackrabbit.JackrabbitWrapper"
-               init-method="init" destroy-method="destroy">
-               <property name="cndFiles">
-                       <list>
-                               <value>/org/argeo/slc/akb/akb.cnd</value>
-                       </list>
-               </property>
-               <property name="repository" ref="nodeRepository" />
-               <property name="bundleContext" ref="bundleContext" />
-       </bean>
-</beans>
diff --git a/modules/org.argeo.slc.akb.services/META-INF/spring/services-osgi.xml b/modules/org.argeo.slc.akb.services/META-INF/spring/services-osgi.xml
deleted file mode 100644 (file)
index cbc3815..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
-       xsi:schemaLocation="http://www.springframework.org/schema/osgi  \r
-       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
-       http://www.springframework.org/schema/beans   \r
-       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
-\r
-       <!-- LABEL -->\r
-       <beans:bean class="org.argeo.security.core.OsgiModuleLabel">\r
-               <beans:property name="bundleContext" ref="bundleContext" />\r
-       </beans:bean>\r
-\r
-       <!-- REFERENCES -->\r
-       <reference id="nodeRepository" interface="javax.jcr.Repository"\r
-               filter="(argeo.jcr.repository.alias=node)" />\r
-       <reference id="authenticationManager"\r
-               interface="org.springframework.security.AuthenticationManager" />\r
-       <!-- SERVICES -->\r
-       <service ref="akbRepository" interface="javax.jcr.Repository">\r
-               <service-properties>\r
-                       <beans:entry key="argeo.jcr.repository.alias" value="akb" />\r
-               </service-properties>\r
-       </service>\r
-       <service ref="akbService" interface="org.argeo.slc.akb.AkbService" />\r
-\r
-       <reference id="keyring" interface="org.argeo.security.crypto.CryptoKeyring" />\r
-\r
-</beans:beans>
diff --git a/modules/org.argeo.slc.akb.services/META-INF/spring/services.xml b/modules/org.argeo.slc.akb.services/META-INF/spring/services.xml
deleted file mode 100644 (file)
index 0711d65..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans xmlns="http://www.springframework.org/schema/beans"\r
-       xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-       xsi:schemaLocation="\r
-               http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
-               http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">\r
-\r
-       <bean id="akbService" class="org.argeo.slc.akb.core.AkbServiceImpl"\r
-               init-method="init" destroy-method="destroy">\r
-               <property name="repository" ref="akbRepository" />\r
-               <property name="keyring" ref="keyring" />\r
-       </bean>\r
-       <bean\r
-               class="org.argeo.security.core.AuthenticatedApplicationContextInitialization">\r
-               <property name="authenticationManager" ref="authenticationManager" />\r
-       </bean>\r
-</beans>
diff --git a/modules/org.argeo.slc.akb.services/init.ldif b/modules/org.argeo.slc.akb.services/init.ldif
deleted file mode 100644 (file)
index 4f6a47d..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-dn: dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: domain
-objectClass: extensibleObject
-objectClass: top
-dc: gr
-
-dn: ou=Roles,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: organizationalUnit
-objectClass: top
-ou: Roles
-
-dn: ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: organizationalUnit
-objectClass: top
-ou: Akb
-
-dn: uid=demo,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: organizationalPerson
-objectClass: person
-objectClass: inetOrgPerson
-objectClass: top
-cn: Demo User
-description: Default demo user
-givenname: Demo
-mail: demo@localhost
-sn: User
-uid: demo
-userpassword:: e1NIQX1pZVNWNTVRYytlUU9hWURSU2hhL0Fqek5USkU9
-
-dn: uid=consultant,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: organizationalPerson
-objectClass: person
-objectClass: inetOrgPerson
-objectClass: top
-cn: Consultant
-description: Consultant
-givenname: Consultant
-mail: consultant@localhost
-sn: User
-uid: consultant
-userpassword:: e1NIQX1pZVNWNTVRYytlUU9hWURSU2hhL0Fqek5USkU9
-
-dn: uid=manager,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: organizationalPerson
-objectClass: person
-objectClass: inetOrgPerson
-objectClass: top
-cn: Manager
-description: Manager
-givenname: Manager
-mail: manager@localhost
-sn: User
-uid: manager
-userpassword:: e1NIQX1pZVNWNTVRYytlUU9hWURSU2hhL0Fqek5USkU9
-
-dn: uid=root,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: person
-objectClass: inetOrgPerson
-objectClass: organizationalPerson
-objectClass: top
-cn: Slc Demo System
-description: Superuser
-givenname: Slc Demo
-mail: root@localhost
-sn: System
-uid: root
-userpassword:: e1NIQX1pZVNWNTVRYytlUU9hWURSU2hhL0Fqek5USkU9
-
-dn: cn=admin,ou=Roles,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: groupOfNames
-objectClass: top
-cn: admin
-member: uid=root,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-
-dn: cn=consultant,ou=Roles,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: groupOfNames
-objectClass: top
-cn: consultant
-member: uid=root,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-member: uid=demo,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-member: uid=manager,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-member: uid=consultant,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-
-dn: cn=manager,ou=Roles,dc=demo,dc=slc,dc=argeo,dc=org
-objectClass: groupOfNames
-objectClass: top
-cn: manager
-member: uid=root,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
-member: uid=manager,ou=Akb,dc=demo,dc=slc,dc=argeo,dc=org
diff --git a/modules/org.argeo.slc.akb.services/pom.xml b/modules/org.argeo.slc.akb.services/pom.xml
deleted file mode 100644 (file)
index 0618a71..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.argeo.slc</groupId>
-               <artifactId>modules</artifactId>
-               <version>1.1.15-SNAPSHOT</version>
-               <relativePath>..</relativePath>
-       </parent>
-       <artifactId>org.argeo.slc.akb.services</artifactId>
-       <name>SLC AKB - Services</name>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <configuration>
-                                       <instructions>
-                                               <Import-Package>
-                                                       *,
-                                                       org.argeo.slc.akb,
-                                                </Import-Package>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-               </plugins>
-       </build>
-       <dependencies>
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.akb</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-       </dependencies>
-</project>
diff --git a/plugins/org.argeo.slc.akb.ui/.classpath b/plugins/org.argeo.slc.akb.ui/.classpath
deleted file mode 100644 (file)
index 76cb935..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="src" path="src/main/java" />
-       <classpathentry kind="src" path="src/main/resources" />
-       <classpathentry kind="con"
-               path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" />
-       <classpathentry kind="con"
-               path="org.eclipse.pde.core.requiredPlugins" />
-       <classpathentry kind="output" path="target/classes" />
-</classpath>
diff --git a/plugins/org.argeo.slc.akb.ui/.project b/plugins/org.argeo.slc.akb.ui/.project
deleted file mode 100644 (file)
index 1462e5a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>org.argeo.slc.akb.ui</name>
-       <comment></comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-       </natures>
-</projectDescription>
diff --git a/plugins/org.argeo.slc.akb.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.argeo.slc.akb.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644 (file)
index c537b63..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/plugins/org.argeo.slc.akb.ui/META-INF/spring/commands.xml b/plugins/org.argeo.slc.akb.ui/META-INF/spring/commands.xml
deleted file mode 100644 (file)
index e5ebc9a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-        http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-       <!-- Opens or show an AKB specific node given some params. -->
-       <bean id="openAkbNodeEditor" class="org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-               <property name="akbService" ref="akbService" />
-       </bean>
-
-       <!-- Creates an AKB node given some params. -->
-       <bean id="createAkbNode" class="org.argeo.slc.akb.ui.commands.CreateAkbNode"
-               scope="prototype">
-               <property name="akbService" ref="akbService" />
-       </bean>
-
-       <!-- deletes an AKB specific node -->
-       <bean id="deleteAkbNodes" class="org.argeo.slc.akb.ui.commands.DeleteAkbNodes"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-       </bean>
-</beans>
diff --git a/plugins/org.argeo.slc.akb.ui/META-INF/spring/editors.xml b/plugins/org.argeo.slc.akb.ui/META-INF/spring/editors.xml
deleted file mode 100644 (file)
index 55c706d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-        http://www.springframework.org/schema/beans/spring-beans.xsd">
-       <bean id="envTemplateEditor" class="org.argeo.slc.akb.ui.editors.EnvTemplateEditor"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-               <property name="akbService" ref="akbService" />
-       </bean>
-
-       <bean id="connectorAliasEditor" class="org.argeo.slc.akb.ui.editors.ConnectorAliasEditor"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-               <property name="akbService" ref="akbService" />
-       </bean>
-
-       <!-- Various Items editors -->
-       <bean id="jdbcQueryTemplateEditor" class="org.argeo.slc.akb.ui.editors.JdbcQueryTemplateEditor"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-               <property name="akbService" ref="akbService" />
-       </bean>
-       <bean id="sshCommandTemplateEditor" class="org.argeo.slc.akb.ui.editors.SshCommandTemplateEditor"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-               <property name="akbService" ref="akbService" />
-       </bean>
-       <bean id="sshFileTemplateEditor" class="org.argeo.slc.akb.ui.editors.SshFileTemplateEditor"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-               <property name="akbService" ref="akbService" />
-       </bean>
-</beans>
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/META-INF/spring/osgi.xml b/plugins/org.argeo.slc.akb.ui/META-INF/spring/osgi.xml
deleted file mode 100644 (file)
index 103227e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
-       xmlns:osgi="http://www.springframework.org/schema/osgi"\r
-       xsi:schemaLocation="http://www.springframework.org/schema/osgi  \r
-       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
-       http://www.springframework.org/schema/beans   \r
-       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"\r
-       osgi:default-timeout="30000">\r
-\r
-       <beans:description>AKB UI</beans:description>\r
-       <!-- REFERENCES -->\r
-       <reference id="repository" interface="javax.jcr.Repository"\r
-               filter="(argeo.jcr.repository.alias=akb)" cardinality="0..1" />\r
-       <reference id="akbService" interface="org.argeo.slc.akb.AkbService" />\r
-</beans:beans>
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/META-INF/spring/views.xml b/plugins/org.argeo.slc.akb.ui/META-INF/spring/views.xml
deleted file mode 100644 (file)
index e00fec8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
-       xmlns:util="http://www.springframework.org/schema/util"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
-
-       <!-- Views -->
-       <bean id="akbDefaultView" class="org.argeo.slc.akb.ui.views.AkbDefaultView"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-       </bean>
-       <bean id="environmentsTreeView" class="org.argeo.slc.akb.ui.views.EnvironmentsTreeView"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-       </bean>
-       <bean id="akbTemplatesTreeView" class="org.argeo.slc.akb.ui.views.AkbTemplatesTreeView"
-               scope="prototype">
-               <property name="repository" ref="repository" />
-       </bean>
-</beans>
diff --git a/plugins/org.argeo.slc.akb.ui/build.properties b/plugins/org.argeo.slc.akb.ui/build.properties
deleted file mode 100644 (file)
index 10087d4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/main/java/,\
-           src/main/resources,
-
-output.. = target/classes/
-bin.includes = META-INF/,\
-               .,\
-               icons/,\
-               plugin.xml
diff --git a/plugins/org.argeo.slc.akb.ui/icons/addConnector.gif b/plugins/org.argeo.slc.akb.ui/icons/addConnector.gif
deleted file mode 100644 (file)
index b1526e9..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/addConnector.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/addItem.gif b/plugins/org.argeo.slc.akb.ui/icons/addItem.gif
deleted file mode 100644 (file)
index 252d7eb..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/addItem.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/akb.gif b/plugins/org.argeo.slc.akb.ui/icons/akb.gif
deleted file mode 100644 (file)
index 8eefad3..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/akb.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/connectors.gif b/plugins/org.argeo.slc.akb.ui/icons/connectors.gif
deleted file mode 100644 (file)
index e8abf43..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/connectors.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/environment.png b/plugins/org.argeo.slc.akb.ui/icons/environment.png
deleted file mode 100644 (file)
index 0afea5b..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/environment.png and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/environments.gif b/plugins/org.argeo.slc.akb.ui/icons/environments.gif
deleted file mode 100644 (file)
index 22f78af..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/environments.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/itemFolder.gif b/plugins/org.argeo.slc.akb.ui/icons/itemFolder.gif
deleted file mode 100644 (file)
index 7efb86e..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/itemFolder.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/jcrConnector.gif b/plugins/org.argeo.slc.akb.ui/icons/jcrConnector.gif
deleted file mode 100644 (file)
index ae98299..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/jcrConnector.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/jcrQuery.gif b/plugins/org.argeo.slc.akb.ui/icons/jcrQuery.gif
deleted file mode 100644 (file)
index 0dc862c..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/jcrQuery.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/jdbcConnector.gif b/plugins/org.argeo.slc.akb.ui/icons/jdbcConnector.gif
deleted file mode 100644 (file)
index 0470e15..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/jdbcConnector.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/jdbcQuery.gif b/plugins/org.argeo.slc.akb.ui/icons/jdbcQuery.gif
deleted file mode 100644 (file)
index 6c7320c..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/jdbcQuery.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/note.gif b/plugins/org.argeo.slc.akb.ui/icons/note.gif
deleted file mode 100644 (file)
index 6e63b99..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/note.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/refresh.png b/plugins/org.argeo.slc.akb.ui/icons/refresh.png
deleted file mode 100644 (file)
index a3884fb..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/refresh.png and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/searchView.png b/plugins/org.argeo.slc.akb.ui/icons/searchView.png
deleted file mode 100644 (file)
index aa0dc0b..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/searchView.png and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/smallerOrnamentLogo.png b/plugins/org.argeo.slc.akb.ui/icons/smallerOrnamentLogo.png
deleted file mode 100644 (file)
index 3a5907f..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/smallerOrnamentLogo.png and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/sshCommand.png b/plugins/org.argeo.slc.akb.ui/icons/sshCommand.png
deleted file mode 100644 (file)
index 14ebb9e..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/sshCommand.png and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/sshConnector.png b/plugins/org.argeo.slc.akb.ui/icons/sshConnector.png
deleted file mode 100644 (file)
index c11b767..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/sshConnector.png and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/sshFile.gif b/plugins/org.argeo.slc.akb.ui/icons/sshFile.gif
deleted file mode 100644 (file)
index 7ccc6a7..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/sshFile.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/template.gif b/plugins/org.argeo.slc.akb.ui/icons/template.gif
deleted file mode 100644 (file)
index 64d7907..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/template.gif and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/icons/treeView.png b/plugins/org.argeo.slc.akb.ui/icons/treeView.png
deleted file mode 100644 (file)
index c75c196..0000000
Binary files a/plugins/org.argeo.slc.akb.ui/icons/treeView.png and /dev/null differ
diff --git a/plugins/org.argeo.slc.akb.ui/plugin.xml b/plugins/org.argeo.slc.akb.ui/plugin.xml
deleted file mode 100644 (file)
index bc64576..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-       <!-- Perspective --> 
-       <extension
-               point="org.eclipse.ui.perspectives">
-               <perspective
-                       class="org.argeo.slc.akb.ui.AkbEnvPerspective"
-                       icon="icons/akb.gif"
-            id="org.argeo.slc.akb.ui.akbEnvPerspective"
-            name="AKB">
-               </perspective>
-               <perspective
-                       class="org.argeo.slc.akb.ui.AkbTemplatesPerspective"
-                       icon="icons/template.gif"
-            id="org.argeo.slc.akb.ui.akbTemplatesPerspective"
-            name="AKB Templates">
-      </perspective>
-   </extension>
-    <!-- Views -->
-    <extension
-               point="org.eclipse.ui.views">
-               <view
-                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       icon="icons/searchView.png"
-                       id="org.argeo.slc.akb.ui.akbDefaultView"
-                       name="Search"
-                       restorable="true">
-               </view>
-               <view
-                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       icon="icons/treeView.png"
-                       id="org.argeo.slc.akb.ui.akbTemplatesTreeView"
-                       name="AKB Templates"
-                       restorable="true">
-               </view>
-               <view
-                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       icon="icons/treeView.png"
-                       id="org.argeo.slc.akb.ui.environmentsTreeView"
-                       name="AKB Environments"
-                       restorable="true">
-               </view>
-       </extension>
-       <!-- Editors -->
-    <extension
-               point="org.eclipse.ui.editors">
-               <editor
-                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       icon="icons/template.gif"
-                       id="org.argeo.slc.akb.ui.envTemplateEditor"
-                       name="Environment Template Editor">
-               </editor>
-               <editor
-                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       icon="icons/addConnector.gif"
-                       id="org.argeo.slc.akb.ui.connectorAliasEditor"
-                       name="Connector Alias Editor">
-               </editor>
-               <!-- ITEMS EDITORS --> 
-               <editor
-                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       icon="icons/jdbcQuery.gif"
-                       id="org.argeo.slc.akb.ui.jdbcQueryTemplateEditor"
-                       name="JDBC Query Template Editor">
-               </editor>
-               <editor
-                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       icon="icons/sshFile.gif"
-                       id="org.argeo.slc.akb.ui.sshFileTemplateEditor"
-                       name="SSH File Template Editor">
-               </editor>
-               <editor
-                       class="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       icon="icons/sshCommand.png"
-                       id="org.argeo.slc.akb.ui.sshCommandTemplateEditor"
-                       name="SSH Command Template Editor">
-               </editor>
-       </extension>
-       <!-- Commands -->
-       <extension
-               point="org.eclipse.ui.commands">
-               <command
-                       defaultHandler="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       id="org.argeo.slc.akb.ui.openAkbNodeEditor"
-                       name="Open Akb Node editor">
-               <commandParameter
-                       id="param.nodeType"
-                       name="Corresponding JCR node type">
-                       </commandParameter>
-               <commandParameter
-                       id="param.nodeSubtype"
-                       name="A subtype if needed">
-                       </commandParameter>
-               <commandParameter
-                       id="param.nodeJcrId"
-                       name="The Node JCR ID if needed">
-                       </commandParameter>
-               <commandParameter
-                       id="param.currEnvJcrId"
-                       name="The current environment JCR ID, might be an active or a template env">
-                       </commandParameter>
-               <commandParameter
-                       id="param.parentNodeJcrId"
-                       name="The Parent Node JCR ID if needed">
-                       </commandParameter>
-               </command>
-               <command
-                       defaultHandler="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       id="org.argeo.slc.akb.ui.createAkbNode"
-                       name="Create a new Akb Node">
-               <commandParameter
-                       id="param.nodeType"
-                       name="Corresponding JCR node type">
-                       </commandParameter>
-               <commandParameter
-                       id="param.parentNodeJcrId"
-                       name="The Parent Node JCR ID if needed">
-                       </commandParameter>
-               </command>
-               <command
-                       defaultHandler="org.argeo.eclipse.spring.SpringExtensionFactory"
-                       id="org.argeo.slc.akb.ui.deleteAkbNodes"
-                       name="Delete Akb Node(s) and close corresponding editors">
-               <commandParameter
-                       id="param.nodeJcrId"
-                       name="The Node JCR ID if needed">
-                       </commandParameter>
-               </command>
-               <command
-                       defaultHandler="org.argeo.slc.akb.ui.commands.ForceRefresh"
-                       id="org.argeo.slc.akb.ui.forceRefresh"
-                       name="Force refresh of the current active part if such an action is possible">
-               </command>
-               <command
-                       defaultHandler="org.argeo.slc.akb.ui.commands.OpenUrl"
-                       id="org.argeo.slc.akb.ui.openUrl"
-                       name="Open an URL in the end user browser">
-                       <commandParameter
-                       id="param.urlType"
-                       name="The type of the url">
-                       </commandParameter>
-               </command>
-       </extension>            
-       <!-- Menus -->
-       <extension
-               point="org.eclipse.ui.menus">
-               <menuContribution
-               locationURI="toolbar:org.argeo.slc.akb.ui.akbTemplatesTreeView">
-            <command
-               commandId="org.argeo.slc.akb.ui.forceRefresh"
-                icon="icons/refresh.png"
-                       label="Refresh"
-                tooltip="Refresh the whole browser">
-            </command>
-        </menuContribution>
-               <menuContribution
-               locationURI="toolbar:org.argeo.slc.akb.ui.environmentsTreeView">
-            <command
-               commandId="org.argeo.slc.akb.ui.forceRefresh"
-                icon="icons/refresh.png"
-                   label="Refresh"
-                tooltip="Refresh the whole browser">
-            </command>
-        </menuContribution>
-      
-       <menuContribution
-                       locationURI="menu:org.eclipse.ui.main.menu">
-                       <menu
-                               id="help"
-                               label="Help">
-                               <command
-                                       commandId="org.argeo.slc.akb.ui.openUrl"
-                                       label="Report a bug..."
-                                       icon="icons/refresh.png"
-                       style="push"
-                       tooltip="Report a bug or an enhancement to Argeos tracker system">
-                                       <parameter 
-                                               name="param.urlType" 
-                                               value="tracker" />
-                               </command>
-                               
-       <!--                    <command
-                                       commandId="org.argeo.slc.akb.ui.openUrl"
-                                       label="AKB's wiki
-                                       style="push">
-                                       <parameter name="param.urlType" value="wiki" />
-                               </command>-->
-                               <command
-                                       commandId="org.argeo.slc.akb.ui.openUrl"
-                                       label="AKB wiki"
-                                       style="push">
-                                       <parameter 
-                                               name="param.urlType" 
-                                               value="wiki" />
-                               </command> 
-                       </menu>
-      </menuContribution>      
-       </extension>
-</plugin>
diff --git a/plugins/org.argeo.slc.akb.ui/pom.xml b/plugins/org.argeo.slc.akb.ui/pom.xml
deleted file mode 100644 (file)
index c40bca7..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.argeo.slc</groupId>
-               <artifactId>plugins</artifactId>
-               <version>1.1.15-SNAPSHOT</version>
-               <relativePath>..</relativePath>
-       </parent>
-       <artifactId>org.argeo.slc.akb.ui</artifactId>
-       <name>SLC AKB UI</name>
-       <packaging>jar</packaging>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <configuration>
-                                       <instructions>
-                                               <Bundle-Activator>org.argeo.slc.akb.ui.AkbUiPlugin</Bundle-Activator>
-                                               <Require-Bundle>
-                                                       org.eclipse.ui;resolution:=optional,
-                                                       org.eclipse.core.runtime;resolution:=optional,
-                                                       org.eclipse.rap.ui;resolution:=optional,
-                                                       org.eclipse.rap.ui.workbench;resolution:=optional
-                                               </Require-Bundle>
-                                               <Import-Package>
-                                                       *,
-                                                       org.argeo.eclipse.spring,
-                                                       javax.jcr.nodetype
-                                               </Import-Package>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-               </plugins>
-       </build>
-       <dependencies>
-
-               <!-- AKB -->
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.akb.services</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-
-               <!-- COMMONS -->
-               <!-- Base Argeo Eclipse Utilities -->
-               <dependency>
-                       <groupId>org.argeo.commons.base</groupId>
-                       <artifactId>org.argeo.eclipse.ui</artifactId>
-                       <version>${version.argeo-commons}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.argeo.commons.security</groupId>
-                       <artifactId>org.argeo.security.ui</artifactId>
-                       <version>${version.argeo-commons}</version>
-               </dependency>
-
-               <!-- RAP only dependency, needed at compile time -->
-               <dependency>
-                       <groupId>org.argeo.commons.base</groupId>
-                       <artifactId>org.argeo.eclipse.ui.rap</artifactId>
-                       <version>${version.argeo-commons}</version>
-                       <scope>provided</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.argeo.commons.base</groupId>
-                       <artifactId>org.argeo.eclipse.ui.jcr</artifactId>
-                       <version>${version.argeo-commons}</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.argeo.commons.server</groupId>
-                       <artifactId>org.argeo.server.jcr</artifactId>
-                       <version>${version.argeo-commons}</version>
-               </dependency>
-       </dependencies>
-</project>
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbEnvPerspective.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbEnvPerspective.java
deleted file mode 100644 (file)
index fdab3e1..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.argeo.slc.akb.ui;
-
-import org.argeo.slc.akb.ui.views.EnvironmentsTreeView;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class AkbEnvPerspective implements IPerspectiveFactory {
-       public static final String ID = AkbUiPlugin.PLUGIN_ID
-                       + ".akbEnvPerspective";
-
-       @Override
-       public void createInitialLayout(IPageLayout layout) {
-               String editorArea = layout.getEditorArea();
-               layout.setEditorAreaVisible(true);
-               layout.setFixed(false);
-
-               IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT,
-                               0.3f, editorArea);
-               left.addView(EnvironmentsTreeView.ID);
-               // left.addView(AkbDefaultView.ID);
-       }
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbImages.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbImages.java
deleted file mode 100644 (file)
index cf39633..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.argeo.slc.akb.ui;
-
-import org.argeo.slc.akb.AkbTypes;
-import org.eclipse.swt.graphics.Image;
-
-/** Shared icons. */
-public class AkbImages {
-
-       public final static Image LOGO_SMALL = AkbUiPlugin.getImageDescriptor(
-                       "icons/smallerOrnamentLogo.png").createImage();
-
-       public final static Image TEMPLATE = AkbUiPlugin.getImageDescriptor(
-                       "icons/template.gif").createImage();
-       public final static Image ACTIVE_ENV = AkbUiPlugin.getImageDescriptor(
-                       "icons/environment.png").createImage();
-       
-       public final static Image CONNECTOR_FOLDER = AkbUiPlugin
-                       .getImageDescriptor("icons/connectors.gif").createImage();
-
-       public final static Image ITEM_FOLDER = AkbUiPlugin.getImageDescriptor(
-                       "icons/itemFolder.gif").createImage();
-       
-       public final static Image CONNECTOR_ALIAS = AkbUiPlugin.getImageDescriptor(
-                       "icons/addConnector.gif").createImage();
-
-       public final static Image DEFAULT_CONNECTOR = AkbUiPlugin.getImageDescriptor(
-                       "icons/addConnector.gif").createImage();
-       
-       public final static Image JDBC_CONNECTOR = AkbUiPlugin.getImageDescriptor(
-                       "icons/jdbcConnector.gif").createImage();
-       public final static Image JDBC_QUERY = AkbUiPlugin.getImageDescriptor(
-                       "icons/jdbcQuery.gif").createImage();
-
-       public final static Image SSH_CONNECTOR = AkbUiPlugin.getImageDescriptor(
-                       "icons/sshConnector.png").createImage();
-       public final static Image SSH_COMMAND = AkbUiPlugin.getImageDescriptor(
-                       "icons/sshCommand.png").createImage();
-       public final static Image SSH_FILE = AkbUiPlugin.getImageDescriptor(
-                       "icons/sshFile.gif").createImage();
-
-       public static Image getImageForAkbNodeType(String nodeType) {
-               if (AkbTypes.AKB_JDBC_CONNECTOR.equals(nodeType))
-                       return JDBC_CONNECTOR;
-               else if (AkbTypes.AKB_SSH_CONNECTOR.equals(nodeType))
-                       return SSH_CONNECTOR;
-               else
-                       return null;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbMessages.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbMessages.java
deleted file mode 100644 (file)
index 5211503..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.argeo.slc.akb.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.argeo.slc.akb.AkbTypes;
-
-// TODO implement i18n
-public class AkbMessages {
-
-       // Shortcut to provide a label for each nodeType
-       public final static Map<String, String> typeLabels = new HashMap<String, String>() {
-               private static final long serialVersionUID = 6790463815849374432L;
-
-               {
-                       put(AkbTypes.AKB_ENV_TEMPLATE, "Template environment");
-                       put(AkbTypes.AKB_ENV, "Active environment");
-                       put(AkbTypes.AKB_CONNECTOR_FOLDER, "Connector folder");
-                       put(AkbTypes.AKB_CONNECTOR, "Connector");
-                       put(AkbTypes.AKB_CONNECTOR_ALIAS, "Connector alias");
-                       put(AkbTypes.AKB_SSH_CONNECTOR, "SSH connector");
-                       put(AkbTypes.AKB_JDBC_CONNECTOR, "JDBC connector");
-                       put(AkbTypes.AKB_JCR_CONNECTOR, "JCR connector");
-                       put(AkbTypes.AKB_ITEM_FOLDER, "Item folder");
-                       put(AkbTypes.AKB_ITEM, "Item");
-                       put(AkbTypes.AKB_SSH_FILE, "SSH file");
-                       put(AkbTypes.AKB_SSH_COMMAND, "SSH command");
-                       put(AkbTypes.AKB_JDBC_QUERY, "JDBC query");
-                       put(AkbTypes.AKB_NOTE, "Note");
-               }
-       };
-
-       public final static String getLabelForType(String nodeType) {
-               return typeLabels.get(nodeType);
-       }
-
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbTemplatesPerspective.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbTemplatesPerspective.java
deleted file mode 100644 (file)
index 0d2aeff..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.argeo.slc.akb.ui;
-
-import org.argeo.slc.akb.ui.views.AkbDefaultView;
-import org.argeo.slc.akb.ui.views.AkbTemplatesTreeView;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class AkbTemplatesPerspective implements IPerspectiveFactory {
-       public static final String ID = AkbUiPlugin.PLUGIN_ID + ".akbTemplatesPerspective";
-       
-       @Override
-       public void createInitialLayout(IPageLayout layout) {
-               String editorArea = layout.getEditorArea();
-               layout.setEditorAreaVisible(true);
-               layout.setFixed(false);
-
-               IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT,
-                               0.3f, editorArea);
-               left.addView(AkbTemplatesTreeView.ID);
-               left.addView(AkbDefaultView.ID);
-       }
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiConstants.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiConstants.java
deleted file mode 100644 (file)
index 70f9e5a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.argeo.slc.akb.ui;
-
-/** Defines some constants that are used all across the user interface **/
-public interface AkbUiConstants {
-
-       /* Default formats */
-       public final static String DEFAULT_DATE_FORMAT = "EEE, dd MMM yyyy";
-       public final static String DEFAULT_DATE_TIME_FORMAT = "EEE, dd MMM yyyy 'at' HH:mm";
-       public final static String DEFAULT_NUMBER_FORMAT = "#,##0.0";
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiPlugin.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiPlugin.java
deleted file mode 100644 (file)
index 03f20c1..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.argeo.slc.akb.ui;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class AkbUiPlugin extends AbstractUIPlugin {
-
-       // The plug-in ID
-       public static final String PLUGIN_ID = "org.argeo.slc.akb.ui"; //$NON-NLS-1$
-
-       // The shared instance
-       private static AkbUiPlugin plugin;
-
-       /**
-        * The constructor
-        */
-       public AkbUiPlugin() {
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
-        * )
-        */
-       public void start(BundleContext context) throws Exception {
-               super.start(context);
-               plugin = this;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
-        * )
-        */
-       public void stop(BundleContext context) throws Exception {
-               plugin = null;
-               super.stop(context);
-       }
-
-       /**
-        * Returns the shared instance
-        * 
-        * @return the shared instance
-        */
-       public static AkbUiPlugin getDefault() {
-               return plugin;
-       }
-
-       /**
-        * Returns an image descriptor for the image file at the given plug-in
-        * relative path
-        * 
-        * @param path
-        *            the path
-        * @return the image descriptor
-        */
-       public static ImageDescriptor getImageDescriptor(String path) {
-               return imageDescriptorFromPlugin(PLUGIN_ID, path);
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiUtils.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiUtils.java
deleted file mode 100644 (file)
index 8012a8b..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-package org.argeo.slc.akb.ui;
-
-import java.util.Calendar;
-import java.util.Map;
-
-import javax.jcr.Node;
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.CommandContributionItemParameter;
-import org.eclipse.ui.services.IServiceLocator;
-
-/** Some helper methods that factorize widely used snippets in people UI */
-public class AkbUiUtils {
-
-       /**
-        * Shortcut to refresh the value of a <code>Text</code> given a Node and a
-        * property Name
-        */
-       public static String refreshTextWidgetValue(Text text, Node entity,
-                       String propName) {
-               String tmpStr = AkbJcrUtils.get(entity, propName);
-               if (AkbJcrUtils.checkNotEmptyString(tmpStr))
-                       text.setText(tmpStr);
-               return tmpStr;
-       }
-
-       /**
-        * Shortcut to refresh a <code>Text</code> widget given a Node in a form and
-        * a property Name. Also manages its enable state
-        */
-       public static String refreshFormTextWidget(Text text, Node entity,
-                       String propName) {
-               String tmpStr = AkbJcrUtils.get(entity, propName);
-               if (AkbJcrUtils.checkNotEmptyString(tmpStr))
-                       text.setText(tmpStr);
-               text.setEnabled(AkbJcrUtils.isNodeCheckedOutByMe(entity));
-               return tmpStr;
-       }
-
-       /**
-        * Shortcut to refresh a <code>Text</code> widget given a Node in a form and
-        * a property Name. Also manages its enable state and set a default message
-        * if corresponding Text value is empty
-        */
-       public static String refreshFormTextWidget(Text text, Node entity,
-                       String propName, String defaultMsg) {
-               String tmpStr = refreshFormTextWidget(text, entity, propName);
-               if (AkbJcrUtils.isEmptyString(tmpStr)
-                               && AkbJcrUtils.checkNotEmptyString(defaultMsg))
-                       text.setMessage(defaultMsg);
-               return tmpStr;
-       }
-
-       /**
-        * Shortcut to refresh a Check box <code>Button</code> widget given a Node
-        * in a form and a property Name.
-        */
-       public static boolean refreshCheckBoxWidget(Button button, Node entity,
-                       String propName) {
-               Boolean tmp = null;
-               try {
-                       if (entity.hasProperty(propName)) {
-                               tmp = entity.getProperty(propName).getBoolean();
-                               button.setSelection(tmp);
-                       }
-               } catch (RepositoryException re) {
-                       throw new AkbException("unable get boolean value for property "
-                                       + propName);
-               }
-               return tmp;
-       }
-
-       /**
-        * Shortcut to add a default modify listeners to a <code>Text</code> widget
-        * that is bound a JCR String Property. Any change in the text is
-        * immediately stored in the active session, but no save is done.
-        */
-       public static void addTextModifyListener(final Text text, final Node node,
-                       final String propName, final AbstractFormPart part) {
-               text.addModifyListener(new ModifyListener() {
-                       @Override
-                       public void modifyText(ModifyEvent event) {
-                               if (setJcrProperty(node, propName, PropertyType.STRING,
-                                               text.getText()))
-                                       part.markDirty();
-                       }
-               });
-       }
-
-       /**
-        * Centralizes management of updating property value. Among other to avoid
-        * infinite loop when the new value is the same as the ones that is already
-        * stored in JCR.
-        * 
-        * @return true if the value as changed
-        */
-       public static boolean setJcrProperty(Node node, String propName,
-                       int propertyType, Object value) {
-               try {
-                       // int propertyType = getPic().getProperty(propName).getType();
-                       switch (propertyType) {
-                       case PropertyType.STRING:
-                               if ("".equals((String) value)
-                                               && (!node.hasProperty(propName) || node
-                                                               .hasProperty(propName)
-                                                               && "".equals(node.getProperty(propName)
-                                                                               .getString())))
-                                       // workaround the fact that the Text widget value cannot be
-                                       // set to null
-                                       return false;
-                               else if (node.hasProperty(propName)
-                                               && node.getProperty(propName).getString()
-                                                               .equals((String) value))
-                                       // nothing changed yet
-                                       return false;
-                               else {
-                                       node.setProperty(propName, (String) value);
-                                       return true;
-                               }
-                       case PropertyType.BOOLEAN:
-                               if (node.hasProperty(propName)
-                                               && node.getProperty(propName).getBoolean() == (Boolean) value)
-                                       // nothing changed yet
-                                       return false;
-                               else {
-                                       node.setProperty(propName, (Boolean) value);
-                                       return true;
-                               }
-                       case PropertyType.DATE:
-                               if (node.hasProperty(propName)
-                                               && node.getProperty(propName).getDate()
-                                                               .equals((Calendar) value))
-                                       // nothing changed yet
-                                       return false;
-                               else {
-                                       node.setProperty(propName, (Calendar) value);
-                                       return true;
-                               }
-                       case PropertyType.LONG:
-                               Long lgValue = (Long) value;
-
-                               if (lgValue == null)
-                                       lgValue = 0L;
-
-                               if (node.hasProperty(propName)
-                                               && node.getProperty(propName).getLong() == lgValue)
-                                       // nothing changed yet
-                                       return false;
-                               else {
-                                       node.setProperty(propName, lgValue);
-                                       return true;
-                               }
-
-                       default:
-                               throw new AkbException("Unimplemented save for property type: "
-                                               + propertyType + " - property: " + propName);
-
-                       }
-               } catch (RepositoryException re) {
-                       throw new AkbException("Error while setting property" + propName
-                                       + " - propertyType: " + propertyType, re);
-               }
-       }
-
-       // ////////////////////////
-       // LAYOUTS AND STYLES
-
-       /** shortcut to set form data while dealing with switching panel */
-       public static void setSwitchingFormData(Composite composite) {
-               FormData fdLabel = new FormData();
-               fdLabel.top = new FormAttachment(0, 0);
-               fdLabel.left = new FormAttachment(0, 0);
-               fdLabel.right = new FormAttachment(100, 0);
-               fdLabel.bottom = new FormAttachment(100, 0);
-               composite.setLayoutData(fdLabel);
-       }
-
-       public static void setTableDefaultStyle(TableViewer viewer,
-                       int customItemHeight) {
-               Table table = viewer.getTable();
-               table.setLinesVisible(true);
-               table.setHeaderVisible(false);
-       }
-
-       /**
-        * Shortcut to provide a gridlayout with no margin and no spacing (dafault
-        * are normally 5 px)
-        */
-       public static GridLayout gridLayoutNoBorder() {
-               return gridLayoutNoBorder(1);
-       }
-
-       /**
-        * Shortcut to provide a gridlayout with no margin and no spacing (default
-        * are normally 5 px) with the given column number (equals width is false).
-        */
-       public static GridLayout gridLayoutNoBorder(int nbOfCol) {
-               GridLayout gl = new GridLayout(nbOfCol, false);
-               gl.marginWidth = gl.marginHeight = gl.horizontalSpacing = gl.verticalSpacing = 0;
-               return gl;
-       }
-
-       /** Creates a text widget with RowData already set */
-       public static Text createRDText(FormToolkit toolkit, Composite parent,
-                       String msg, String toolTip, int width) {
-               Text text = toolkit.createText(parent, "", SWT.BORDER | SWT.SINGLE
-                               | SWT.LEFT);
-               text.setMessage(msg);
-               text.setToolTipText(toolTip);
-               text.setLayoutData(new RowData(width, SWT.DEFAULT));
-               return text;
-       }
-
-       /**
-        * Creates a text widget with GridData already set
-        * 
-        * @param toolkit
-        * @param parent
-        * @param msg
-        * @param toolTip
-        * @param width
-        * @param colSpan
-        * @return
-        */
-       public static Text createGDText(FormToolkit toolkit, Composite parent,
-                       String msg, String toolTip, int width, int colSpan) {
-               Text text = toolkit.createText(parent, "", SWT.BORDER | SWT.SINGLE
-                               | SWT.LEFT);
-               text.setMessage(msg);
-               text.setToolTipText(toolTip);
-               GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
-               gd.widthHint = width;
-               gd.horizontalSpan = colSpan;
-               text.setLayoutData(gd);
-               return text;
-       }
-
-       /**
-        * Shortcut to quickly get a FormData object with configured FormAttachment
-        * 
-        * @param left
-        * @param top
-        * @param right
-        * @param bottom
-        * @return
-        */
-       public static FormData createformData(int left, int top, int right,
-                       int bottom) {
-               FormData formData = new FormData();
-               formData.left = new FormAttachment(left, 0);
-               formData.top = new FormAttachment(top, 0);
-               formData.right = new FormAttachment(right, 0);
-               formData.bottom = new FormAttachment(bottom, 0);
-               return formData;
-       }
-
-       // //////////////////////////////
-       // / COMMANDS
-       public static CommandContributionItem createContributionItem(
-                       IMenuManager menuManager, IServiceLocator locator, String itemId,
-                       String cmdId, String label, ImageDescriptor icon,
-                       Map<String, String> params) {
-
-               CommandContributionItemParameter contributionItemParameter = new CommandContributionItemParameter(
-                               locator, itemId, cmdId, SWT.PUSH);
-
-               contributionItemParameter.label = label;
-               contributionItemParameter.icon = icon;
-
-               if (params != null)
-                       contributionItemParameter.parameters = params;
-               CommandContributionItem cci = new CommandContributionItem(
-                               contributionItemParameter);
-               return cci;
-       }
-
-       /**
-        * Commodities the refresh of a single command with a map of parameters in a
-        * Menu.aboutToShow method to simplify further development
-        * 
-        * @param menuManager
-        * @param locator
-        * @param cmdId
-        * @param label
-        * @param iconPath
-        * @param showCommand
-        */
-       public static void refreshParameterizedCommand(IMenuManager menuManager,
-                       IServiceLocator locator, String itemId, String cmdId, String label,
-                       ImageDescriptor icon, boolean showCommand,
-                       Map<String, String> params) {
-               IContributionItem ici = menuManager.find(itemId);
-               if (ici != null)
-                       menuManager.remove(ici);
-               if (showCommand)
-                       menuManager.add(createContributionItem(menuManager, locator,
-                                       itemId, cmdId, label, icon, params));
-       }
-
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/CreateAkbNode.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/CreateAkbNode.java
deleted file mode 100644 (file)
index 19de928..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-package org.argeo.slc.akb.ui.commands;
-
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.jcr.JcrUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.dialogs.AddItemDialog;
-import org.argeo.slc.akb.ui.wizards.CreateEnvInstanceWizard;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Opens corresponding wizard to create a new AKB Node
- */
-public class CreateAkbNode extends AbstractHandler {
-       public final static String ID = AkbUiPlugin.PLUGIN_ID + ".createAkbNode";
-
-       /* DEPENDENCY INJECTION */
-       private AkbService akbService;
-
-       public final static String PARAM_PARENT_NODE_JCR_ID = "param.parentNodeJcrId";
-       public final static String PARAM_NODE_TYPE = "param.nodeType";
-
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-
-               String parentNodeJcrId = event.getParameter(PARAM_PARENT_NODE_JCR_ID);
-               String nodeType = event.getParameter(PARAM_NODE_TYPE);
-               Session session = null;
-               try {
-                       session = akbService.getRepository().login();
-                       Node node = createNewNode(HandlerUtil.getActiveShell(event),
-                                       session, nodeType, parentNodeJcrId);
-                       // no node has been created, return
-                       if (node == null)
-                               return null;
-               } catch (RepositoryException e) {
-                       throw new AkbException("unexpected JCR error while opening "
-                                       + nodeType + " editor", e);
-               } finally {
-                       JcrUtils.logoutQuietly(session);
-               }
-               return null;
-       }
-
-       private Node createNewNode(Shell shell, Session session, String nodeType,
-                       String parentNodeJcrId) throws RepositoryException {
-               Node node = null;
-               if (AkbTypes.AKB_ITEM.equals(nodeType)) {
-                       Node parNode = session.getNodeByIdentifier(parentNodeJcrId);
-                       AddItemDialog dialog = new AddItemDialog(shell, "Add new item",
-                                       parNode);
-                       dialog.open();
-                       node = dialog.getNewNode();
-               } else if (AkbTypes.AKB_ENV.equals(nodeType)) {
-                       CreateEnvInstanceWizard wizard = new CreateEnvInstanceWizard(
-                                       akbService, session);
-                       WizardDialog dialog = new WizardDialog(shell, wizard);
-                       dialog.open();
-                       node = wizard.getCreatedNode();
-               } else
-                       return null;
-               // {
-               // String name = SingleValue
-               // .ask("Create "
-               // + AkbMessages
-               // .getLabelForType(nodeSubtype == null ? nodeType
-               // : nodeSubtype),
-               // "Please enter a name for the corresponding "
-               // + AkbMessages
-               // .getLabelForType(nodeSubtype == null ? nodeType
-               // : nodeSubtype));
-               // if (name == null)
-               // return null;
-               // if (AkbTypes.AKB_ENV_TEMPLATE.equals(nodeType)) {
-               // node = akbService.createAkbTemplate(
-               // session.getNodeByIdentifier(parentNodeJcrId), name);
-               // } else if (AkbTypes.AKB_CONNECTOR_ALIAS.equals(nodeType)) {
-               // // the Jcr ID of the corresponding template must be passed to
-               // // create a new alias
-               // node = session.getNodeByIdentifier(parentNodeJcrId);
-               // akbService.createConnectorAlias(node, name, nodeSubtype);
-               // } else {
-               // Node parentNode = session.getNodeByIdentifier(parentNodeJcrId);
-               // node = parentNode.addNode(name, nodeType);
-               // node.setProperty(Property.JCR_TITLE, name);
-               // }
-               // }
-               // corresponding node is saved but not checked in, in order to ease
-               // cancel actions.
-               session.save();
-               return node;
-       }
-
-       public void setAkbService(AkbService akbService) {
-               this.akbService = akbService;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/DeleteAkbNodes.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/DeleteAkbNodes.java
deleted file mode 100644 (file)
index 3a3e9a0..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.argeo.slc.akb.ui.commands;
-
-import javax.jcr.Node;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.jcr.JcrUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.editors.AkbNodeEditorInput;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Deletes one or more akb nodes also closing the corresponding editors if
- * needed
- */
-public class DeleteAkbNodes extends AbstractHandler {
-       public final static String ID = AkbUiPlugin.PLUGIN_ID + ".deleteAkbNodes";
-
-       /* DEPENDENCY INJECTION */
-       private Repository repository;
-
-       public final static String PARAM_NODE_JCR_ID = "param.nodeJcrId";
-
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-
-               String nodeJcrId = event.getParameter(PARAM_NODE_JCR_ID);
-
-               Session session = null;
-               try {
-                       session = repository.login();
-
-                       // caches current Page
-                       IWorkbenchPage currentPage = HandlerUtil.getActiveWorkbenchWindow(
-                                       event).getActivePage();
-
-                       session = repository.login();
-                       Node node = null;
-
-                       if (nodeJcrId != null)
-                               node = session.getNodeByIdentifier(nodeJcrId);
-
-                       // We must be in a template or on the root of an env instance to
-                       // delete nodes.
-                       Node template = node.isNodeType(AkbTypes.AKB_ENV) ? node
-                                       : AkbJcrUtils.getCurrentTemplate(node);
-
-                       if (node != null) {
-                               Boolean ok = MessageDialog.openConfirm(
-                                               HandlerUtil.getActiveShell(event), "Confirm deletion",
-                                               "Do you want to delete this item?");
-
-                               if (ok) {
-                                       IEditorPart currPart = currentPage
-                                                       .findEditor(new AkbNodeEditorInput(template
-                                                                       .getIdentifier(), nodeJcrId));
-                                       if (currPart != null)
-                                               currentPage.closeEditor(currPart, false);
-
-                                       node.remove();
-                                       session.save();
-                               }
-                       }
-               } catch (RepositoryException e) {
-                       throw new AkbException("JCR error while deleting node" + nodeJcrId
-                                       + " editor", e);
-               } finally {
-                       JcrUtils.logoutQuietly(session);
-               }
-               return null;
-       }
-
-       /* DEPENDENCY INJECTION */
-       public void setRepository(Repository repository) {
-               this.repository = repository;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/ForceRefresh.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/ForceRefresh.java
deleted file mode 100644 (file)
index 0344b7b..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.argeo.slc.akb.ui.commands;
-
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.utils.Refreshable;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Force refreshment of the active part if it implements
- * <Code>Refreshable</code> interface.
- */
-public class ForceRefresh extends AbstractHandler {
-
-       public final static String ID = AkbUiPlugin.PLUGIN_ID + ".forceRefresh";
-
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-
-               IWorkbenchPart part = HandlerUtil.getActiveWorkbenchWindow(event)
-                               .getActivePage().getActivePart();
-               if (part instanceof Refreshable)
-                       ((Refreshable) part).forceRefresh(null);
-               return null;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/OpenAkbNodeEditor.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/OpenAkbNodeEditor.java
deleted file mode 100644 (file)
index cdd7dd5..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-package org.argeo.slc.akb.ui.commands;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.eclipse.ui.dialogs.SingleValue;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.ui.AkbMessages;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.dialogs.AddItemDialog;
-import org.argeo.slc.akb.ui.editors.AkbNodeEditorInput;
-import org.argeo.slc.akb.ui.editors.ConnectorAliasEditor;
-import org.argeo.slc.akb.ui.editors.EnvTemplateEditor;
-import org.argeo.slc.akb.ui.editors.JdbcQueryTemplateEditor;
-import org.argeo.slc.akb.ui.editors.SshCommandTemplateEditor;
-import org.argeo.slc.akb.ui.editors.SshFileTemplateEditor;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Opens or show an AKB specific node in a single repository / single workspace
- * environment given some parameters, namely :
- * <ul>
- * <li>PARAM_NODE_JCR_ID: the corresponding JCR ID might be null to create a new
- * one</li>
- * <li>PARAM_NODE_TYPE: jcr type of the node to create</li>
- * <li>PARAM_PARENT_NODE_JCR_ID: Only used in the case of the creation of a new
- * node.</li>
- * </ul>
- */
-public class OpenAkbNodeEditor extends AbstractHandler {
-       public final static String ID = AkbUiPlugin.PLUGIN_ID
-                       + ".openAkbNodeEditor";
-
-       /* DEPENDENCY INJECTION */
-       private Repository repository;
-       private AkbService akbService;
-
-       public final static String PARAM_NODE_JCR_ID = "param.nodeJcrId";
-       public final static String PARAM_NODE_TYPE = "param.nodeType";
-       public final static String PARAM_NODE_SUBTYPE = "param.nodeSubtype";
-       public final static String PARAM_CURR_ENV_JCR_ID = "param.currEnvJcrId";
-       public final static String PARAM_PARENT_NODE_JCR_ID = "param.parentNodeJcrId";
-
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-
-               String nodeType = event.getParameter(PARAM_NODE_TYPE);
-               String nodeSubtype = event.getParameter(PARAM_NODE_SUBTYPE);
-               String currEnvJcrId = event.getParameter(PARAM_CURR_ENV_JCR_ID);
-               String nodeJcrId = event.getParameter(PARAM_NODE_JCR_ID);
-               String parentNodeJcrId = event.getParameter(PARAM_PARENT_NODE_JCR_ID);
-
-               Session session = null;
-               try {
-                       // caches current Page
-                       IWorkbenchPage currentPage = HandlerUtil.getActiveWorkbenchWindow(
-                                       event).getActivePage();
-
-                       session = repository.login();
-                       Node node = null;
-
-                       if (nodeJcrId == null)
-                               if (parentNodeJcrId == null)
-                                       throw new AkbException(
-                                                       "Define a parent node to create a new node");
-                               else
-                                       node = createNewNode(session, nodeType, nodeSubtype,
-                                                       parentNodeJcrId);
-                       else
-                               node = session.getNodeByIdentifier(nodeJcrId);
-
-                       // no node has been found or created, return
-                       if (node == null)
-                               return null;
-
-                       String editorId = getEditorForNode(node);
-
-                       // no editor has been found, return silently
-                       if (editorId == null)
-                               return null;
-
-                       AkbNodeEditorInput eei = new AkbNodeEditorInput(currEnvJcrId,
-                                       node.getIdentifier());
-
-                       currentPage.openEditor(eei, editorId);
-               } catch (PartInitException pie) {
-                       throw new AkbException(
-                                       "Unexpected PartInitException while opening akb node editor",
-                                       pie);
-               } catch (RepositoryException e) {
-                       throw new AkbException("unexpected JCR error while opening "
-                                       + nodeType + " editor", e);
-               } finally {
-                       JcrUtils.logoutQuietly(session);
-               }
-               return null;
-       }
-
-       private Node createNewNode(Session session, String nodeType,
-                       String nodeSubtype, String parentNodeJcrId)
-                       throws RepositoryException {
-               Node node = null;
-
-               if (AkbTypes.AKB_ITEM.equals(nodeType)) {
-                       Node parNode = session.getNodeByIdentifier(parentNodeJcrId);
-                       AddItemDialog dialog = new AddItemDialog(Display.getDefault()
-                                       .getActiveShell(), "Add new item", parNode);
-                       dialog.open();
-                       node = dialog.getNewNode();
-               } else {
-                       String name = SingleValue
-                                       .ask("Create "
-                                                       + AkbMessages
-                                                                       .getLabelForType(nodeSubtype == null ? nodeType
-                                                                                       : nodeSubtype),
-                                                       "Please enter a name for the corresponding "
-                                                                       + AkbMessages
-                                                                                       .getLabelForType(nodeSubtype == null ? nodeType
-                                                                                                       : nodeSubtype));
-                       if (name == null)
-                               return null;
-                       if (AkbTypes.AKB_ENV_TEMPLATE.equals(nodeType)) {
-                               node = akbService.createAkbTemplate(
-                                               session.getNodeByIdentifier(parentNodeJcrId), name);
-                       } else if (AkbTypes.AKB_CONNECTOR_ALIAS.equals(nodeType)) {
-                               // the Jcr ID of the corresponding template must be passed to
-                               // create a new alias
-                               node = session.getNodeByIdentifier(parentNodeJcrId);
-                               akbService.createConnectorAlias(node, name, nodeSubtype);
-                       } else {
-                               Node parentNode = session.getNodeByIdentifier(parentNodeJcrId);
-                               node = parentNode.addNode(name, nodeType);
-                               node.setProperty(Property.JCR_TITLE, name);
-                       }
-               }
-               // corresponding node is saved but not checked in, in order to ease
-               // cancel actions.
-               session.save();
-               return node;
-       }
-
-       private String getEditorForNode(Node node) throws RepositoryException {
-               String editorId = null;
-               if (node.isNodeType(AkbTypes.AKB_CONNECTOR_ALIAS))
-                       editorId = ConnectorAliasEditor.ID;
-               else if (node.isNodeType(AkbTypes.AKB_ENV_TEMPLATE) || node.isNodeType(AkbTypes.AKB_ENV))
-                       editorId = EnvTemplateEditor.ID;
-               else if (node.isNodeType(AkbTypes.AKB_SSH_FILE))
-                       editorId = SshFileTemplateEditor.ID;
-               else if (node.isNodeType(AkbTypes.AKB_SSH_COMMAND))
-                       editorId = SshCommandTemplateEditor.ID;
-               else if (node.isNodeType(AkbTypes.AKB_JDBC_QUERY))
-                       editorId = JdbcQueryTemplateEditor.ID;
-               // else
-               // throw new AkbException("Editor is undefined for node " + node);
-               return editorId;
-       }
-
-       /* DEPENDENCY INJECTION */
-       public void setRepository(Repository repository) {
-               this.repository = repository;
-       }
-
-       public void setAkbService(AkbService akbService) {
-               this.akbService = akbService;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/OpenUrl.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/OpenUrl.java
deleted file mode 100644 (file)
index 8227668..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.argeo.slc.akb.ui.commands;
-
-import java.net.URL;
-
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Open various predefine URL on the web to ease end user understanding of the
- * app.
- */
-public class OpenUrl extends AbstractHandler {
-
-       public final static String ID = AkbUiPlugin.PLUGIN_ID + ".openUrl";
-       public final static String PARAM_URL_TYPE = "param.urlType";
-
-       public final static String PARAM_VALUE_TRACKER = "tracker";
-       public final static String PARAM_VALUE_WIKI = "wiki";
-
-       private final static String TRACKER_URL = "https://www.argeo.org/bugzilla/enter_bug.cgi?product=slc&component=akb";
-       private final static String WIKI_URL = "https://www.argeo.org/wiki/SLC_Active_Knowledge_Base";
-
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               String urlType = event.getParameter(PARAM_URL_TYPE);
-               try {
-                       URL url = null;
-                       if (PARAM_VALUE_TRACKER.equals(urlType))
-                               url = new URL(TRACKER_URL);
-                       else if (PARAM_VALUE_WIKI.equals(urlType))
-                               url = new URL(WIKI_URL);
-                       else
-                               return null;
-                       PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser()
-                                       .openURL(url);
-               } catch (Exception e) {
-                       throw new AkbException("Unable to open browser page", e);
-               }
-               return null;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ActiveItemHeaderComposite.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ActiveItemHeaderComposite.java
deleted file mode 100644 (file)
index 92e7469..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-package org.argeo.slc.akb.ui.composites;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-
-import org.argeo.eclipse.ui.utils.CommandUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.ui.commands.ForceRefresh;
-import org.argeo.slc.akb.ui.wizards.ActiveConnectorWizard;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class ActiveItemHeaderComposite extends Composite {
-
-       private final AkbService akbService;
-       private final Node envNode;
-       private final Node itemNode;
-       private final FormToolkit toolkit;
-       private final IManagedForm form;
-       // Don't forget to unregister on dispose
-       private AbstractFormPart formPart;
-
-       /**
-        * 
-        * @param parent
-        * @param style
-        * @param toolkit
-        * @param form
-        * @param envNode
-        * @param itemNode
-        * @param akbService
-        */
-       public ActiveItemHeaderComposite(Composite parent, int style,
-                       FormToolkit toolkit, IManagedForm form, Node envNode,
-                       Node itemNode, AkbService akbService) {
-               super(parent, style);
-               this.envNode = envNode;
-               this.itemNode = itemNode;
-               this.toolkit = toolkit;
-               this.form = form;
-               this.akbService = akbService;
-               populate();
-               toolkit.adapt(this);
-       }
-
-       private void populate() {
-               // Initialization
-               Composite parent = this;
-
-               parent.setLayout(new GridLayout(3, false));
-
-               final Label envLbl = toolkit.createLabel(parent, "");
-
-               final Link editActiveConnLk = new Link(parent, SWT.NONE);
-               toolkit.adapt(editActiveConnLk, false, false);
-               editActiveConnLk.setText("<a>Edit Connector</a>");
-               editActiveConnLk.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, true,
-                               false));
-
-               final Link refreshLk = new Link(parent, SWT.NONE);
-               toolkit.adapt(refreshLk, false, false);
-               refreshLk.setText("<a>Refresh</a>");
-
-               new Label(parent, SWT.SEPARATOR | SWT.SHADOW_OUT | SWT.HORIZONTAL)
-                               .setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false,
-                                               3, 1));
-
-               // Part Management
-               final AbstractFormPart part = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               envLbl.setText("Environment: "
-                                               + AkbJcrUtils.get(envNode, Property.JCR_TITLE)
-                                               + " - Connector:"
-                                               + AkbJcrUtils.get(itemNode, Property.JCR_TITLE));
-
-                               // Node activeConnector =
-                               // akbService.getActiveConnectorByAlias(envNode,
-                               // AkbJcrUtils.get(itemNode,
-                               // AkbNames.AKB_CONNECTOR_ALIAS_PATH));
-                               // if
-                               // (AkbJcrUtils.isEmptyString(AkbJcrUtils.get(activeConnector,
-                               // AkbNames.AKB_CONNECTOR_URL)))
-                               // conLbl.setImage(SWT.);
-                       }
-               };
-
-               // Listeners
-               editActiveConnLk.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(final SelectionEvent event) {
-                               try {
-                                       String pathId = AkbJcrUtils.get(itemNode,
-                                                       AkbNames.AKB_USED_CONNECTOR);
-
-                                       Node activeConnector = akbService
-                                                       .getActiveConnectorByAlias(envNode, pathId);
-
-                                       ActiveConnectorWizard wizard = new ActiveConnectorWizard(
-                                                       akbService, activeConnector);
-                                       WizardDialog dialog = new WizardDialog(getShell(), wizard);
-                                       dialog.open();
-                                       
-                                       // String id = AkbJcrUtils
-                                       // .getIdentifierQuietly(activeConnector);
-                                       // Map<String, String> params = new HashMap<String,
-                                       // String>();
-                                       // params.put(OpenAkbNodeEditor.PARAM_NODE_JCR_ID, id);
-                                       // params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,
-                                       // AkbJcrUtils.getIdentifierQuietly(envNode));
-                                       //
-                                       // CommandUtils.callCommand(OpenAkbNodeEditor.ID, params);
-                               } catch (RepositoryException e) {
-                                       throw new AkbException("Error opening active connector", e);
-                               }
-                       }
-               });
-
-               refreshLk.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(final SelectionEvent event) {
-                               CommandUtils.callCommand(ForceRefresh.ID);
-                       }
-               });
-               form.addPart(part);
-       }
-
-       @Override
-       public boolean setFocus() {
-               return true;
-       }
-
-       protected void disposePart(AbstractFormPart part) {
-               if (part != null) {
-                       form.removePart(part);
-                       part.dispose();
-               }
-       }
-
-       @Override
-       public void dispose() {
-               disposePart(formPart);
-               super.dispose();
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/AkbItemsTableComposite.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/AkbItemsTableComposite.java
deleted file mode 100644 (file)
index d2da579..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-package org.argeo.slc.akb.ui.composites;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.Property;
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.nodetype.NodeType;
-import javax.jcr.query.QueryManager;
-import javax.jcr.query.QueryResult;
-import javax.jcr.query.qom.Constraint;
-import javax.jcr.query.qom.Ordering;
-import javax.jcr.query.qom.QueryObjectModel;
-import javax.jcr.query.qom.QueryObjectModelFactory;
-import javax.jcr.query.qom.Selector;
-import javax.jcr.query.qom.StaticOperand;
-
-import org.argeo.eclipse.ui.EclipseUiUtils;
-import org.argeo.eclipse.ui.jcr.JcrUiUtils;
-import org.argeo.eclipse.ui.jcr.lists.ColumnDefinition;
-import org.argeo.eclipse.ui.jcr.lists.NodeViewerComparator;
-import org.argeo.eclipse.ui.jcr.lists.SimpleJcrNodeLabelProvider;
-import org.argeo.eclipse.ui.specific.EclipseUiSpecificUtils;
-import org.argeo.eclipse.ui.utils.ViewerUtils;
-import org.argeo.jcr.ArgeoNames;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.ui.providers.AkbImageProvider;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-
-public class AkbItemsTableComposite extends Composite implements ArgeoNames {
-       // private final static Log log =
-       // LogFactory.getLog(UserTableComposite.class);
-
-       private TableViewer usersViewer;
-       private Text filterTxt;
-       private final static String FILTER_HELP_MSG = "Type filter criterion "
-                       + "separated by a space";
-       private Session session;
-
-       private Font italic;
-       private Font bold;
-
-       private boolean hasFilter;
-       private boolean hasSelectionColumn;
-
-       // private List<Node> selectedItems = new ArrayList<Node>();
-
-       /**
-        * Overwrite to display other columns
-        */
-       public List<ColumnDefinition> getColumnsDef() {
-               List<ColumnDefinition> columnDefs = new ArrayList<ColumnDefinition>();
-               // Name
-               columnDefs.add(new ColumnDefinition(null, Property.JCR_TITLE,
-                               PropertyType.STRING, "Name", 150));
-
-               return columnDefs;
-       }
-
-       public AkbItemsTableComposite(Composite parent, int style, Session session) {
-               super(parent, style);
-               this.session = session;
-       }
-
-       /**
-        * 
-        * @param addFilter
-        *            choose to add a field to filter results or not
-        * @param addSelection
-        *            choose to add a column to select some of the displayed results
-        *            or not
-        */
-       public void populate(boolean addFilter, boolean addSelection) {
-               // initialization
-               Composite parent = this;
-               italic = EclipseUiUtils.getItalicFont(parent);
-               bold = EclipseUiUtils.getBoldFont(parent);
-               hasFilter = addFilter;
-               hasSelectionColumn = addSelection;
-
-               // Main Layout
-               this.setLayout(new GridLayout(1, false));
-               if (hasFilter)
-                       createFilterPart(parent);
-               usersViewer = createTableViewer(parent);
-               EclipseUiSpecificUtils.enableToolTipSupport(usersViewer);
-               usersViewer.setContentProvider(new UsersContentProvider());
-               refreshFilteredList();
-       }
-
-       /** Returns the User table viewer, typically to add doubleclick listener */
-       public TableViewer getTableViewer() {
-               return usersViewer;
-       }
-
-       private TableViewer createTableViewer(final Composite parent) {
-               int style = SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL;
-               if (hasSelectionColumn)
-                       style = style | SWT.CHECK;
-
-               Table table = new Table(parent, style);
-               table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-               TableViewer viewer;
-               if (hasSelectionColumn)
-                       viewer = new CheckboxTableViewer(table);
-               else
-                       viewer = new TableViewer(table);
-               table.setLinesVisible(true);
-               table.setHeaderVisible(true);
-
-               // pass a mapping between col index and property name to the comparator.
-               // List<String> propertiesList = new ArrayList<String>();
-
-               TableViewerColumn column;
-               int offset = 0;
-               // if (hasSelectionColumn) {
-               if (hasSelectionColumn) {
-                       offset++;
-                       column = ViewerUtils.createTableViewerColumn(viewer, "", SWT.NONE,
-                                       25);
-                       // column.setEditingSupport(new SelectedEditingSupport(viewer));
-                       column.setLabelProvider(new ColumnLabelProvider() {
-                               @Override
-                               public String getText(Object element) {
-                                       return null;
-                               }
-                       });
-                       SelectionAdapter selectionAdapter = new SelectionAdapter() {
-                               boolean allSelected = false;
-
-                               @Override
-                               public void widgetSelected(SelectionEvent e) {
-                                       allSelected = !allSelected;
-                                       ((CheckboxTableViewer) usersViewer)
-                                                       .setAllChecked(allSelected);
-                               }
-                       };
-                       column.getColumn().addSelectionListener(selectionAdapter);
-               }
-
-               // Image column
-               offset++;
-               column = ViewerUtils.createTableViewerColumn(viewer, "", SWT.NONE, 25);
-               // column.setEditingSupport(new SelectedEditingSupport(viewer));
-               column.setLabelProvider(new ColumnLabelProvider() {
-                       private AkbImageProvider imageProvider = new AkbImageProvider();
-
-                       @Override
-                       public String getText(Object element) {
-                               return null;
-                       }
-
-                       @Override
-                       public Image getImage(Object element) {
-                               return imageProvider.getImage(element);
-                       }
-
-               });
-
-               // Create other columns
-               List<ColumnDefinition> colDefs = getColumnsDef();
-
-               NodeViewerComparator comparator = new NodeViewerComparator();
-               int i = offset;
-               for (ColumnDefinition colDef : colDefs) {
-                       column = ViewerUtils.createTableViewerColumn(viewer,
-                                       colDef.getHeaderLabel(), SWT.NONE, colDef.getColumnSize());
-                       column.setLabelProvider(new CLProvider(colDef.getPropertyName()));
-                       column.getColumn().addSelectionListener(
-                                       JcrUiUtils.getNodeSelectionAdapter(i,
-                                                       colDef.getPropertyType(), colDef.getPropertyName(),
-                                                       comparator, viewer));
-                       i++;
-               }
-
-               // IMPORTANT: initialize comparator before setting it
-               ColumnDefinition firstCol = colDefs.get(0);
-               comparator.setColumn(firstCol.getPropertyType(),
-                               firstCol.getPropertyName());
-               viewer.setComparator(comparator);
-
-               return viewer;
-       }
-
-       private class CLProvider extends SimpleJcrNodeLabelProvider {
-
-               public CLProvider(String propertyName) {
-                       super(propertyName);
-               }
-
-               public String getToolTipText(Object element) {
-                       return getText(element);
-               }
-
-               @Override
-               public Font getFont(Object elem) {
-                       return null;
-                       // // self
-                       // String username = getProperty(elem, ARGEO_USER_ID);
-                       // if (username.equals(session.getUserID()))
-                       // return bold;
-                       //
-                       // // disabled
-                       // try {
-                       // Node userProfile = (Node) elem;
-                       // // Node userProfile = userHome.getNode(ARGEO_PROFILE);
-                       // if (!userProfile.getProperty(ARGEO_ENABLED).getBoolean())
-                       // return italic;
-                       // else
-                       // return null;
-                       // } catch (RepositoryException e) {
-                       // throw new AkbException("Cannot get font for " + username, e);
-                       // }
-               }
-       }
-
-       @Override
-       public boolean setFocus() {
-               usersViewer.getTable().setFocus();
-               return true;
-       }
-
-       @Override
-       public void dispose() {
-               super.dispose();
-       }
-
-       public void refresh() {
-               refreshFilteredList();
-       }
-
-       private String getProperty(Object element, String name) {
-               try {
-                       Node node = (Node) element;
-                       return node.hasProperty(name) ? node.getProperty(name).getString()
-                                       : "";
-               } catch (RepositoryException e) {
-                       throw new AkbException("Cannot get property " + name, e);
-               }
-       }
-
-       private class UsersContentProvider implements IStructuredContentProvider {
-
-               public Object[] getElements(Object inputElement) {
-                       return (Object[]) inputElement;
-               }
-
-               public void dispose() {
-               }
-
-               public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-               }
-       }
-
-       /* MANAGE FILTER */
-       private void createFilterPart(Composite parent) {
-               // Text Area for the filter
-               filterTxt = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH
-                               | SWT.ICON_CANCEL);
-               filterTxt.setMessage(FILTER_HELP_MSG);
-               filterTxt.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                               | GridData.HORIZONTAL_ALIGN_FILL));
-               filterTxt.addModifyListener(new ModifyListener() {
-
-                       public void modifyText(ModifyEvent event) {
-                               refreshFilteredList();
-                       }
-               });
-       }
-
-       /**
-        * Refresh the user list: caller might overwrite in order to display a
-        * subset of all users
-        */
-       protected void refreshFilteredList() {
-               List<Node> nodes;
-               try {
-                       nodes = JcrUtils.nodeIteratorToList(listFilteredElements(session,
-                                       hasFilter ? filterTxt.getText() : null));
-                       usersViewer.setInput(nodes.toArray());
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable to items", e);
-               }
-       }
-
-       /**
-        * Build repository request : caller might overwrite in order to display a
-        * subset of all users
-        */
-       protected NodeIterator listFilteredElements(Session session, String filter)
-                       throws RepositoryException {
-               QueryManager queryManager = session.getWorkspace().getQueryManager();
-               QueryObjectModelFactory factory = queryManager.getQOMFactory();
-
-               Selector source = factory.selector(NodeType.MIX_TITLE,
-                               NodeType.MIX_TITLE);
-
-               // Default Constraint: in correct sub tree
-               Constraint defaultC = factory.descendantNode(source.getSelectorName(),
-                               AkbNames.AKB_TEMPLATES_BASE_PATH);
-
-               // FIXME: workaround to display only legal nodes
-               defaultC = factory.and(defaultC, factory.propertyExistence(
-                               source.getSelectorName(), Property.JCR_TITLE));
-
-               // Build constraints based the textArea content
-               if (filter != null && !"".equals(filter.trim())) {
-                       // Parse the String
-                       String[] strs = filter.trim().split(" ");
-                       for (String token : strs) {
-                               StaticOperand so = factory.literal(session.getValueFactory()
-                                               .createValue("*" + token + "*"));
-                               Constraint currC = factory.fullTextSearch(
-                                               source.getSelectorName(), null, so);
-                               if (defaultC == null)
-                                       defaultC = currC;
-                               else
-                                       defaultC = factory.and(defaultC, currC);
-                       }
-               }
-
-               Ordering order = factory.ascending(factory.propertyValue(
-                               source.getSelectorName(), Property.JCR_TITLE));
-               Ordering[] orderings = { order };
-
-               QueryObjectModel query = factory.createQuery(source, defaultC,
-                               orderings, null);
-
-               QueryResult result = query.execute();
-               return result.getNodes();
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/AliasListItemComposite.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/AliasListItemComposite.java
deleted file mode 100644 (file)
index 9fc72a5..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-package org.argeo.slc.akb.ui.composites;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.eclipse.ui.ErrorFeedback;
-import org.argeo.eclipse.ui.utils.CommandUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.ui.AkbImages;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.ui.commands.DeleteAkbNodes;
-import org.argeo.slc.akb.ui.wizards.ActiveConnectorWizard;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/** Default composite to display a connector alias. */
-public class AliasListItemComposite extends Composite {
-
-       private final AkbService akbService;
-       private final Node connectorAlias;
-       private final Node activeEnv;
-       private final boolean isActive;
-       private final Node activeConnector;
-       private final FormToolkit toolkit;
-       private final IManagedForm form;
-
-       // Don't forget to unregister on dispose
-       private AbstractFormPart formPart;
-
-       // To enable set focus
-       private Text titleTxt;
-
-       public AliasListItemComposite(Composite parent, int style,
-                       FormToolkit toolkit, IManagedForm form, Node envNode,
-                       String aliasPath, AkbService akbService) {
-               super(parent, style);
-               this.activeEnv = envNode;
-               try {
-                       isActive = activeEnv.isNodeType(AkbTypes.AKB_ENV);
-                       this.activeConnector = akbService.getActiveConnectorByAlias(
-                                       envNode, aliasPath);
-                       this.connectorAlias = activeEnv.getSession().getNode(aliasPath);
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable to get activeConnector for node", e);
-               }
-               this.toolkit = toolkit;
-               this.form = form;
-               this.akbService = akbService;
-               populate();
-               toolkit.adapt(this);
-       }
-
-       private void populate() {
-               // Initialization
-               Composite parent = this;
-               createConnectorAliasInfoCmp(parent);
-       }
-
-       private void createConnectorAliasInfoCmp(Composite parent) {
-               GridLayout gl = AkbUiUtils.gridLayoutNoBorder();
-               gl.marginBottom = 5;
-
-               parent.setLayout(gl);
-               Composite firstLine = toolkit.createComposite(parent, SWT.NO_FOCUS);
-               firstLine.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-               firstLine.setLayout(new GridLayout(6, false));
-
-               // Image
-               final Label image = toolkit.createLabel(firstLine, "", SWT.NONE);
-               GridData gd = new GridData(SWT.LEFT, SWT.CENTER, false, false);
-               try {
-                       image.setImage(AkbImages.getImageForAkbNodeType(activeConnector
-                                       .getPrimaryNodeType().getName()));
-               } catch (RepositoryException e2) {
-                       // silent
-               }
-               image.setLayoutData(gd);
-
-               // Name
-               final Text titleTxt = toolkit.createText(firstLine, "", SWT.NONE);
-               gd = new GridData(SWT.LEFT, SWT.CENTER, false, false);
-               gd.widthHint = 150;
-               titleTxt.setLayoutData(gd);
-
-               // Description
-               final Text descTxt = toolkit.createText(firstLine, "", SWT.NONE);
-               gd = new GridData(SWT.LEFT, SWT.CENTER, false, false);
-               gd.widthHint = 220;
-               descTxt.setLayoutData(gd);
-
-               final Link testBtn = new Link(firstLine, SWT.NONE);
-               toolkit.adapt(testBtn, false, false);
-               testBtn.setText("<a>Test</a>");
-               testBtn.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
-
-               final Link editActiveConnLk = new Link(firstLine, SWT.NONE);
-               toolkit.adapt(editActiveConnLk, false, false);
-               // editActiveConnLk.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER,
-               // true, false));
-
-               // Part Management
-               formPart = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               if (titleTxt.isDisposed())
-                                       return;
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(titleTxt, connectorAlias,
-                                               Property.JCR_TITLE, "Name");
-                               AkbUiUtils.refreshFormTextWidget(descTxt, connectorAlias,
-                                               Property.JCR_DESCRIPTION, "Short description");
-
-                               if (isActive) {
-                                       titleTxt.setEditable(false);
-                                       descTxt.setEditable(false);
-                                       editActiveConnLk.setText("<a>Edit connector instance</a>");
-                               } else {
-                                       titleTxt.setEditable(true);
-                                       descTxt.setEditable(true);
-                                       editActiveConnLk.setText("<a>Edit default connector</a>");
-                               }
-                       }
-               };
-
-               if (!isActive) {
-                       final Link removeBtn = new Link(firstLine, SWT.NONE);
-                       toolkit.adapt(removeBtn, false, false);
-                       removeBtn.setText("<a>Delete</a>");
-                       removeBtn.addSelectionListener(new SelectionAdapter() {
-                               @Override
-                               public void widgetSelected(SelectionEvent e) {
-                                       try {
-
-                                               try {
-                                                       connectorAlias.getPath();
-                                               } catch (Exception ex) {
-                                                       // node has been removed.
-                                                       // silent
-                                                       return;
-                                               }
-
-                                               // Manually check if corresponding node was really
-                                               // removed
-                                               Session session = connectorAlias.getSession();
-                                               String absPath = connectorAlias.getPath();
-
-                                               form.removePart(formPart);
-
-                                               CommandUtils.CallCommandWithOneParameter(
-                                                               DeleteAkbNodes.ID,
-                                                               DeleteAkbNodes.PARAM_NODE_JCR_ID, AkbJcrUtils
-                                                                               .getIdentifierQuietly(connectorAlias));
-
-                                               if (session.nodeExists(absPath)) {
-                                                       form.addPart(formPart);
-                                               } else {
-                                                       for (IFormPart cpart : form.getParts())
-                                                               cpart.refresh();
-                                               }
-
-                                       } catch (RepositoryException re) {
-                                               throw new AkbException(
-                                                               "Error while removing connector Alias ", re);
-                                       }
-                               }
-                       });
-               }
-
-               // Listeners
-               AkbUiUtils.addTextModifyListener(titleTxt, connectorAlias,
-                               Property.JCR_TITLE, formPart);
-               AkbUiUtils.addTextModifyListener(descTxt, connectorAlias,
-                               Property.JCR_DESCRIPTION, formPart);
-
-               testBtn.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               boolean testSuccesfull;
-                               try {
-                                       testSuccesfull = akbService.testConnector(activeConnector);
-                               } catch (Exception e1) {
-                                       testSuccesfull = false;
-                                       ErrorFeedback.show("Cannot test connection", e1);
-                               }
-                               String name = AkbJcrUtils.get(activeConnector,
-                                               Property.JCR_TITLE);
-                               String url = AkbJcrUtils.get(activeConnector,
-                                               AkbNames.AKB_CONNECTOR_URL);
-                               String msg = " to " + name + " (" + url + ")";
-                               if (testSuccesfull)
-                                       MessageDialog.openInformation(
-                                                       getDisplay().getActiveShell(), "Test successful",
-                                                       "Successfully connected " + msg);
-                               else
-                                       MessageDialog.openError(getDisplay().getActiveShell(),
-                                                       "Test failure", "Unable to connect" + msg);
-                       }
-               });
-
-               editActiveConnLk.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(final SelectionEvent event) {
-                               ActiveConnectorWizard wizard = new ActiveConnectorWizard(
-                                               akbService, activeConnector);
-                               WizardDialog dialog = new WizardDialog(getShell(), wizard);
-                               dialog.open();
-                       }
-               });
-
-               // force refresh to initialize various fields on creation
-               formPart.refresh();
-               form.addPart(formPart);
-       }
-
-       @Override
-       public boolean setFocus() {
-               if (titleTxt != null)
-                       return titleTxt.setFocus();
-               return false;
-       }
-
-       protected void disposePart(AbstractFormPart part) {
-               if (part != null) {
-                       form.removePart(part);
-                       part.dispose();
-               }
-       }
-
-       @Override
-       public void dispose() {
-               disposePart(formPart);
-               super.dispose();
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ConnectorAliasSmallComposite.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ConnectorAliasSmallComposite.java
deleted file mode 100644 (file)
index 8717df5..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-package org.argeo.slc.akb.ui.composites;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.eclipse.ui.ErrorFeedback;
-import org.argeo.eclipse.ui.utils.CommandUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.ui.AkbImages;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.ui.commands.DeleteAkbNodes;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/** Default composite to display a connector alias. */
-public class ConnectorAliasSmallComposite extends Composite {
-
-       private final AkbService akbService;
-       private final Node connectorAlias;
-       private final Node activeConnector;
-       private final FormToolkit toolkit;
-       private final IManagedForm form;
-
-       // Don't forget to unregister on dispose
-       private AbstractFormPart formPart;
-
-       // To enable set focus
-       private Text titleTxt;
-
-       public ConnectorAliasSmallComposite(Composite parent, int style,
-                       FormToolkit toolkit, IManagedForm form, Node akbNode,
-                       AkbService akbService) {
-               super(parent, style);
-               this.connectorAlias = akbNode;
-               try {
-                       this.activeConnector = akbNode
-                                       .getNode(AkbNames.AKB_DEFAULT_TEST_CONNECTOR);
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable to get activeConnector for node", e);
-               }
-               this.toolkit = toolkit;
-               this.form = form;
-               this.akbService = akbService;
-               populate();
-               toolkit.adapt(this);
-       }
-
-       private void populate() {
-               // Initialization
-               Composite parent = this;
-               createConnectorAliasInfoCmp(parent);
-       }
-
-       private void createConnectorAliasInfoCmp(Composite parent) {
-               GridLayout gl = AkbUiUtils.gridLayoutNoBorder();
-               gl.marginBottom = 15;
-
-               parent.setLayout(gl);
-               Composite firstLine = toolkit.createComposite(parent, SWT.NO_FOCUS);
-               firstLine.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-               firstLine.setLayout(new GridLayout(9, false));
-
-               // Image
-               final Label image = toolkit.createLabel(firstLine, "", SWT.NONE);
-               GridData gd = new GridData(SWT.LEFT, SWT.CENTER, false, false);
-               try {
-                       image.setImage(AkbImages.getImageForAkbNodeType(activeConnector
-                                       .getPrimaryNodeType().getName()));
-               } catch (RepositoryException e2) {
-                       // silent
-               }
-               image.setLayoutData(gd);
-
-               // Name
-               final Text titleTxt = toolkit.createText(firstLine, "", SWT.BORDER);
-               gd = new GridData(SWT.FILL, SWT.TOP, false, false);
-               gd.widthHint = 150;
-               titleTxt.setLayoutData(gd);
-
-               toolkit.createLabel(firstLine, "URL");
-               final Text urlTxt = toolkit.createText(firstLine, "", SWT.BORDER);
-               urlTxt.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
-               toolkit.createLabel(firstLine, "User");
-               final Text userTxt = toolkit.createText(firstLine, "", SWT.BORDER);
-               gd = new GridData(SWT.LEFT, SWT.TOP, false, false);
-               gd.widthHint = 150;
-               userTxt.setLayoutData(gd);
-
-               final Link testBtn = new Link(firstLine, SWT.NONE);
-               toolkit.adapt(testBtn, false, false);
-               testBtn.setText("<a>Test</a>");
-
-               final Link removeBtn = new Link(firstLine, SWT.NONE);
-               toolkit.adapt(removeBtn, false, false);
-               removeBtn.setText("<a>Delete</a>");
-
-               // createDefaultTestConnectorCmp(secondLine);
-
-               // Description
-               final Text descTxt = toolkit.createText(parent, "", SWT.NONE);
-               gd = new GridData(SWT.FILL, SWT.TOP, true, false);
-               descTxt.setLayoutData(gd);
-
-               // Part Management
-               formPart = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(titleTxt, connectorAlias,
-                                               Property.JCR_TITLE, "Name");
-                               AkbUiUtils.refreshFormTextWidget(descTxt, connectorAlias,
-                                               Property.JCR_DESCRIPTION, "Short description");
-                               AkbUiUtils.refreshFormTextWidget(urlTxt, activeConnector,
-                                               AkbNames.AKB_CONNECTOR_URL);
-                               AkbUiUtils.refreshFormTextWidget(userTxt, activeConnector,
-                                               AkbNames.AKB_CONNECTOR_USER);
-                       }
-               };
-               // Listeners
-               AkbUiUtils.addTextModifyListener(titleTxt, connectorAlias,
-                               Property.JCR_TITLE, formPart);
-               AkbUiUtils.addTextModifyListener(urlTxt, activeConnector,
-                               AkbNames.AKB_CONNECTOR_URL, formPart);
-               AkbUiUtils.addTextModifyListener(userTxt, activeConnector,
-                               AkbNames.AKB_CONNECTOR_USER, formPart);
-               AkbUiUtils.addTextModifyListener(descTxt, connectorAlias,
-                               Property.JCR_DESCRIPTION, formPart);
-
-               testBtn.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               boolean testSuccesfull;
-                               try {
-                                       testSuccesfull = akbService.testConnector(activeConnector);
-                               } catch (Exception e1) {
-                                       testSuccesfull = false;
-                                       ErrorFeedback.show("Cannot test connection", e1);
-                               }
-                               String name = AkbJcrUtils.get(activeConnector,
-                                               Property.JCR_TITLE);
-                               String url = AkbJcrUtils.get(activeConnector,
-                                               AkbNames.AKB_CONNECTOR_URL);
-                               String msg = " to " + name + " (" + url + ")";
-                               if (testSuccesfull)
-                                       MessageDialog.openInformation(
-                                                       getDisplay().getActiveShell(), "Test successful",
-                                                       "Successfully connected " + msg);
-                               else
-                                       MessageDialog.openError(getDisplay().getActiveShell(),
-                                                       "Test failure", "Unable to connect" + msg);
-                       }
-               });
-
-               removeBtn.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               try {
-                                       // Manually check if corresponding node was really removed
-                                       Session session = connectorAlias.getSession();
-                                       String absPath = connectorAlias.getPath();
-
-                                       CommandUtils.CallCommandWithOneParameter(DeleteAkbNodes.ID,
-                                                       DeleteAkbNodes.PARAM_NODE_JCR_ID,
-                                                       AkbJcrUtils.getIdentifierQuietly(connectorAlias));
-
-                                       if (!session.nodeExists(absPath))
-                                               form.removePart(formPart);
-
-                               } catch (RepositoryException re) {
-                                       throw new AkbException(
-                                                       "Error while removing connector Alias ", re);
-                               }
-                       }
-               });
-               // force refresh to initialize various fields on creation
-               formPart.refresh();
-               form.addPart(formPart);
-       }
-
-       @Override
-       public boolean setFocus() {
-               return titleTxt.setFocus();
-       }
-
-       protected void disposePart(AbstractFormPart part) {
-               if (part != null) {
-                       form.removePart(part);
-                       part.dispose();
-               }
-       }
-
-       @Override
-       public void dispose() {
-               disposePart(formPart);
-               super.dispose();
-       }
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ItemTemplateTitleComposite.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/ItemTemplateTitleComposite.java
deleted file mode 100644 (file)
index 56c015c..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-package org.argeo.slc.akb.ui.composites;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-
-import org.argeo.eclipse.ui.utils.CommandUtils;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class ItemTemplateTitleComposite extends Composite {
-       // private final static Log log =
-       // LogFactory.getLog(MixTitleComposite.class);
-
-       private final AkbService akbService;
-       private final Node envNode;
-       private final Node itemNode;
-       private final FormToolkit toolkit;
-       private final IManagedForm form;
-       // Don't forget to unregister on dispose
-       private AbstractFormPart formPart;
-
-       // To enable set focus
-       private Text titleTxt;
-       private Combo aliasCmb;
-
-       private List<Node> definedAliases;
-
-       /**
-        * 
-        * @param parent
-        * @param style
-        * @param toolkit
-        * @param form
-        * @param envNode
-        * @param itemNode
-        * @param akbService
-        */
-       public ItemTemplateTitleComposite(Composite parent, int style,
-                       FormToolkit toolkit, IManagedForm form, Node envNode,
-                       Node itemNode, AkbService akbService) {
-               super(parent, style);
-               this.envNode = envNode;
-               this.itemNode = itemNode;
-               this.toolkit = toolkit;
-               this.form = form;
-               this.akbService = akbService;
-               populate();
-               toolkit.adapt(this);
-       }
-
-       private void populate() {
-               // Initialization
-               Composite parent = this;
-
-               parent.setLayout(new GridLayout(5, false));
-
-               // first line: Item name
-               toolkit.createLabel(parent, "Name");
-               titleTxt = toolkit.createText(parent, "", SWT.BORDER);
-               GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false, 4, 1);
-               titleTxt.setLayoutData(gd);
-
-               // Second line: alias management
-               toolkit.createLabel(parent, "Alias");
-               aliasCmb = new Combo(parent, SWT.READ_ONLY);
-               toolkit.adapt(aliasCmb, false, false);
-               gd = new GridData(SWT.FILL, SWT.TOP, true, false, 3, 1);
-               aliasCmb.setLayoutData(gd);
-
-               final Link openAliasLk = new Link(parent, SWT.NONE);
-               toolkit.adapt(openAliasLk, false, false);
-               openAliasLk.setText("<a>Edit Alias</a>");
-               openAliasLk.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(final SelectionEvent event) {
-                               int index = aliasCmb.getSelectionIndex();
-                               if (index != -1) {
-                                       Node currAlias = definedAliases.get(index);
-                                       String id = AkbJcrUtils.getIdentifierQuietly(currAlias);
-                                       Map<String, String> params = new HashMap<String, String>();
-                                       params.put(OpenAkbNodeEditor.PARAM_NODE_JCR_ID, id);
-                                       params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,
-                                                       AkbJcrUtils.getIdentifierQuietly(envNode));
-
-                                       CommandUtils.callCommand(OpenAkbNodeEditor.ID, params);
-                               } else
-                                       MessageDialog.openError(getShell(), "Error",
-                                                       "No selected alias");
-                       }
-               });
-
-               // 3rd line: description
-               Label lbl = toolkit.createLabel(parent, "Description");
-               lbl.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
-               final Text descTxt = toolkit.createText(parent, "", SWT.BORDER
-                               | SWT.MULTI | SWT.WRAP);
-               gd = new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1);
-               descTxt.setLayoutData(gd);
-
-               // Part Management
-               final AbstractFormPart part = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(titleTxt, itemNode,
-                                               Property.JCR_TITLE);
-                               AkbUiUtils.refreshFormTextWidget(descTxt, itemNode,
-                                               Property.JCR_DESCRIPTION);
-
-                               refreshTypeCmbValues();
-                               aliasCmb.select(getCurrAliasIndex());
-                               aliasCmb.setEnabled(AkbJcrUtils.isNodeCheckedOutByMe(itemNode));
-                       }
-               };
-
-               // Listeners
-               AkbUiUtils.addTextModifyListener(titleTxt, itemNode,
-                               Property.JCR_TITLE, part);
-               AkbUiUtils.addTextModifyListener(descTxt, itemNode,
-                               Property.JCR_DESCRIPTION, part);
-
-               aliasCmb.addModifyListener(new ModifyListener() {
-                       @Override
-                       public void modifyText(ModifyEvent event) {
-                               try {
-                                       int oldIndex = getCurrAliasIndex();
-                                       int selIndex = aliasCmb.getSelectionIndex();
-
-                                       // insure something has really been modified
-                                       if (selIndex < 0 || oldIndex == selIndex)
-                                               return;
-
-                                       // set new alias
-                                       Node newAlias = definedAliases.get(selIndex);
-
-                                       // Only relies on the alias
-                                       itemNode.setProperty(AkbNames.AKB_USED_CONNECTOR,
-                                                       newAlias.getPath());
-                                       part.markDirty();
-                               } catch (RepositoryException e) {
-                                       throw new AkbException(
-                                                       "Error while updating connector alias", e);
-                               }
-                       }
-               });
-
-               form.addPart(part);
-       }
-
-       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();
-                               
-                               if (!itemNode.getSession().nodeExists(aliasPath))
-                                       return -1;
-
-                               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);
-               }
-       }
-
-       @Override
-       public boolean setFocus() {
-               return titleTxt.setFocus();
-       }
-
-       protected void disposePart(AbstractFormPart part) {
-               if (part != null) {
-                       form.removePart(part);
-                       part.dispose();
-               }
-       }
-
-       @Override
-       public void dispose() {
-               disposePart(formPart);
-               super.dispose();
-       }
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/MixTitleComposite.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/composites/MixTitleComposite.java
deleted file mode 100644 (file)
index 5aa6423..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.argeo.slc.akb.ui.composites;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class MixTitleComposite extends Composite {
-       // private final static Log log =
-       // LogFactory.getLog(MixTitleComposite.class);
-
-       private final Node akbNode;
-       private final FormToolkit toolkit;
-       private final IManagedForm form;
-       // Don't forget to unregister on dispose
-       private AbstractFormPart formPart;
-
-       // To enable set focus
-       private Text titleTxt;
-
-       public MixTitleComposite(Composite parent, int style, FormToolkit toolkit,
-                       IManagedForm form, Node akbNode) {
-               super(parent, style);
-               this.akbNode = akbNode;
-               this.toolkit = toolkit;
-               this.form = form;
-               populate();
-               toolkit.adapt(this);
-       }
-
-       private void populate() {
-               // Initialization
-               Composite parent = this;
-
-               parent.setLayout(new GridLayout(2, false));
-
-               // first line: connector name
-               toolkit.createLabel(parent, "Name");
-               titleTxt = toolkit.createText(parent, "", SWT.BORDER);
-               GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
-               titleTxt.setLayoutData(gd);
-
-               // 2nd line: description
-               Label lbl = toolkit.createLabel(parent, "Description");
-               lbl.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
-               final Text descTxt = toolkit.createText(parent, "", SWT.BORDER
-                               | SWT.MULTI | SWT.WRAP);
-               gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-               descTxt.setLayoutData(gd);
-
-               // Part Management
-               final AbstractFormPart part = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(titleTxt, akbNode,
-                                               Property.JCR_TITLE);
-                               AkbUiUtils.refreshFormTextWidget(descTxt, akbNode,
-                                               Property.JCR_DESCRIPTION);
-                       }
-               };
-               // Listeners
-               AkbUiUtils.addTextModifyListener(titleTxt, akbNode, Property.JCR_TITLE,
-                               part);
-               AkbUiUtils.addTextModifyListener(descTxt, akbNode,
-                               Property.JCR_DESCRIPTION, part);
-               form.addPart(part);
-       }
-
-       @Override
-       public boolean setFocus() {
-               return titleTxt.setFocus();
-       }
-
-       protected void disposePart(AbstractFormPart part) {
-               if (part != null) {
-                       form.removePart(part);
-                       part.dispose();
-               }
-       }
-
-       @Override
-       public void dispose() {
-               disposePart(formPart);
-               super.dispose();
-       }
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/dialogs/AddItemDialog.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/dialogs/AddItemDialog.java
deleted file mode 100644 (file)
index d54606f..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.argeo.slc.akb.ui.dialogs;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbTypes;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Dialog to create a new Item Template
- */
-public class AddItemDialog extends TrayDialog {
-
-       // this page widgets and UI objects
-       private final String title;
-
-       private String[] itemTypesLbl = new String[] { "SSH File", "SSH Command",
-                       "JDBC Query" };
-       private String[] itemTypes = new String[] { AkbTypes.AKB_SSH_FILE,
-                       AkbTypes.AKB_SSH_COMMAND, AkbTypes.AKB_JDBC_QUERY };
-
-       // business objects
-       private Node parentNode;
-       private Node newNode;
-
-       // widget objects
-       private Combo typeCmb;
-       private Text titleTxt;
-
-       public AddItemDialog(Shell parentShell, String title, Node parentNode) {
-               super(parentShell);
-               this.title = title;
-               this.parentNode = parentNode;
-       }
-
-       protected Point getInitialSize() {
-               return new Point(400, 300);
-       }
-
-       protected Control createDialogArea(Composite parent) {
-               Composite dialogArea = (Composite) super.createDialogArea(parent);
-               dialogArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-               dialogArea.setLayout(new GridLayout(2, false));
-               // type
-               Label lbl = new Label(dialogArea, SWT.NONE);
-               lbl.setText("Item type");
-               typeCmb = new Combo(dialogArea, SWT.READ_ONLY);
-               typeCmb.setItems(itemTypesLbl);
-               // name
-               titleTxt = createLT(dialogArea, "Item Name");
-
-               parent.pack();
-               return dialogArea;
-       }
-
-       @Override
-       protected void okPressed() {
-               try {
-                       newNode = parentNode.addNode(titleTxt.getText(),
-                                       itemTypes[typeCmb.getSelectionIndex()]);
-                       newNode.setProperty(Property.JCR_TITLE, titleTxt.getText());
-               } catch (RepositoryException e) {
-                       throw new AkbException("unable to create Item", e);
-               }
-               super.okPressed();
-       }
-
-       public Node getNewNode() {
-               return newNode;
-       }
-
-       /** Creates label and text. */
-       protected Text createLT(Composite parent, String label) {
-               new Label(parent, SWT.NONE).setText(label);
-               Text text = new Text(parent, SWT.SINGLE | SWT.LEAD | SWT.BORDER);
-               text.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-               return text;
-       }
-
-       protected void configureShell(Shell shell) {
-               super.configureShell(shell);
-               shell.setText(title);
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AbstractAkbNodeEditor.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AbstractAkbNodeEditor.java
deleted file mode 100644 (file)
index 92c771b..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.jcr.JcrUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * Parent Abstract Node editor for AKB. Manage life cycle of the JCR session
- * that is bound to it.
- */
-public abstract class AbstractAkbNodeEditor extends FormEditor {
-       // private final static Log log = LogFactory
-       // .getLog(AbstractEntityEditor.class);
-
-       // We use a one session per editor pattern to secure various nodes and
-       // changes life cycle
-       private Repository repository;
-       private Session session;
-       private AkbService akbService;
-
-       // Business Objects
-       private Node akbNode;
-       // a template or an active environment
-       private Node envNode;
-       // shortcut
-       private boolean isTemplate;
-
-       // Some constants
-       private final static int SHORT_NAME_LENGHT = 10;
-
-       // to implement methods
-       protected abstract String getEditorId();
-
-       protected abstract void populateMainPage(Composite parent,
-                       IManagedForm managedForm);
-
-       public void init(IEditorSite site, IEditorInput input)
-                       throws PartInitException {
-               setSite(site);
-               setInput(input);
-               try {
-                       session = repository.login();
-                       AkbNodeEditorInput anei = (AkbNodeEditorInput) getEditorInput();
-                       akbNode = session.getNodeByIdentifier(anei.getIdentifier());
-                       envNode = session.getNodeByIdentifier(anei.getEnvIdentifier());
-                       isTemplate = envNode.isNodeType(AkbTypes.AKB_ENV_TEMPLATE);
-                       updatePartNameAndToolTip();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable open editor for akb node", e);
-               }
-       }
-
-       /**
-        * Overwrite to provide a specific part Name and / or tooltip
-        */
-       protected void updatePartNameAndToolTip() {
-               String name = JcrUtils.get(akbNode, Property.JCR_TITLE);
-
-               // Name
-               if (AkbJcrUtils.checkNotEmptyString(name)) {
-                       if (name.length() > SHORT_NAME_LENGHT)
-                               name = name.substring(0, SHORT_NAME_LENGHT - 1) + "...";
-                       setPartName(name);
-               }
-
-               // Tooltip
-               if (AkbJcrUtils.isEmptyString(name))
-                       name = "current akb object";
-               if (isTemplate) {
-                       setTitleToolTip("Display and edit " + name);
-               } else
-                       setTitleToolTip("Display " + name);
-
-       }
-
-       /** Overwrite to provide supplementary pages between main and history page */
-       protected void addOtherPages() throws PartInitException {
-       }
-
-       /* Pages management */
-       @SuppressWarnings("unused")
-       @Override
-       protected void addPages() {
-               try {
-                       if (isTemplate || akbNode.isNodeType(AkbTypes.AKB_ENV))
-                               addPage(new ConnectorAliasPage(this, "mainPage", "Main"));
-                       // Add AKB Type specific pages
-                       addOtherPages();
-                       // Use this when versioning is implemented
-                       // if (isTemplate)
-                       if (false)
-                               addPage(new HistoryPage(this, "historyPage", "History"));
-               } catch (PartInitException e) {
-                       throw new AkbException("Unable to initialise pages for editor "
-                                       + getEditorId(), e);
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable to initialise pages for editor "
-                                       + getEditorId(), e);
-               }
-       }
-
-       /**
-        * Display and edit info
-        */
-       private class ConnectorAliasPage extends FormPage {
-
-               public ConnectorAliasPage(FormEditor editor, String id, String title) {
-                       super(editor, id, title);
-               }
-
-               protected void createFormContent(IManagedForm managedForm) {
-                       super.createFormContent(managedForm);
-                       ScrolledForm form = managedForm.getForm();
-                       form.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-                       populateMainPage(form.getBody(), managedForm);
-               }
-       }
-
-       /**
-        * Display history
-        */
-       private class HistoryPage extends FormPage {
-
-               public HistoryPage(FormEditor editor, String id, String title) {
-                       super(editor, id, title);
-               }
-
-               protected void createFormContent(IManagedForm managedForm) {
-                       super.createFormContent(managedForm);
-                       ScrolledForm form = managedForm.getForm();
-                       form.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-                       Composite parent = form.getBody();
-                       parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-                       getToolkit().createLabel(parent,
-                                       "This page will display history " + "for current AKB Node");
-               }
-       }
-
-       /* EXPOSES TO CHILDREN CLASSES */
-       protected Session getSession() {
-               return session;
-       }
-
-       protected AkbService getAkbService() {
-               return akbService;
-       }
-
-       protected Node getAkbNode() {
-               return akbNode;
-       }
-
-       protected Node getEnvNode() {
-               return envNode;
-       }
-
-       protected boolean isTemplate() {
-               return isTemplate;
-       }
-
-       /* LIFE CYCLE MANAGEMENT */
-       @Override
-       public void dispose() {
-               try {
-                       // if (cNode != null)
-                       // CommonsJcrUtils.cancelAndCheckin(cNode);
-               }
-
-               finally {
-                       JcrUtils.logoutQuietly(session);
-               }
-               super.dispose();
-       }
-
-       @Override
-       public void doSaveAs() {
-               // unused compulsory method
-       }
-
-       @Override
-       public void doSave(IProgressMonitor monitor) {
-               try {
-                       if (getSession().hasPendingChanges())
-                               JcrUtils.updateLastModified(getAkbNode());
-                       getSession().save();
-                       updatePartNameAndToolTip();
-                       this.firePropertyChange(PROP_DIRTY);
-               } catch (Exception e) {
-                       throw new AkbException("Error getting session status.", e);
-               }
-       }
-
-       @Override
-       public boolean isDirty() {
-               try {
-                       return session.hasPendingChanges();
-               } catch (Exception e) {
-                       throw new AkbException("Error getting session status.", e);
-               }
-       }
-
-       @Override
-       public boolean isSaveAsAllowed() {
-               return false;
-       }
-
-       @Override
-       public void setFocus() {
-       }
-
-       /* DEPENDENCY INJECTION */
-       public void setRepository(Repository repository) {
-               this.repository = repository;
-       }
-
-       public void setAkbService(AkbService akbService) {
-               this.akbService = akbService;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AkbItemTemplateEditor.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AkbItemTemplateEditor.java
deleted file mode 100644 (file)
index ba71a3d..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.ui.composites.ItemTemplateTitleComposite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * Parent class for most akb items editor. Factorizes UI parts that are common
- * in various item types.
- */
-public abstract class AkbItemTemplateEditor extends AbstractAkbNodeEditor {
-
-       /* CONTENT CREATION */
-       @Override
-       public void populateMainPage(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-               // First line main info
-               ItemTemplateTitleComposite ittCmp = new ItemTemplateTitleComposite(
-                               parent, SWT.NO_FOCUS, getToolkit(), managedForm, getEnvNode(),
-                               getAkbNode(), getAkbService());
-               GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
-               gd.minimumHeight = 250;
-               ittCmp.setLayoutData(gd);
-
-               Composite bottomCmp = getToolkit().createComposite(parent);
-               gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-               bottomCmp.setLayoutData(gd);
-               populateBottomPart(bottomCmp, managedForm);
-       }
-
-       @Override
-       protected void addOtherPages() throws PartInitException {
-               addPage(new TestPage(this, "testPage", "Test"));
-       }
-
-       /** Overwrite to add specific bottom part depending on the item type */
-       abstract protected void populateBottomPart(Composite parent,
-                       IManagedForm managedForm);
-
-       /**
-        * Display history
-        */
-       private class TestPage extends FormPage {
-
-               public TestPage(FormEditor editor, String id, String title) {
-                       super(editor, id, title);
-               }
-
-               protected void createFormContent(IManagedForm managedForm) {
-                       super.createFormContent(managedForm);
-                       ScrolledForm form = managedForm.getForm();
-                       form.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-                       Composite parent = form.getBody();
-                       populateTestPage(parent, managedForm);
-               }
-       }
-
-       protected void populateTestPage(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-               getToolkit().createLabel(
-                               parent,
-                               "This page will display a test page "
-                                               + "using default connection for the chosen alias");
-       }
-
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AkbNodeEditorInput.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AkbNodeEditorInput.java
deleted file mode 100644 (file)
index 5903f1d..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * Editor input for all editors that display info on a given AKB JCR Node.
- * 
- * Relies on the Jcr ID,
- */
-public class AkbNodeEditorInput implements IEditorInput {
-
-       private final String envJcrId;
-       // Only null if current node is a environment (active or template)
-       private final String jcrId;
-
-       /**
-        * @param envJcrId
-        *            can be null when current node is an environment (active or
-        *            template)
-        * @param jcrId
-        *            cannot be null
-        */
-
-       public AkbNodeEditorInput(String envJcrId, String jcrId) {
-               this.envJcrId = envJcrId;
-               this.jcrId = jcrId;
-       }
-
-       public String getIdentifier() {
-               return jcrId;
-       }
-
-       public String getEnvIdentifier() {
-               if (envJcrId == null)
-                       return jcrId;
-               else
-                       return envJcrId;
-       }
-
-       public boolean exists() {
-               return true;
-       }
-
-       public ImageDescriptor getImageDescriptor() {
-               return null;
-       }
-
-       public String getName() {
-               return jcrId;
-       }
-
-       public IPersistableElement getPersistable() {
-               return null;
-       }
-
-       public String getToolTipText() {
-               return "Display and edit information about a given AKB Jcr Node";
-       }
-
-       @SuppressWarnings("rawtypes")
-       public Object getAdapter(Class adapter) {
-               return null;
-       }
-
-       public int hashCode() {
-               return jcrId.hashCode();
-       }
-
-       public boolean equals(Object obj) {
-               if (this == obj)
-                       return true;
-               if (obj == null)
-                       return false;
-               if (getClass() != obj.getClass())
-                       return false;
-               AkbNodeEditorInput other = (AkbNodeEditorInput) obj;
-               if (!jcrId.equals(other.getIdentifier())
-                               || !getEnvIdentifier().equals(other.getEnvIdentifier()))
-                       return false;
-               return true;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/ConnectorAliasEditor.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/ConnectorAliasEditor.java
deleted file mode 100644 (file)
index 95bfa0c..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-
-import org.argeo.eclipse.ui.ErrorFeedback;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-
-/**
- * Display and edit a connector Alias
- */
-public class ConnectorAliasEditor extends AbstractAkbNodeEditor {
-       // private final static Log log = LogFactory
-       // .getLog(AkbConnectorAliasEditor.class);
-
-       public final static String ID = AkbUiPlugin.PLUGIN_ID
-                       + ".connectorAliasEditor";
-
-       private IManagedForm managedForm;
-       private Node activeConnector;
-
-       /* CONTENT CREATION */
-       @Override
-       public void populateMainPage(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-
-               // TODO clean this
-               // Initialization
-               this.managedForm = managedForm;
-               // enable dynamic change of the active connector
-               try {
-                       activeConnector = getAkbNode().getNode(
-                                       AkbNames.AKB_DEFAULT_TEST_CONNECTOR);
-               } catch (RepositoryException e) {
-                       throw new AkbException("unable to retrieve active connector node",
-                                       e);
-               }
-
-               // First line main info
-               Composite firstLine = getToolkit()
-                               .createComposite(parent, SWT.NO_FOCUS);
-               firstLine.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-               createConnectorAliasInfoCmp(firstLine);
-
-               // Second line define defaut connector and test abilities
-               Composite secondLine = getToolkit().createComposite(parent,
-                               SWT.NO_FOCUS);
-               secondLine.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               createDefaultTestConnectorCmp(secondLine);
-
-       }
-
-       private void createConnectorAliasInfoCmp(Composite parent) {
-               parent.setLayout(new GridLayout(2, false));
-
-               // Name
-               final Text titleTxt = getToolkit().createText(parent, "", SWT.BORDER);
-               GridData gd = new GridData(SWT.FILL, SWT.TOP, false, false);
-               gd.minimumWidth = 200;
-               gd.widthHint = 200;
-               titleTxt.setLayoutData(gd);
-
-               // Description
-               final Text descTxt = getToolkit().createText(parent, "", SWT.BORDER);
-               gd = new GridData(SWT.FILL, SWT.TOP, true, false);
-               descTxt.setLayoutData(gd);
-
-               // Part Management
-               final AbstractFormPart part = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(titleTxt, getAkbNode(),
-                                               Property.JCR_TITLE, "Name");
-                               AkbUiUtils.refreshFormTextWidget(descTxt, getAkbNode(),
-                                               Property.JCR_DESCRIPTION, "Short description");
-                       }
-               };
-               // Listeners
-               AkbUiUtils.addTextModifyListener(titleTxt, getAkbNode(),
-                               Property.JCR_TITLE, part);
-               AkbUiUtils.addTextModifyListener(descTxt, getAkbNode(),
-                               Property.JCR_DESCRIPTION, part);
-
-               managedForm.addPart(part);
-       }
-
-       protected void updatePartNameAndToolTip() {
-               super.updatePartNameAndToolTip();
-               // TODO update editor image
-       }
-
-       private void createDefaultTestConnectorCmp(Composite parent) {
-               String groupTitle = "Default test instance";
-               parent.setLayout(new GridLayout());
-               Group group = new Group(parent, SWT.NONE);
-               group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               getToolkit().adapt(group, false, false);
-
-               group.setText(groupTitle);
-               group.setLayout(AkbUiUtils.gridLayoutNoBorder());
-
-               // 1st line: the URL
-               Composite firstLine = getToolkit().createComposite(group);
-               firstLine.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               firstLine.setLayout(new GridLayout(2, false));
-
-               getToolkit().createLabel(firstLine, "URL");
-               final Text urlTxt = getToolkit().createText(firstLine, "", SWT.BORDER);
-               urlTxt.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
-               getToolkit().createLabel(firstLine, "User");
-               final Text userTxt = getToolkit().createText(firstLine, "", SWT.BORDER);
-               userTxt.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
-               final Button testBtn = getToolkit().createButton(firstLine,
-                               "Test connection", SWT.PUSH);
-               // testBtn.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false,
-               // false));
-
-               // Part Management
-               final AbstractFormPart part = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(urlTxt, activeConnector,
-                                               AkbNames.AKB_CONNECTOR_URL);
-                               AkbUiUtils.refreshFormTextWidget(userTxt, activeConnector,
-                                               AkbNames.AKB_CONNECTOR_USER);
-                       }
-               };
-               // Listeners
-               AkbUiUtils.addTextModifyListener(urlTxt, activeConnector,
-                               AkbNames.AKB_CONNECTOR_URL, part);
-               AkbUiUtils.addTextModifyListener(userTxt, activeConnector,
-                               AkbNames.AKB_CONNECTOR_USER, part);
-
-               testBtn.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               boolean testSuccesfull;
-
-                               try {
-                                       testSuccesfull = getAkbService().testConnector(
-                                                       activeConnector);
-                               } catch (Exception e1) {
-                                       testSuccesfull = false;
-                                       ErrorFeedback.show("Cannot test connection", e1);
-                               }
-
-                               String name = AkbJcrUtils.get(activeConnector,
-                                               Property.JCR_TITLE);
-                               String url = AkbJcrUtils.get(activeConnector,
-                                               AkbNames.AKB_CONNECTOR_URL);
-
-                               String msg = "to " + name + " (" + url + ")";
-                               if (testSuccesfull)
-                                       MessageDialog.openInformation(getSite().getShell(),
-                                                       "Test successful", "Successfully connected " + msg);
-                               else
-                                       MessageDialog.openError(getSite().getShell(),
-                                                       "Test failure", "Unable to connect" + msg);
-                       }
-               });
-
-               managedForm.addPart(part);
-
-       }
-
-       @Override
-       protected String getEditorId() {
-               return ID;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/EnvTemplateEditor.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/EnvTemplateEditor.java
deleted file mode 100644 (file)
index d75e24c..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.jcr.ItemNotFoundException;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.observation.Event;
-import javax.jcr.observation.ObservationManager;
-
-import org.argeo.eclipse.ui.jcr.AsyncUiEventListener;
-import org.argeo.eclipse.ui.utils.CommandUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.ui.commands.ForceRefresh;
-import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;
-import org.argeo.slc.akb.ui.composites.AliasListItemComposite;
-import org.argeo.slc.akb.ui.composites.MixTitleComposite;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-
-/**
- * Display and edit an environment template
- */
-public class EnvTemplateEditor extends AbstractAkbNodeEditor {
-
-       public final static String ID = AkbUiPlugin.PLUGIN_ID
-                       + ".envTemplateEditor";
-
-       // Observer
-       private final static String[] observedNodes = { AkbTypes.AKB_CONNECTOR_FOLDER };
-       private ConnectorObserver connectorObserver;
-
-       /* CONTENT CREATION */
-       @Override
-       public void populateMainPage(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(new GridLayout());
-               // First line main info
-               MixTitleComposite mixTitleCmp = new MixTitleComposite(parent,
-                               SWT.NO_FOCUS, getToolkit(), managedForm, getAkbNode());
-               GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
-               gd.heightHint = 200;
-               mixTitleCmp.setLayoutData(gd);
-
-               // Second line : the defined editor
-               Group group = new Group(parent, SWT.NONE);
-               group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               getToolkit().adapt(group, false, false);
-               String groupTitle = "Connector Aliases";
-               group.setText(groupTitle);
-               populateDisplayConnectorPanel(managedForm, group, getAkbNode());
-
-               // add context menu
-               MenuManager menuManager = new MenuManager();
-               Menu menu = menuManager.createContextMenu(group);
-               menuManager.addMenuListener(new IMenuListener() {
-                       public void menuAboutToShow(IMenuManager manager) {
-                               aboutToShow(manager);
-                       }
-               });
-               group.setMenu(menu);
-               menuManager.setRemoveAllWhenShown(true);
-       }
-
-       protected void aboutToShow(IMenuManager menu) {
-               try {
-                       // initialization
-                       IWorkbenchWindow window = AkbUiPlugin.getDefault().getWorkbench()
-                                       .getActiveWorkbenchWindow();
-                       Node connectorParent = getAkbNode();
-
-                       // Refresh
-                       CommandUtils.refreshCommand(menu, window, ForceRefresh.ID,
-                                       "Refresh", null, true);
-
-                       String submenuID = "subMenu.addAlias";
-                       IContributionItem ici = menu.find(submenuID);
-                       if (ici != null)
-                               menu.remove(ici);
-                       Map<String, String> params = new HashMap<String, String>();
-                       params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID,
-                                       connectorParent.getIdentifier());
-                       params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE,
-                                       AkbTypes.AKB_CONNECTOR_ALIAS);
-
-                       MenuManager subMenu = new MenuManager("Add connector alias",
-                                       submenuID);
-                       // JDBC
-                       Map<String, String> tmpParams = new HashMap<String, String>();
-                       tmpParams.putAll(params);
-                       tmpParams.put(OpenAkbNodeEditor.PARAM_NODE_SUBTYPE,
-                                       AkbTypes.AKB_JDBC_CONNECTOR);
-                       String currItemId = "cmd.createJDBCAlias";
-                       IContributionItem currItem = subMenu.find(currItemId);
-                       if (currItem != null)
-                               subMenu.remove(currItem);
-                       subMenu.add(AkbUiUtils.createContributionItem(subMenu, window,
-                                       currItemId, OpenAkbNodeEditor.ID, "JDBC", null, tmpParams));
-
-                       // SSH
-                       tmpParams = new HashMap<String, String>();
-                       tmpParams.putAll(params);
-                       tmpParams.put(OpenAkbNodeEditor.PARAM_NODE_SUBTYPE,
-                                       AkbTypes.AKB_SSH_CONNECTOR);
-                       currItemId = "cmd.createSSHAlias";
-                       currItem = subMenu.find(currItemId);
-                       if (currItem != null)
-                               subMenu.remove(currItem);
-                       subMenu.add(AkbUiUtils.createContributionItem(subMenu, window,
-                                       currItemId, OpenAkbNodeEditor.ID, "SSH", null, tmpParams));
-
-                       if (isTemplate())
-                               menu.add(subMenu);
-
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable to refresh context menu", e);
-               }
-       }
-
-       /** Manage display and update of defined connector aliases */
-       public void populateDisplayConnectorPanel(final IManagedForm managedForm,
-                       final Composite panel, final Node entity) {
-               GridLayout gl = AkbUiUtils.gridLayoutNoBorder();
-               gl.marginTop = 10;
-               panel.setLayout(gl);
-
-               final Map<String, Composite> connectorsCmps = new HashMap<String, Composite>();
-               AbstractFormPart formPart = new AbstractFormPart() {
-                       public void refresh() {
-                               try {
-                                       super.refresh();
-                                       // first: initialise composite for new connectors
-
-                                       Node connectorPar = getAkbNode().getNode(
-                                                       AkbTypes.AKB_CONNECTOR_FOLDER);
-                                       NodeIterator ni = connectorPar.getNodes();
-
-                                       boolean isTemplate = getEnvNode().isNodeType(
-                                                       AkbTypes.AKB_ENV_TEMPLATE);
-
-                                       aliases: while (ni.hasNext()) {
-                                               Node currNode = ni.nextNode();
-                                               String currJcrId = currNode.getIdentifier();
-                                               if (!connectorsCmps.containsKey(currJcrId)) {
-                                                       Composite currCmp;
-                                                       if (isTemplate)
-                                                               currCmp = new AliasListItemComposite(panel,
-                                                                               SWT.NO_FOCUS, getToolkit(),
-                                                                               managedForm, getAkbNode(),
-                                                                               currNode.getPath(), getAkbService());
-                                                       else {
-                                                               String aliasPath = AkbJcrUtils.get(currNode,
-                                                                               AkbNames.AKB_CONNECTOR_ALIAS_PATH);
-                                                               if (AkbJcrUtils.isEmptyString(aliasPath)
-                                                                               || !getSession().nodeExists(aliasPath))
-                                                                       continue aliases;
-
-                                                               currCmp = new AliasListItemComposite(panel,
-                                                                               SWT.NO_FOCUS, getToolkit(),
-                                                                               managedForm, getAkbNode(), aliasPath,
-                                                                               getAkbService());
-                                                       }
-                                                       currCmp.setLayoutData(new GridData(SWT.FILL,
-                                                                       SWT.TOP, true, false));
-                                                       connectorsCmps.put(currJcrId, currCmp);
-
-                                               }
-                                       }
-
-                                       // then remove necessary composites
-                                       Session session = connectorPar.getSession();
-                                       for (String jcrId : connectorsCmps.keySet()) {
-                                               // TODO: enhance this
-                                               Composite currCmp = connectorsCmps.get(jcrId);
-                                               try {
-                                                       session.getNodeByIdentifier(jcrId);
-                                               } catch (ItemNotFoundException infe) {
-                                                       currCmp.dispose();
-                                               }
-                                       }
-                                       panel.layout();
-                               } catch (RepositoryException e) {
-                                       throw new AkbException("Cannot refresh connectors group", e);
-                               }
-                       }
-               };
-               formPart.refresh();
-               managedForm.addPart(formPart);
-
-               // Initialize observer
-               try {
-                       ObservationManager observationManager = getSession().getWorkspace()
-                                       .getObservationManager();
-                       connectorObserver = new ConnectorObserver(panel.getDisplay(),
-                                       managedForm);
-                       // observe tree changes under All results
-                       observationManager.addEventListener(connectorObserver,
-                                       Event.NODE_ADDED | Event.NODE_REMOVED, getAkbNode()
-                                                       .getNode(AkbTypes.AKB_CONNECTOR_FOLDER).getPath(),
-                                       true, null, observedNodes, false);
-               } catch (RepositoryException e) {
-                       throw new AkbException("Cannot register listeners", e);
-               }
-
-       }
-
-       class ConnectorObserver extends AsyncUiEventListener {
-
-               private IManagedForm managedForm;
-
-               public ConnectorObserver(Display display, IManagedForm managedForm) {
-                       super(display);
-                       this.managedForm = managedForm;
-               }
-
-               @Override
-               protected Boolean willProcessInUiThread(List<Event> events)
-                               throws RepositoryException {
-                       return true;
-               }
-
-               protected void onEventInUiThread(List<Event> events)
-                               throws RepositoryException {
-                       try {
-                               for (IFormPart part : managedForm.getParts())
-                                       part.refresh();
-                       } catch (Exception e) {
-                               // silently fail
-                               e.printStackTrace();
-                       }
-               }
-       }
-
-       @Override
-       protected String getEditorId() {
-               return ID;
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcQueryTemplateEditor.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcQueryTemplateEditor.java
deleted file mode 100644 (file)
index 2bc5a04..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-
-/**
- * Display and edit a jdbc query
- */
-public class JdbcQueryTemplateEditor extends AkbItemTemplateEditor {
-
-       public final static String ID = AkbUiPlugin.PLUGIN_ID
-                       + ".jdbcQueryTemplateEditor";
-
-       @Override
-       protected String getEditorId() {
-               return ID;
-       }
-
-       @Override
-       protected void populateBottomPart(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-               Group group = new Group(parent, SWT.NO_FOCUS);
-               getToolkit().adapt(group, false, false);
-               group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-               group.setLayout(new GridLayout(1, false));
-
-               // first line: Description
-               getToolkit().createLabel(group, "Enter below a valid JDBC Query");
-
-               // 2nd line: the query
-               final Text queryTxt = getToolkit().createText(group, "",
-                               SWT.BORDER | SWT.MULTI | SWT.WRAP);
-               GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-               queryTxt.setLayoutData(gd);
-
-               // Part Management
-               final AbstractFormPart part = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(queryTxt, getAkbNode(),
-                                               AkbNames.AKB_QUERY_TEXT);
-                       }
-               };
-               // Listeners
-               AkbUiUtils.addTextModifyListener(queryTxt, getAkbNode(),
-                               AkbNames.AKB_QUERY_TEXT, part);
-               managedForm.addPart(part);
-       }
-
-       @Override
-       protected void addOtherPages() throws PartInitException {
-               addPage(new JdbcTestPage(getAkbService(), this, "testPage", "Test",
-                               getEnvNode(), getAkbNode()));
-       }
-
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcTestPage.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/JdbcTestPage.java
deleted file mode 100644 (file)
index f159195..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jcr.Node;
-
-import org.argeo.security.ui.PrivilegedJob;
-import org.argeo.slc.SlcException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.ui.composites.ActiveItemHeaderComposite;
-import org.argeo.slc.akb.ui.utils.Refreshable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILazyContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/** Test JDBC. */
-public class JdbcTestPage extends FormPage implements AkbNames, Refreshable {
-       private Node currItem;
-       // A template or an active environment
-       private Node currEnv;
-       private AkbService akbService;
-
-       private TableViewer viewer = null;
-       private IContentProvider contentProvider;
-
-       private PreparedStatement statement;
-
-       public JdbcTestPage(AkbService akbService, FormEditor editor, String id,
-                       String title, Node currEnv, Node currItem) {
-               super(editor, id, title);
-               this.akbService = akbService;
-               this.currItem = currItem;
-               this.currEnv = currEnv;
-       }
-
-       protected void createFormContent(IManagedForm managedForm) {
-               super.createFormContent(managedForm);
-               ScrolledForm form = managedForm.getForm();
-               form.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               Composite parent = form.getBody();
-
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-               FormToolkit toolkit = getEditor().getToolkit();
-
-               // the header
-               ActiveItemHeaderComposite header = new ActiveItemHeaderComposite(
-                               parent, SWT.NONE, toolkit, managedForm, currEnv, currItem,
-                               akbService);
-               header.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
-               // the table
-               Table table = toolkit.createTable(parent, SWT.VIRTUAL);
-               table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               table.setHeaderVisible(true);
-               table.setLinesVisible(true);
-               viewer = new TableViewer(table);
-               contentProvider = new JdbcTestContentProvider(viewer);
-               viewer.setContentProvider(contentProvider);
-               // viewer.setLabelProvider(new ColumnLabelProvider(){});
-
-               forceRefresh(null);
-       }
-
-       public void forceRefresh(Object object) {
-               silentlyCloseStatement();
-               statement = akbService.prepareJdbcQuery(currEnv, currItem);
-               if (statement != null) {
-                       PrivilegedJob job = new PrivilegedJob("Execute query on "
-                                       + currItem) {
-
-                               @Override
-                               protected IStatus doRun(IProgressMonitor progressMonitor) {
-                                       try {
-                                               final ResultSet resultSet = statement.executeQuery();
-                                               getEditorSite().getWorkbenchWindow().getShell()
-                                                               .getDisplay().syncExec(new Runnable() {
-
-                                                                       @Override
-                                                                       public void run() {
-                                                                               viewer.setInput(resultSet);
-                                                                       }
-                                                               });
-                                               return Status.OK_STATUS;
-                                       } catch (SQLException e) {
-                                               throw new SlcException("Cannot execute " + currItem, e);
-                                       }
-                               }
-                       };
-                       job.schedule();
-               }
-       }
-
-       private void silentlyCloseStatement() {
-               try {
-                       if (statement != null) {
-                               statement.close();
-                               statement.getConnection().close();
-                       }
-               } catch (SQLException e) {
-                       // silent
-               }
-       }
-
-       @Override
-       public void dispose() {
-               silentlyCloseStatement();
-       }
-
-       private class JdbcTestContentProvider implements ILazyContentProvider {
-               private TableViewer viewer;
-               private ResultSet resultSet;
-               private boolean isScrollable;
-
-               private List<Object> buffer = new ArrayList<Object>();
-
-               private List<JdbcColumn> columns = new ArrayList<JdbcColumn>();
-               private Integer columnCount = 0;
-
-               private int rowCount = 0;
-
-               public JdbcTestContentProvider(TableViewer viewer) {
-                       this.viewer = viewer;
-               }
-
-               public void dispose() {
-                       try {
-                               resultSet.close();
-                       } catch (SQLException e) {
-                               // silent
-                       }
-               }
-
-               public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-                       if (newInput == null)
-                               return;
-
-                       TableViewer viewer = (TableViewer) v;
-
-                       resultSet = (ResultSet) newInput;
-                       try {
-                               isScrollable = resultSet.getType() != ResultSet.TYPE_FORWARD_ONLY;
-                               columnCount = resultSet.getMetaData().getColumnCount();
-                               for (int i = 1; i <= columnCount; i++) {
-                                       columns.add(new JdbcColumn(i, resultSet.getMetaData()));
-                                       if (oldInput == null)// first time
-                                               addColumn(viewer, i - 1);
-                               }
-
-                               if (isScrollable) {
-                                       if (resultSet.next())
-                                               rowCount = 1;
-                                       viewer.setItemCount(rowCount);
-                               } else {
-                                       while (resultSet.next()) {
-                                               Object[] lst = new Object[columnCount];
-                                               for (int i = 1; i <= columnCount; i++) {
-                                                       lst[i - 1] = resultSet.getObject(i);
-                                                       buffer.add(lst);
-                                               }
-                                       }
-                                       viewer.setItemCount(buffer.size());
-                               }
-
-                       } catch (SQLException e) {
-                               throw new SlcException("Cannot configure JDBC column", e);
-                       }
-               }
-
-               protected void addColumn(TableViewer viewer, final int index) {
-                       TableViewerColumn col = new TableViewerColumn(viewer, SWT.NONE);
-                       col.getColumn().setWidth(100);
-                       col.getColumn().setText(columns.get(index).name);
-                       col.setLabelProvider(new ColumnLabelProvider() {
-                               @Override
-                               public String getText(Object element) {
-                                       Object obj = ((Object[]) element)[index];
-                                       if (obj == null)
-                                               return null;
-                                       return obj.toString();
-                               }
-                       });
-               }
-
-               public void updateElement(int index) {
-                       if (resultSet == null)
-                               return;
-
-                       try {
-                               if (isScrollable) {
-                                       resultSet.absolute(index + 1);
-                                       Object[] lst = new Object[columnCount];
-                                       for (int i = 1; i <= columnCount; i++) {
-                                               lst[i - 1] = resultSet.getObject(i);
-                                       }
-                                       viewer.replace(lst, index);
-                                       int itemCount = viewer.getTable().getItemCount();
-                                       if (index == (itemCount - 1) && resultSet.next())
-                                               viewer.setItemCount(itemCount + 1);
-                               } else {
-                                       viewer.replace(buffer.get(index), index);
-                               }
-                       } catch (Exception e) {
-                               throw new SlcException("Cannot update element", e);
-                       }
-               }
-       }
-
-       private class JdbcColumn {
-               // public final Integer index;
-               public final String name;
-
-               // public final Integer type;
-
-               public JdbcColumn(int index, ResultSetMetaData metaData)
-                               throws SQLException {
-                       // this.index = index;
-                       this.name = metaData.getColumnName(index);
-                       // this.type = metaData.getColumnType(index);
-
-               }
-       }
-
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/SshCommandTemplateEditor.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/SshCommandTemplateEditor.java
deleted file mode 100644 (file)
index 415e871..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.ui.composites.ActiveItemHeaderComposite;
-import org.argeo.slc.akb.ui.utils.Refreshable;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-
-/**
- * Display and edit a SSH Command Template ITEM
- */
-public class SshCommandTemplateEditor extends AkbItemTemplateEditor implements
-               Refreshable {
-
-       public final static String ID = AkbUiPlugin.PLUGIN_ID
-                       + ".sshCommandTemplateEditor";
-
-       private Text outputDisplay;
-
-       @Override
-       protected String getEditorId() {
-               return ID;
-       }
-
-       @Override
-       protected void populateTestPage(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-
-               ActiveItemHeaderComposite header = new ActiveItemHeaderComposite(
-                               parent, SWT.NONE, getToolkit(), managedForm, getEnvNode(),
-                               getAkbNode(), getAkbService());
-               header.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
-               outputDisplay = getToolkit().createText(parent, "", SWT.MULTI);
-               outputDisplay.setFont(new Font(parent.getDisplay(), "Monospaced", 10,
-                               SWT.NONE));
-               outputDisplay.setEditable(false);
-               outputDisplay
-                               .setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               forceRefresh(null);
-       }
-
-       public void forceRefresh(Object object) {
-               String output = getAkbService().executeCommand(getEnvNode(),
-                               getAkbNode());
-               if (AkbJcrUtils.checkNotEmptyString(output))
-                       outputDisplay.setText(output);
-               else 
-                       outputDisplay.setText("");
-       }
-
-       @Override
-       protected void populateBottomPart(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-               Group group = new Group(parent, SWT.NO_FOCUS);
-               getToolkit().adapt(group, false, false);
-               group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-               group.setLayout(new GridLayout(1, false));
-
-               // first line: Description
-               getToolkit().createLabel(group, "Enter below a valid SSH command");
-
-               // 2nd line: the query
-               final Text queryTxt = getToolkit().createText(group, "",
-                               SWT.BORDER | SWT.MULTI | SWT.WRAP);
-               GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-               queryTxt.setLayoutData(gd);
-
-               // Part Management
-               final AbstractFormPart part = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(queryTxt, getAkbNode(),
-                                               AkbNames.AKB_COMMAND_TEXT);
-                       }
-               };
-               // Listeners
-               AkbUiUtils.addTextModifyListener(queryTxt, getAkbNode(),
-                               AkbNames.AKB_COMMAND_TEXT, part);
-               managedForm.addPart(part);
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/SshFileTemplateEditor.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/SshFileTemplateEditor.java
deleted file mode 100644 (file)
index 57382a4..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.argeo.slc.akb.ui.editors;
-
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.ui.composites.ActiveItemHeaderComposite;
-import org.argeo.slc.akb.ui.utils.Refreshable;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.AbstractFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-
-/**
- * Display and edit a connection to a file on a distant accessible by SSH server
- */
-public class SshFileTemplateEditor extends AkbItemTemplateEditor implements
-               Refreshable {
-
-       public final static String ID = AkbUiPlugin.PLUGIN_ID
-                       + ".sshFileTemplateEditor";
-
-       private Text outputDisplay;
-
-       @Override
-       protected String getEditorId() {
-               return ID;
-       }
-
-       @Override
-       protected void populateTestPage(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-
-               ActiveItemHeaderComposite header = new ActiveItemHeaderComposite(
-                               parent, SWT.NONE, getToolkit(), managedForm, getEnvNode(),
-                               getAkbNode(), getAkbService());
-               header.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-
-               outputDisplay = getToolkit().createText(parent, "", SWT.MULTI);
-               outputDisplay.setFont(new Font(parent.getDisplay(), "Monospaced", 10,
-                               SWT.NONE));
-               outputDisplay.setEditable(false);
-               outputDisplay
-                               .setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-               forceRefresh(null);
-       }
-
-       public void forceRefresh(Object object) {
-               String output = getAkbService()
-                               .retrieveFile(getEnvNode(), getAkbNode());
-               if (AkbJcrUtils.checkNotEmptyString(output))
-                       outputDisplay.setText(output);
-               else 
-                       outputDisplay.setText("");
-       }
-
-       @Override
-       protected void populateBottomPart(Composite parent, IManagedForm managedForm) {
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
-               Group group = new Group(parent, SWT.NO_FOCUS);
-               getToolkit().adapt(group, false, false);
-               group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-               group.setLayout(new GridLayout(1, false));
-
-               // first line: Description
-               getToolkit().createLabel(group,
-                               "Enter below a valid path in the target server");
-
-               // 2nd line: the path
-               final Text pathTxt = getToolkit().createText(group, "",
-                               SWT.BORDER | SWT.SINGLE);
-               GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false);
-               pathTxt.setLayoutData(gd);
-
-               // Part Management
-               final AbstractFormPart part = new AbstractFormPart() {
-                       public void refresh() {
-                               super.refresh();
-                               // update display value
-                               AkbUiUtils.refreshFormTextWidget(pathTxt, getAkbNode(),
-                                               AkbNames.AKB_FILE_PATH);
-                       }
-               };
-               // Listeners
-               AkbUiUtils.addTextModifyListener(pathTxt, getAkbNode(),
-                               AkbNames.AKB_FILE_PATH, part);
-               managedForm.addPart(part);
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/ActiveEnvsTreeContentProvider.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/ActiveEnvsTreeContentProvider.java
deleted file mode 100644 (file)
index d15d510..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.argeo.slc.akb.ui.providers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbTypes;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Content provider for a tree of active AKB environments. Displays
- * <CODE>ActiveTreeItem</CODE> to be able to display subtrees of item without
- * duplicating the information from the corresponding template.
- */
-public class ActiveEnvsTreeContentProvider implements ITreeContentProvider {
-       // private final static Log log = LogFactory
-       // .getLog(ActiveEnvsTreeContentProvider.class);
-
-       /**
-        * @param parent
-        *            Pass base parent node as parameter
-        * 
-        */
-       public Object[] getElements(Object parent) {
-               if (parent instanceof Node)
-                       return initializeTree((Node) parent);
-               else
-                       return null;
-       }
-
-       private ActiveTreeItem[] initializeTree(Node activeEnvsParentNode) {
-               try {
-                       NodeIterator ni = activeEnvsParentNode.getNodes();
-                       List<ActiveTreeItem> envs = new ArrayList<ActiveTreeItem>();
-                       while (ni.hasNext()) {
-                               Node currNode = ni.nextNode();
-                               if (currNode.isNodeType(AkbTypes.AKB_ENV)) {
-                                       envs.add(new ActiveTreeItem(null, currNode, currNode));
-                               }
-                       }
-                       ActiveTreeItem[] envArr = envs.toArray(new ActiveTreeItem[envs
-                                       .size()]);
-                       return envArr;
-               } catch (RepositoryException re) {
-                       throw new AkbException("Error while initializing the "
-                                       + "tree of active environments.", re);
-               }
-       }
-
-       public Object getParent(Object child) {
-               return ((ActiveTreeItem) child).getParent();
-       }
-
-       public Object[] getChildren(Object parent) {
-               try {
-                       ActiveTreeItem currItem = (ActiveTreeItem) parent;
-                       Node parNode = currItem.getNode();
-                       Node envNode = currItem.getEnvironment();
-
-                       if (parNode.isNodeType(AkbTypes.AKB_ENV)) {
-                               Session session = parNode.getSession();
-                               if (parNode.hasProperty(AkbNames.AKB_ENV_TEMPLATE_PATH)
-                                               && session.nodeExists(parNode.getProperty(
-                                                               AkbNames.AKB_ENV_TEMPLATE_PATH).getString()))
-                                       parNode = session.getNode(parNode.getProperty(
-                                                       AkbNames.AKB_ENV_TEMPLATE_PATH).getString());
-                               else
-                                       return null;
-                       }
-
-                       NodeIterator ni = parNode.getNodes();
-                       List<ActiveTreeItem> children = new ArrayList<ActiveTreeItem>();
-                       while (ni.hasNext()) {
-                               Node currNode = ni.nextNode();
-                               if (!currNode.isNodeType(AkbTypes.AKB_CONNECTOR_FOLDER)) {
-                                       ActiveTreeItem currChild = new ActiveTreeItem(currItem,
-                                                       currNode, envNode);
-                                       children.add(currChild);
-                               }
-                       }
-                       return children.toArray();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Error while getting children nodes", e);
-               }
-       }
-
-       public boolean hasChildren(Object parent) {
-               try {
-                       ActiveTreeItem currItem = (ActiveTreeItem) parent;
-                       Node parNode = currItem.getNode();
-
-                       if (parNode.isNodeType(AkbTypes.AKB_ENV)) {
-                               Session session = parNode.getSession();
-                               if (parNode.hasProperty(AkbNames.AKB_ENV_TEMPLATE_PATH)
-                                               && session.nodeExists(parNode.getProperty(
-                                                               AkbNames.AKB_ENV_TEMPLATE_PATH).getString()))
-                                       parNode = session.getNode(parNode.getProperty(
-                                                       AkbNames.AKB_ENV_TEMPLATE_PATH).getString());
-                               else
-                                       return false;
-                       }
-
-                       return parNode.hasNodes();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Error while checking children nodes", e);
-               }
-       }
-
-       public void dispose() {
-               // FIXME implement if needed
-       }
-
-       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/ActiveTreeItem.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/ActiveTreeItem.java
deleted file mode 100644 (file)
index efa94b4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.argeo.slc.akb.ui.providers;
-
-import javax.jcr.Node;
-
-/**
- * Simply wraps a JCR AKB Node to be able to also store corresponding current
- * environment (active or template)
- */
-public class ActiveTreeItem {
-
-       private final ActiveTreeItem parent;
-       private final Node akbNode;
-       private final Node akbEnvironment;
-
-       public ActiveTreeItem(ActiveTreeItem parent, Node akbNode,
-                       Node akbEnvironment) {
-               this.parent = parent;
-               this.akbNode = akbNode;
-               this.akbEnvironment = akbEnvironment;
-       }
-
-       public Node getNode() {
-               return akbNode;
-       }
-
-       public Node getEnvironment() {
-               return akbEnvironment;
-       }
-
-       public ActiveTreeItem getParent() {
-               return parent;
-       }
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/AkbImageProvider.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/AkbImageProvider.java
deleted file mode 100644 (file)
index d25e719..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.argeo.slc.akb.ui.providers;
-
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.ui.AkbImages;
-import org.eclipse.swt.graphics.Image;
-
-public class AkbImageProvider {
-       public Image getImage(Object element) {
-               try {
-                       if (element instanceof ActiveTreeItem)
-                               element = ((ActiveTreeItem) element).getNode();
-
-                       if (element instanceof Node) {
-                               Node node = (Node) element;
-                               if (node.isNodeType(AkbTypes.AKB_ITEM_FOLDER))
-                                       return AkbImages.ITEM_FOLDER;
-                               else if (node.isNodeType(AkbTypes.AKB_SSH_CONNECTOR))
-                                       return AkbImages.SSH_CONNECTOR;
-                               else if (node.isNodeType(AkbTypes.AKB_SSH_COMMAND))
-                                       return AkbImages.SSH_COMMAND;
-                               else if (node.isNodeType(AkbTypes.AKB_SSH_FILE))
-                                       return AkbImages.SSH_FILE;
-                               else if (node.isNodeType(AkbTypes.AKB_JDBC_CONNECTOR))
-                                       return AkbImages.JDBC_CONNECTOR;
-                               else if (node.isNodeType(AkbTypes.AKB_JDBC_QUERY))
-                                       return AkbImages.JDBC_QUERY;
-                               else if (node.isNodeType(AkbTypes.AKB_ENV_TEMPLATE))
-                                       return AkbImages.TEMPLATE;
-                               else if (node.isNodeType(AkbTypes.AKB_ENV))
-                                       return AkbImages.ACTIVE_ENV;
-                               else if (node.isNodeType(AkbTypes.AKB_CONNECTOR_FOLDER))
-                                       return AkbImages.CONNECTOR_FOLDER;
-                               else if (node.isNodeType(AkbTypes.AKB_CONNECTOR_ALIAS))
-                                       return AkbImages.CONNECTOR_ALIAS;
-                               else if (node.isNodeType(AkbTypes.AKB_CONNECTOR))
-                                       return AkbImages.DEFAULT_CONNECTOR;
-                       }
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unexpected error while getting "
-                                       + "Custom node label", e);
-               }
-               return null;
-       }
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/AkbTreeLabelProvider.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/AkbTreeLabelProvider.java
deleted file mode 100644 (file)
index 0f3993f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.argeo.slc.akb.ui.providers;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-import javax.jcr.nodetype.NodeType;
-
-import org.argeo.eclipse.ui.TreeParent;
-import org.argeo.slc.akb.AkbException;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/** Basic label provider for an AKB tree */
-public class AkbTreeLabelProvider extends LabelProvider {
-       // private final static Log log = LogFactory
-       // .getLog(ResultTreeLabelProvider.class);
-
-       AkbImageProvider imageProvider = new AkbImageProvider();
-
-       @Override
-       public String getText(Object element) {
-               try {
-                       if (element instanceof ActiveTreeItem)
-                               element = ((ActiveTreeItem) element).getNode();
-
-                       if (element instanceof Node) {
-                               Node node = (Node) element;
-                               if (node.isNodeType(NodeType.MIX_TITLE))
-                                       return node.getProperty(Property.JCR_TITLE).getString();
-                               else
-                                       return node.getName();
-                       }
-                       if (element instanceof String)
-                               return (String) element;
-
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unexpected error while getting "
-                                       + "Custom node label", e);
-               }
-               return ((TreeParent) element).getName();
-       }
-
-       public Image getImage(Object element) {
-               return imageProvider.getImage(element);
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/TemplatesTreeContentProvider.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/providers/TemplatesTreeContentProvider.java
deleted file mode 100644 (file)
index 9fe2df1..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.argeo.slc.akb.ui.providers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.RepositoryException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbTypes;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/** Basic content provider for a tree of active AKB environments */
-public class TemplatesTreeContentProvider implements ITreeContentProvider {
-       private final static Log log = LogFactory
-                       .getLog(TemplatesTreeContentProvider.class);
-
-       /**
-        * @param parent
-        */
-       public Object[] getElements(Object parent) {
-               if (parent instanceof Object[])
-                       return (Object[]) parent;
-               else
-                       return null;
-       }
-
-       public Object getParent(Object child) {
-               try {
-                       Node node = (Node) child;
-
-                       // Manual sanity check to avoid exception when trying to refresh an
-                       // element that displays a node which has been removed
-                       try {
-                               String id = node.getIdentifier();
-                               node.getSession().getNodeByIdentifier(id);
-                       } catch (Exception e) {
-                               log.warn("Trying to refresh an unexisting node");
-                               return null;
-                       }
-
-                       if (node.getDepth() == 0)
-                               return null;
-                       else
-                               return node.getParent();
-
-               } catch (RepositoryException e) {
-                       throw new AkbException("Error while getting parent node", e);
-               }
-       }
-
-       public Object[] getChildren(Object parent) {
-               try {
-                       NodeIterator ni = ((Node) parent).getNodes();
-                       List<Node> nodes = new ArrayList<Node>();
-
-                       while (ni.hasNext()) {
-                               Node currNode = ni.nextNode();
-                               if (!currNode.isNodeType(AkbTypes.AKB_CONNECTOR_FOLDER))
-                                       nodes.add(currNode);
-                       }
-
-                       return nodes.toArray();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Error while getting children nodes", e);
-               }
-       }
-
-       public boolean hasChildren(Object parent) {
-               try {
-                       // refine this
-                       return ((Node) parent).hasNodes();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Error while checking children nodes", e);
-               }
-       }
-
-       public void dispose() {
-               // FIXME implement if needed
-       }
-
-       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-       }
-       
-       
-       
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/utils/AkbItemsComparator.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/utils/AkbItemsComparator.java
deleted file mode 100644 (file)
index bb45ff4..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.argeo.slc.akb.ui.utils;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.ui.providers.ActiveTreeItem;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-/** Enable specific sorting of the ResultTreeView */
-public class AkbItemsComparator extends ViewerComparator {
-
-       @Override
-       public int category(Object element) {
-               Node currNode = null;
-               if (element instanceof ActiveTreeItem)
-                       currNode = ((ActiveTreeItem) element).getNode();
-               else if (element instanceof Node)
-                       currNode = (Node) element;
-               else if (element instanceof String)
-                       // TODO why do we have strings
-                       return 10;
-               else
-                       throw new AkbException("Unsupported tree item element type "
-                                       + element);
-
-               try {
-                       if (currNode.isNodeType(AkbTypes.AKB_ITEM_FOLDER))
-                               // folder always first
-                               return 5;
-               } catch (RepositoryException e) {
-                       throw new AkbException("Cannot retrieve category for item", e);
-               }
-               return 10;
-       }
-
-       @Override
-       public int compare(Viewer viewer, Object e1, Object e2) {
-               int cat1 = category(e1);
-               int cat2 = category(e2);
-
-               if (cat1 != cat2) {
-                       return cat1 - cat2;
-               }
-
-               // TODO we only check on one item, types are not mixed for the time
-               // being
-               Node an = null;
-               Node bn = null;
-               if (e1 instanceof ActiveTreeItem) {
-                       an = ((ActiveTreeItem) e1).getNode();
-                       bn = ((ActiveTreeItem) e2).getNode();
-               } else if (e1 instanceof Node) {
-                       an = ((Node) e1);
-                       bn = ((Node) e2);
-               } else
-                       throw new AkbException("Unsupported tree item element type " + e1);
-
-               return super.compare(viewer, AkbJcrUtils.get(an, Property.JCR_TITLE),
-                               AkbJcrUtils.get(bn, Property.JCR_TITLE));
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/utils/Refreshable.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/utils/Refreshable.java
deleted file mode 100644 (file)
index f7c01da..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.argeo.slc.akb.ui.utils;
-
-/**
- * WorkbenchPart should implement this interface to enable refresh command to
- * refresh them
- */
-public interface Refreshable {
-
-       public void forceRefresh(Object object);
-
-}
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbDefaultView.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbDefaultView.java
deleted file mode 100644 (file)
index 03cfaba..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-package org.argeo.slc.akb.ui.views;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.jcr.Node;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.eclipse.ui.utils.CommandUtils;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.ui.AkbUiPlugin;
-import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;
-import org.argeo.slc.akb.ui.composites.AkbItemsTableComposite;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-
-/** Basic view that display a list of items with a quick search field. */
-public class AkbDefaultView extends ViewPart {
-       // private final static Log log = LogFactory.getLog(QuickSearchView.class);
-
-       public static final String ID = AkbUiPlugin.PLUGIN_ID + ".akbDefaultView";
-
-       /* DEPENDENCY INJECTION */
-       private Session session;
-
-       // This page widgets
-       private AkbItemsTableComposite userTableCmp;
-
-       @Override
-       public void createPartControl(Composite parent) {
-               GridLayout gl = new GridLayout();
-               gl.horizontalSpacing = gl.verticalSpacing = gl.marginWidth = 0;
-               parent.setLayout(gl);
-
-               // Create the composite that displays the list and a filter
-               AkbItemsTableComposite userTableCmp = new AkbItemsTableComposite(
-                               parent, SWT.NO_FOCUS, session);
-               userTableCmp.populate(true, false);
-               userTableCmp
-                               .setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-               // Configure
-               userTableCmp.getTableViewer().addDoubleClickListener(
-                               new ViewDoubleClickListener());
-               getViewSite().setSelectionProvider(userTableCmp.getTableViewer());
-
-               // // Filter
-               // Composite cmp = new Composite(parent, SWT.NO_FOCUS);
-               // cmp.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-               // createFilterPart(cmp);
-               //
-               // // Table
-               // cmp = new Composite(parent, SWT.NO_FOCUS);
-               // cmp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               // itemViewer = createListPart(cmp);
-               //
-               // // refreshFilteredList();
-       }
-
-       class ViewDoubleClickListener implements IDoubleClickListener {
-               public void doubleClick(DoubleClickEvent evt) {
-                       Object obj = ((IStructuredSelection) evt.getSelection())
-                                       .getFirstElement();
-                       try {
-                               if (obj instanceof Node) {
-                                       Node node = (Node) obj;
-                                       Node currEnv = AkbJcrUtils.getCurrentTemplate(node);
-
-                                       // Add Connector Alias
-                                       Map<String, String> params = new HashMap<String, String>();
-                                       params.put(OpenAkbNodeEditor.PARAM_NODE_JCR_ID,
-                                                       node.getIdentifier());
-                                       params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,
-                                                       currEnv.getIdentifier());
-
-                                       CommandUtils.callCommand(OpenAkbNodeEditor.ID, params);
-                               }
-                       } catch (RepositoryException e) {
-                               throw new AkbException("Cannot open " + obj, e);
-                       }
-               }
-       }
-
-       // private void createFilterPart(Composite parent) {
-       // parent.setLayout(new GridLayout());
-       // // Text Area for the filter
-       // filterTxt = new Text(parent, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH
-       // | SWT.ICON_CANCEL);
-       // filterTxt.setMessage(FILTER_HELP_MSG);
-       // filterTxt.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-       // filterTxt.addModifyListener(new ModifyListener() {
-       //
-       // public void modifyText(ModifyEvent event) {
-       // refreshFilteredList();
-       // }
-       // });
-       // }
-       //
-       // protected TableViewer createListPart(Composite parent) {
-       // TableViewer v = new TableViewer(parent);
-       //
-       // TableColumn singleColumn = new TableColumn(v.getTable(), SWT.V_SCROLL);
-       // TableColumnLayout tableColumnLayout = new TableColumnLayout();
-       // tableColumnLayout.setColumnData(singleColumn, new ColumnWeightData(85));
-       // parent.setLayout(tableColumnLayout);
-       //
-       // // Corresponding table & style
-       // Table table = v.getTable();
-       // table.setLinesVisible(true);
-       // table.setHeaderVisible(false);
-       //
-       // v.setContentProvider(new BasicNodeListContentProvider());
-       // v.addDoubleClickListener(peopleUiService
-       // .getNewNodeListDoubleClickListener(peopleService, null));
-       // return v;
-       // }
-
-       @Override
-       public void dispose() {
-               userTableCmp.dispose();
-               JcrUtils.logoutQuietly(session);
-               super.dispose();
-       }
-
-       @Override
-       public void setFocus() {
-       }
-
-       // protected void refreshFilteredList() {
-       // try {
-       // List<Node> persons = JcrUtils.nodeIteratorToList(doSearch(session,
-       // filterTxt.getText(), PeopleTypes.PEOPLE_PERSON,
-       // PeopleNames.PEOPLE_LAST_NAME,
-       // PeopleNames.PEOPLE_PRIMARY_EMAIL));
-       // personViewer.setInput(persons);
-       // } catch (RepositoryException e) {
-       // throw new PeopleException("Unable to list persons", e);
-       // }
-       // }
-       //
-       // /** Build repository request */
-       // private NodeIterator doSearch(Session session, String filter,
-       // String typeName, String orderProperty, String orderProperty2)
-       // throws RepositoryException {
-       // QueryManager queryManager = session.getWorkspace().getQueryManager();
-       // QueryObjectModelFactory factory = queryManager.getQOMFactory();
-       //
-       // Selector source = factory.selector(typeName, typeName);
-       //
-       // // no Default Constraint
-       // Constraint defaultC = null;
-       //
-       // // Parse the String
-       // String[] strs = filter.trim().split(" ");
-       // if (strs.length == 0) {
-       // // StaticOperand so = factory.literal(session.getValueFactory()
-       // // .createValue("*"));
-       // // defaultC = factory.fullTextSearch("selector", null, so);
-       // } else {
-       // for (String token : strs) {
-       // StaticOperand so = factory.literal(session.getValueFactory()
-       // .createValue("*" + token + "*"));
-       // Constraint currC = factory.fullTextSearch(
-       // source.getSelectorName(), null, so);
-       // if (defaultC == null)
-       // defaultC = currC;
-       // else
-       // defaultC = factory.and(defaultC, currC);
-       // }
-       // }
-       //
-       // Ordering order = null, order2 = null;
-       //
-       // if (orderProperty != null && !"".equals(orderProperty.trim()))
-       // order = factory.ascending(factory.lowerCase(factory.propertyValue(
-       // source.getSelectorName(), orderProperty)));
-       // if (orderProperty2 != null && !"".equals(orderProperty2.trim()))
-       // order2 = factory.ascending(factory.propertyValue(
-       // source.getSelectorName(), orderProperty2));
-       //
-       // QueryObjectModel query;
-       // if (order == null) {
-       // query = factory.createQuery(source, defaultC, null, null);
-       // } else {
-       // if (order2 == null)
-       // query = factory.createQuery(source, defaultC,
-       // new Ordering[] { order }, null);
-       // else
-       // query = factory.createQuery(source, defaultC, new Ordering[] {
-       // order, order2 }, null);
-       // }
-       // query.setLimit(ROW_LIMIT.longValue());
-       // QueryResult result = query.execute();
-       // return result.getNodes();
-       // }
-
-       /* DEPENDENCY INJECTION */
-       public void setRepository(Repository repository) {
-               try {
-                       session = repository.login();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable to initialize "
-                                       + "session for view " + ID, e);
-               }
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbTemplatesTreeView.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/AkbTemplatesTreeView.java
deleted file mode 100644 (file)
index 2686a48..0000000
+++ /dev/null
@@ -1,515 +0,0 @@
-/*\r
- * Copyright (C) 2007-2012 Argeo GmbH\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *         http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-package org.argeo.slc.akb.ui.views;\r
-\r
-import java.util.ArrayList;\r
-import java.util.HashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import javax.jcr.Node;\r
-import javax.jcr.NodeIterator;\r
-import javax.jcr.Repository;\r
-import javax.jcr.RepositoryException;\r
-import javax.jcr.Session;\r
-import javax.jcr.observation.Event;\r
-import javax.jcr.observation.EventListener;\r
-import javax.jcr.observation.ObservationManager;\r
-\r
-import org.argeo.eclipse.ui.jcr.AsyncUiEventListener;\r
-import org.argeo.eclipse.ui.utils.CommandUtils;\r
-import org.argeo.jcr.JcrUtils;\r
-import org.argeo.slc.akb.AkbException;\r
-import org.argeo.slc.akb.AkbNames;\r
-import org.argeo.slc.akb.AkbService;\r
-import org.argeo.slc.akb.AkbTypes;\r
-import org.argeo.slc.akb.ui.AkbUiPlugin;\r
-import org.argeo.slc.akb.ui.AkbUiUtils;\r
-import org.argeo.slc.akb.ui.commands.DeleteAkbNodes;\r
-import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;\r
-import org.argeo.slc.akb.ui.providers.AkbTreeLabelProvider;\r
-import org.argeo.slc.akb.ui.providers.TemplatesTreeContentProvider;\r
-import org.argeo.slc.akb.ui.utils.AkbItemsComparator;\r
-import org.argeo.slc.akb.ui.utils.Refreshable;\r
-import org.argeo.slc.akb.utils.AkbJcrUtils;\r
-import org.eclipse.jface.action.IContributionItem;\r
-import org.eclipse.jface.action.IMenuListener;\r
-import org.eclipse.jface.action.IMenuManager;\r
-import org.eclipse.jface.action.MenuManager;\r
-import org.eclipse.jface.viewers.DoubleClickEvent;\r
-import org.eclipse.jface.viewers.IDoubleClickListener;\r
-import org.eclipse.jface.viewers.IStructuredSelection;\r
-import org.eclipse.jface.viewers.TreeViewer;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.Menu;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.part.ViewPart;\r
-import org.eclipse.ui.services.IServiceLocator;\r
-\r
-/** AKB template tree view. */\r
-public class AkbTemplatesTreeView extends ViewPart implements Refreshable {\r
-       // private final static Log log =\r
-       // LogFactory.getLog(AkbTemplatesTreeView.class);\r
-\r
-       public final static String ID = AkbUiPlugin.PLUGIN_ID\r
-                       + ".akbTemplatesTreeView";\r
-\r
-       /* DEPENDENCY INJECTION */\r
-       private Session session;\r
-       private AkbService akbService;\r
-\r
-       // This page widgets\r
-       private TreeViewer envTreeViewer;\r
-\r
-       // Usefull business objects\r
-       private Node templatesParentNode;\r
-\r
-       // Observer\r
-       private EventListener akbNodesObserver = null;\r
-       private final static String[] observedNodeTypes = {\r
-                       AkbTypes.AKB_ENV_TEMPLATE, AkbTypes.AKB_CONNECTOR_ALIAS,\r
-                       AkbTypes.AKB_ITEM, AkbTypes.AKB_ITEM_FOLDER,\r
-                       AkbTypes.AKB_CONNECTOR_FOLDER };\r
-\r
-       private void initialize() {\r
-               try {\r
-                       templatesParentNode = session\r
-                                       .getNode(AkbNames.AKB_TEMPLATES_BASE_PATH);\r
-               } catch (RepositoryException e) {\r
-                       throw new AkbException("unable to initialize AKB Browser view", e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void createPartControl(Composite parent) {\r
-               initialize();\r
-\r
-               envTreeViewer = createTreeViewer(parent);\r
-               envTreeViewer.setInput(initializeTree());\r
-               envTreeViewer.setComparator(new AkbItemsComparator());\r
-       }\r
-\r
-       // The main tree viewer\r
-       protected TreeViewer createTreeViewer(Composite parent) {\r
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());\r
-               int style = SWT.BORDER | SWT.MULTI;\r
-\r
-               TreeViewer viewer = new TreeViewer(parent, style);\r
-               viewer.getTree().setLayoutData(\r
-                               new GridData(SWT.FILL, SWT.FILL, true, true));\r
-\r
-               viewer.setContentProvider(new TemplatesTreeContentProvider());\r
-               viewer.setLabelProvider(new AkbTreeLabelProvider());\r
-               viewer.addDoubleClickListener(new ViewDoubleClickListener());\r
-\r
-               // Add label provider with label decorator\r
-               // ResultTreeLabelProvider rtLblProvider = new\r
-               // ResultTreeLabelProvider();\r
-               // ILabelDecorator decorator = AkbUiPlugin.getDefault().getWorkbench()\r
-               // .getDecoratorManager().getLabelDecorator();\r
-               // viewer.setLabelProvider(new DecoratingLabelProvider(rtLblProvider,\r
-               // decorator));\r
-\r
-               getSite().setSelectionProvider(viewer);\r
-\r
-               // // add drag & drop support\r
-               // int operations = DND.DROP_COPY | DND.DROP_MOVE;\r
-               // Transfer[] tt = new Transfer[] { TextTransfer.getInstance() };\r
-               // viewer.addDragSupport(operations, tt, new ViewDragListener());\r
-               // viewer.addDropSupport(operations, tt, new ViewDropListener(viewer));\r
-\r
-               // add context menu\r
-               MenuManager menuManager = new MenuManager();\r
-               Menu menu = menuManager.createContextMenu(viewer.getTree());\r
-               menuManager.addMenuListener(new IMenuListener() {\r
-                       public void menuAboutToShow(IMenuManager manager) {\r
-                               contextMenuAboutToShow(manager);\r
-                       }\r
-               });\r
-               viewer.getTree().setMenu(menu);\r
-               menuManager.setRemoveAllWhenShown(true);\r
-\r
-               getSite().registerContextMenu(menuManager, viewer);\r
-\r
-               // Initialize observer\r
-               try {\r
-                       ObservationManager observationManager = session.getWorkspace()\r
-                                       .getObservationManager();\r
-\r
-                       akbNodesObserver = new AkbNodesObserver(viewer.getTree()\r
-                                       .getDisplay());\r
-                       observationManager.addEventListener(akbNodesObserver,\r
-                                       Event.NODE_ADDED | Event.NODE_REMOVED,\r
-                                       templatesParentNode.getPath(), true, null,\r
-                                       observedNodeTypes, false);\r
-               } catch (RepositoryException e) {\r
-                       throw new AkbException("Cannot register listeners", e);\r
-               }\r
-               return viewer;\r
-       }\r
-\r
-       @Override\r
-       public void setFocus() {\r
-       }\r
-\r
-       private Node[] initializeTree() {\r
-               try {\r
-                       NodeIterator ni = templatesParentNode.getNodes();\r
-                       List<Node> templates = new ArrayList<Node>();\r
-                       while (ni.hasNext()) {\r
-                               Node currNode = ni.nextNode();\r
-                               if (currNode.isNodeType(AkbTypes.AKB_ENV_TEMPLATE))\r
-                                       templates.add(currNode);\r
-                       }\r
-                       Node[] templateArr = templates.toArray(new Node[templates.size()]);\r
-                       return templateArr;\r
-               } catch (RepositoryException re) {\r
-                       throw new AkbException("Error while initializing templates Tree.",\r
-                                       re);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forceRefresh(Object object) {\r
-               envTreeViewer.setInput(initializeTree());\r
-       }\r
-\r
-       // ///////////////////////////\r
-       // CONTEXT MENU MANAGEMENT\r
-\r
-       /**\r
-        * Defines the commands that will pop up in the context menu.\r
-        **/\r
-       protected void contextMenuAboutToShow(IMenuManager menuManager) {\r
-               IWorkbenchWindow window = AkbUiPlugin.getDefault().getWorkbench()\r
-                               .getActiveWorkbenchWindow();\r
-               try {\r
-\r
-                       // Build conditions\r
-                       IStructuredSelection selection = (IStructuredSelection) envTreeViewer\r
-                                       .getSelection();\r
-\r
-                       Node selected = (Node) selection.getFirstElement();\r
-                       Node currEnv = null;\r
-\r
-                       boolean hasSelection = selected != null;\r
-\r
-                       if (hasSelection)\r
-                               currEnv = AkbJcrUtils.getCurrentTemplate(selected);\r
-\r
-                       boolean isTemplate = hasSelection ? selected\r
-                                       .isNodeType(AkbTypes.AKB_ENV_TEMPLATE) : false;\r
-                       boolean isParentItemsFolder = hasSelection ? selected\r
-                                       .isNodeType(AkbTypes.AKB_ITEM_FOLDER) : false;\r
-                       // boolean isParentConnectorsFolder = hasSelection ? selected\r
-                       // .isNodeType(AkbTypes.AKB_CONNECTOR_FOLDER) : false;\r
-                       boolean isDeletable = hasSelection ? true : false;\r
-\r
-                       // Add Connector Alias\r
-                       Map<String, String> params = new HashMap<String, String>();\r
-                       if (hasSelection && isTemplate) {\r
-                               params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID,\r
-                                               selected.getIdentifier());\r
-                               params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
-                                               currEnv.getIdentifier());\r
-                       }\r
-                       params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE,\r
-                                       AkbTypes.AKB_CONNECTOR_ALIAS);\r
-\r
-                       // Connector Alias submenu\r
-                       refreshAliasesSubmenu(menuManager, window, "menu.aliasesSubmenu",\r
-                                       "Add Connector Alias", isTemplate, params);\r
-\r
-                       // Item Submenu\r
-                       params = new HashMap<String, String>();\r
-                       if (hasSelection) {\r
-                               params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID,\r
-                                               selected.getIdentifier());\r
-                               params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
-                                               currEnv.getIdentifier());\r
-                       }\r
-                       refreshItemsSubmenu(menuManager, window, "menu.itemsSubmenu",\r
-                                       "Add Item", isParentItemsFolder || isTemplate, params);\r
-\r
-                       // Add Item Folder\r
-                       params = new HashMap<String, String>();\r
-                       if (hasSelection) {\r
-                               params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID,\r
-                                               selected.getIdentifier());\r
-                               params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
-                                               currEnv.getIdentifier());\r
-                       }\r
-                       params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE,\r
-                                       AkbTypes.AKB_ITEM_FOLDER);\r
-\r
-                       AkbUiUtils.refreshParameterizedCommand(menuManager, window,\r
-                                       "cmd.addItemFolder", OpenAkbNodeEditor.ID,\r
-                                       "Add item folder", null, isParentItemsFolder || isTemplate,\r
-                                       params);\r
-\r
-                       // Delete Item\r
-                       params = new HashMap<String, String>();\r
-                       if (hasSelection)\r
-                               params.put(DeleteAkbNodes.PARAM_NODE_JCR_ID,\r
-                                               selected.getIdentifier());\r
-                       AkbUiUtils.refreshParameterizedCommand(menuManager, window,\r
-                                       "cmd.deleteItem", DeleteAkbNodes.ID,\r
-                                       "Delete selected item(s)", null, isDeletable, params);\r
-\r
-                       // create template\r
-                       params = new HashMap<String, String>();\r
-                       params.put(OpenAkbNodeEditor.PARAM_PARENT_NODE_JCR_ID,\r
-                                       templatesParentNode.getIdentifier());\r
-                       params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE,\r
-                                       AkbTypes.AKB_ENV_TEMPLATE);\r
-                       AkbUiUtils.refreshParameterizedCommand(menuManager, window,\r
-                                       "cmd.createTemplate", OpenAkbNodeEditor.ID,\r
-                                       "Create new template...", null,\r
-                                       !hasSelection || isTemplate, params);\r
-\r
-               } catch (RepositoryException re) {\r
-                       throw new AkbException("Error while refreshing context menu", re);\r
-               }\r
-       }\r
-\r
-       /**\r
-        * \r
-        * refreshes submenu with various connector types\r
-        * \r
-        * @param menuManager\r
-        * @param locator\r
-        * @param itemId\r
-        * @param label\r
-        * @param isVisible\r
-        * @param params\r
-        */\r
-       private void refreshItemsSubmenu(IMenuManager menuManager,\r
-                       IServiceLocator locator, String itemId, String label,\r
-                       boolean isVisible, Map<String, String> params) {\r
-\r
-               // clean\r
-               IContributionItem ici = menuManager.find(itemId);\r
-               if (ici != null)\r
-                       menuManager.remove(ici);\r
-\r
-               MenuManager subMenu = new MenuManager(label, itemId);\r
-\r
-               // JDBC Query\r
-               Map<String, String> tmpParams = new HashMap<String, String>();\r
-               tmpParams.putAll(params);\r
-               tmpParams.put(OpenAkbNodeEditor.PARAM_NODE_TYPE,\r
-                               AkbTypes.AKB_JDBC_QUERY);\r
-               String currItemId = "cmd.createJDBCQuery";\r
-               IContributionItem currItem = subMenu.find(currItemId);\r
-               if (currItem != null)\r
-                       subMenu.remove(currItem);\r
-               subMenu.add(AkbUiUtils.createContributionItem(menuManager, locator,\r
-                               currItemId, OpenAkbNodeEditor.ID, "JDBC Query", null, tmpParams));\r
-\r
-               // SSH COMMAND\r
-               tmpParams = new HashMap<String, String>();\r
-               tmpParams.putAll(params);\r
-               tmpParams.put(OpenAkbNodeEditor.PARAM_NODE_TYPE,\r
-                               AkbTypes.AKB_SSH_COMMAND);\r
-               currItemId = "cmd.createSSHCommand";\r
-               currItem = subMenu.find(currItemId);\r
-               if (currItem != null)\r
-                       subMenu.remove(currItem);\r
-               subMenu.add(AkbUiUtils.createContributionItem(menuManager, locator,\r
-                               currItemId, OpenAkbNodeEditor.ID, "SSH Command", null,\r
-                               tmpParams));\r
-\r
-               // SSH FILE\r
-               tmpParams = new HashMap<String, String>();\r
-               tmpParams.putAll(params);\r
-               tmpParams.put(OpenAkbNodeEditor.PARAM_NODE_TYPE, AkbTypes.AKB_SSH_FILE);\r
-               currItemId = "cmd.createSSHFile";\r
-               currItem = subMenu.find(currItemId);\r
-               if (currItem != null)\r
-                       subMenu.remove(currItem);\r
-               subMenu.add(AkbUiUtils.createContributionItem(menuManager, locator,\r
-                               currItemId, OpenAkbNodeEditor.ID, "SSH File", null, tmpParams));\r
-\r
-               // refresh\r
-               menuManager.add(subMenu);\r
-               subMenu.setVisible(isVisible);\r
-       }\r
-\r
-       /**\r
-        * \r
-        * refreshes submenu with various connector types\r
-        * \r
-        * @param menuManager\r
-        * @param locator\r
-        * @param itemId\r
-        * @param label\r
-        * @param isVisible\r
-        * @param params\r
-        */\r
-       private void refreshAliasesSubmenu(IMenuManager menuManager,\r
-                       IServiceLocator locator, String itemId, String label,\r
-                       boolean isVisible, Map<String, String> params) {\r
-\r
-               // clean\r
-               IContributionItem ici = menuManager.find(itemId);\r
-               if (ici != null)\r
-                       menuManager.remove(ici);\r
-\r
-               // TODO use dynamic contribution to dynamically retrieve specific\r
-               // connector types\r
-               // CompoundContributionItem comConI = new MyCompoundCI(menuManager,\r
-               // locator, itemId);\r
-               MenuManager subMenu = new MenuManager(label, itemId);\r
-\r
-               // JDBC\r
-               Map<String, String> tmpParams = new HashMap<String, String>();\r
-               tmpParams.putAll(params);\r
-               tmpParams.put(OpenAkbNodeEditor.PARAM_NODE_SUBTYPE,\r
-                               AkbTypes.AKB_JDBC_CONNECTOR);\r
-               String currItemId = "cmd.createJDBCAlias";\r
-               IContributionItem currItem = subMenu.find(currItemId);\r
-               if (currItem != null)\r
-                       subMenu.remove(currItem);\r
-               subMenu.add(AkbUiUtils.createContributionItem(menuManager, locator,\r
-                               currItemId, OpenAkbNodeEditor.ID, "JDBC", null, tmpParams));\r
-\r
-               // SSH\r
-               tmpParams = new HashMap<String, String>();\r
-               tmpParams.putAll(params);\r
-               tmpParams.put(OpenAkbNodeEditor.PARAM_NODE_SUBTYPE,\r
-                               AkbTypes.AKB_SSH_CONNECTOR);\r
-               currItemId = "cmd.createSSHAlias";\r
-               currItem = subMenu.find(currItemId);\r
-               if (currItem != null)\r
-                       subMenu.remove(currItem);\r
-               subMenu.add(AkbUiUtils.createContributionItem(menuManager, locator,\r
-                               currItemId, OpenAkbNodeEditor.ID, "SSH", null, tmpParams));\r
-\r
-               // refresh\r
-               menuManager.add(subMenu);\r
-               subMenu.setVisible(isVisible);\r
-       }\r
-\r
-       // private class MyCompoundCI extends CompoundContributionItem {\r
-       // private IMenuManager menuManager;\r
-       // private IServiceLocator locator;\r
-       //\r
-       // public MyCompoundCI(IMenuManager menuManager, IServiceLocator locator,\r
-       // String itemId) {\r
-       // super(itemId);\r
-       // this.menuManager = menuManager;\r
-       // this.locator = locator;\r
-       // }\r
-       //\r
-       // @Override\r
-       // protected IContributionItem[] getContributionItems() {\r
-       //\r
-       // CommandContributionItem[] submenu = new CommandContributionItem[2];\r
-       // submenu[0] = createContributionItem(menuManager, locator, "uid.1",\r
-       // OpenAkbNodeEditor.ID, "test1" + System.currentTimeMillis(),\r
-       // null, null);\r
-       // submenu[1] = createContributionItem(menuManager, locator, "uid.2",\r
-       // OpenAkbNodeEditor.ID, "test2", null, null);\r
-       // return submenu;\r
-       // }\r
-       // }\r
-\r
-       /* INNER CLASSES */\r
-       private class AkbNodesObserver extends AsyncUiEventListener {\r
-\r
-               public AkbNodesObserver(Display display) {\r
-                       super(display);\r
-               }\r
-\r
-               @Override\r
-               protected Boolean willProcessInUiThread(List<Event> events)\r
-                               throws RepositoryException {\r
-                       // unfiltered for the time being\r
-                       return true;\r
-               }\r
-\r
-               protected void onEventInUiThread(List<Event> events)\r
-                               throws RepositoryException {\r
-                       boolean fullRefresh = false;\r
-\r
-                       eventLoop: for (Event event : events) {\r
-                               String currPath = event.getPath();\r
-                               if (session.nodeExists(currPath)) {\r
-                                       Node node = session.getNode(currPath);\r
-                                       if (node.isNodeType(AkbTypes.AKB_ENV_TEMPLATE)) {\r
-                                               fullRefresh = true;\r
-                                               break eventLoop;\r
-                                       }\r
-                               }\r
-                       }\r
-\r
-                       Object[] visibles = envTreeViewer.getExpandedElements();\r
-                       if (fullRefresh)\r
-                               envTreeViewer.setInput(initializeTree());\r
-                       else\r
-                               envTreeViewer.refresh();\r
-\r
-                       envTreeViewer.setExpandedElements(visibles);\r
-               }\r
-       }\r
-\r
-       class ViewDoubleClickListener implements IDoubleClickListener {\r
-               public void doubleClick(DoubleClickEvent evt) {\r
-                       Object obj = ((IStructuredSelection) evt.getSelection())\r
-                                       .getFirstElement();\r
-                       try {\r
-                               if (obj instanceof Node) {\r
-                                       Node node = (Node) obj;\r
-                                       Node currEnv = AkbJcrUtils.getCurrentTemplate(node);\r
-\r
-                                       // Add Connector Alias\r
-                                       Map<String, String> params = new HashMap<String, String>();\r
-                                       params.put(OpenAkbNodeEditor.PARAM_NODE_JCR_ID,\r
-                                                       node.getIdentifier());\r
-                                       params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
-                                                       currEnv.getIdentifier());\r
-\r
-                                       CommandUtils.callCommand(OpenAkbNodeEditor.ID, params);\r
-                               }\r
-                       } catch (RepositoryException e) {\r
-                               throw new AkbException("Cannot open " + obj, e);\r
-                       }\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void dispose() {\r
-               JcrUtils.logoutQuietly(session);\r
-               super.dispose();\r
-       }\r
-\r
-       /* DEPENDENCY INJECTION */\r
-       public void setRepository(Repository repository) {\r
-               try {\r
-                       session = repository.login();\r
-               } catch (RepositoryException e) {\r
-                       throw new AkbException("unable to log in for " + ID + " view");\r
-               }\r
-       }\r
-\r
-       public void setAkbService(AkbService akbService) {\r
-               this.akbService = akbService;\r
-\r
-       }\r
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/EnvironmentsTreeView.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/views/EnvironmentsTreeView.java
deleted file mode 100644 (file)
index 63e3982..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-package org.argeo.slc.akb.ui.views;\r
-\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import javax.jcr.Node;\r
-import javax.jcr.Repository;\r
-import javax.jcr.RepositoryException;\r
-import javax.jcr.Session;\r
-\r
-import org.argeo.eclipse.ui.utils.CommandUtils;\r
-import org.argeo.jcr.JcrUtils;\r
-import org.argeo.slc.akb.AkbException;\r
-import org.argeo.slc.akb.AkbNames;\r
-import org.argeo.slc.akb.AkbService;\r
-import org.argeo.slc.akb.AkbTypes;\r
-import org.argeo.slc.akb.ui.AkbUiPlugin;\r
-import org.argeo.slc.akb.ui.AkbUiUtils;\r
-import org.argeo.slc.akb.ui.commands.CreateAkbNode;\r
-import org.argeo.slc.akb.ui.commands.DeleteAkbNodes;\r
-import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;\r
-import org.argeo.slc.akb.ui.providers.ActiveEnvsTreeContentProvider;\r
-import org.argeo.slc.akb.ui.providers.ActiveTreeItem;\r
-import org.argeo.slc.akb.ui.providers.AkbTreeLabelProvider;\r
-import org.argeo.slc.akb.ui.utils.AkbItemsComparator;\r
-import org.argeo.slc.akb.ui.utils.Refreshable;\r
-import org.eclipse.jface.action.IMenuListener;\r
-import org.eclipse.jface.action.IMenuManager;\r
-import org.eclipse.jface.action.MenuManager;\r
-import org.eclipse.jface.viewers.DoubleClickEvent;\r
-import org.eclipse.jface.viewers.IDoubleClickListener;\r
-import org.eclipse.jface.viewers.IStructuredSelection;\r
-import org.eclipse.jface.viewers.TreeViewer;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Menu;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.part.ViewPart;\r
-\r
-/** AKB Active environment tree view. */\r
-public class EnvironmentsTreeView extends ViewPart implements Refreshable {\r
-\r
-       public final static String ID = AkbUiPlugin.PLUGIN_ID\r
-                       + ".environmentsTreeView";\r
-\r
-       /* DEPENDENCY INJECTION */\r
-       private Session session;\r
-       private AkbService akbService;\r
-\r
-       // This page widgets\r
-       private TreeViewer envTreeViewer;\r
-\r
-       // Usefull business objects\r
-       private Node activeEnvsParentNode;\r
-\r
-       private void initialize() {\r
-               try {\r
-                       activeEnvsParentNode = session\r
-                                       .getNode(AkbNames.AKB_ENVIRONMENTS_BASE_PATH);\r
-               } catch (RepositoryException e) {\r
-                       throw new AkbException("unable to initialize AKB Browser view", e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void createPartControl(Composite parent) {\r
-               initialize();\r
-               envTreeViewer = createTreeViewer(parent);\r
-               envTreeViewer.setInput(activeEnvsParentNode);\r
-               envTreeViewer.setComparator(new AkbItemsComparator());\r
-       }\r
-\r
-       // The main tree viewer\r
-       protected TreeViewer createTreeViewer(Composite parent) {\r
-               parent.setLayout(AkbUiUtils.gridLayoutNoBorder());\r
-               int style = SWT.BORDER | SWT.MULTI;\r
-\r
-               TreeViewer viewer = new TreeViewer(parent, style);\r
-               viewer.getTree().setLayoutData(\r
-                               new GridData(SWT.FILL, SWT.FILL, true, true));\r
-\r
-               viewer.setContentProvider(new ActiveEnvsTreeContentProvider());\r
-               viewer.setLabelProvider(new AkbTreeLabelProvider());\r
-               viewer.addDoubleClickListener(new ViewDoubleClickListener());\r
-\r
-               getSite().setSelectionProvider(viewer);\r
-\r
-               // context menu\r
-               MenuManager menuManager = new MenuManager();\r
-               Menu menu = menuManager.createContextMenu(viewer.getTree());\r
-               menuManager.addMenuListener(new IMenuListener() {\r
-                       public void menuAboutToShow(IMenuManager manager) {\r
-                               contextMenuAboutToShow(manager);\r
-                       }\r
-               });\r
-               viewer.getTree().setMenu(menu);\r
-               menuManager.setRemoveAllWhenShown(true);\r
-               getSite().registerContextMenu(menuManager, viewer);\r
-\r
-               return viewer;\r
-       }\r
-\r
-       // ////////////////////\r
-       // / LIFE CYCLE\r
-\r
-       @Override\r
-       public void forceRefresh(Object object) {\r
-               envTreeViewer.setInput(activeEnvsParentNode);\r
-       }\r
-\r
-       @Override\r
-       public void setFocus() {\r
-       }\r
-\r
-       @Override\r
-       public void dispose() {\r
-               JcrUtils.logoutQuietly(session);\r
-               super.dispose();\r
-       }\r
-\r
-       // ///////////////////////////\r
-       // CONTEXT MENU MANAGEMENT\r
-       /**\r
-        * Defines the commands that will pop up in the context menu.\r
-        **/\r
-       protected void contextMenuAboutToShow(IMenuManager menuManager) {\r
-               IWorkbenchWindow window = AkbUiPlugin.getDefault().getWorkbench()\r
-                               .getActiveWorkbenchWindow();\r
-               try {\r
-                       // Build conditions\r
-                       IStructuredSelection selection = (IStructuredSelection) envTreeViewer\r
-                                       .getSelection();\r
-\r
-                       ActiveTreeItem item = (ActiveTreeItem) selection.getFirstElement();\r
-\r
-                       boolean hasSelection = item != null;\r
-                       Node selected = null, currEnv = null;\r
-\r
-                       if (hasSelection) {\r
-                               selected = item.getNode();\r
-                               currEnv = item.getEnvironment();\r
-                       }\r
-                       boolean isEnv = hasSelection ? selected\r
-                                       .isNodeType(AkbTypes.AKB_ENV) : false;\r
-                       boolean isDeletable = hasSelection ? isEnv : false;\r
-                       Map<String, String> params = new HashMap<String, String>();\r
-\r
-                       // Delete Item\r
-                       params = new HashMap<String, String>();\r
-                       if (hasSelection)\r
-                               params.put(DeleteAkbNodes.PARAM_NODE_JCR_ID,\r
-                                               selected.getIdentifier());\r
-                       AkbUiUtils.refreshParameterizedCommand(menuManager, window,\r
-                                       "cmd.deleteItem", DeleteAkbNodes.ID,\r
-                                       "Delete selected active environment", null, isDeletable,\r
-                                       params);\r
-\r
-                       // create template\r
-                       params = new HashMap<String, String>();\r
-                       params.put(OpenAkbNodeEditor.PARAM_NODE_TYPE, AkbTypes.AKB_ENV);\r
-                       AkbUiUtils.refreshParameterizedCommand(menuManager, window,\r
-                                       "cmd.instanciateEnv", CreateAkbNode.ID,\r
-                                       "Create new environment instance", null, !hasSelection\r
-                                                       || isEnv, params);\r
-\r
-               } catch (RepositoryException re) {\r
-                       throw new AkbException("Error while refreshing context menu", re);\r
-               }\r
-       }\r
-\r
-       /* INNER CLASSES */\r
-       class ViewDoubleClickListener implements IDoubleClickListener {\r
-               public void doubleClick(DoubleClickEvent evt) {\r
-                       Object obj = ((IStructuredSelection) evt.getSelection())\r
-                                       .getFirstElement();\r
-                       try {\r
-                               if (obj instanceof ActiveTreeItem) {\r
-                                       ActiveTreeItem currItem = (ActiveTreeItem) obj;\r
-                                       Node node = currItem.getNode();\r
-                                       Node currEnv = currItem.getEnvironment();\r
-                                       Map<String, String> params = new HashMap<String, String>();\r
-                                       params.put(OpenAkbNodeEditor.PARAM_NODE_JCR_ID,\r
-                                                       node.getIdentifier());\r
-                                       params.put(OpenAkbNodeEditor.PARAM_CURR_ENV_JCR_ID,\r
-                                                       currEnv.getIdentifier());\r
-                                       CommandUtils.callCommand(OpenAkbNodeEditor.ID, params);\r
-                               }\r
-                       } catch (RepositoryException e) {\r
-                               throw new AkbException("Cannot open " + obj, e);\r
-                       }\r
-               }\r
-       }\r
-\r
-       /* DEPENDENCY INJECTION */\r
-       public void setRepository(Repository repository) {\r
-               try {\r
-                       session = repository.login();\r
-               } catch (RepositoryException e) {\r
-                       throw new AkbException("unable to log in for " + ID + " view");\r
-               }\r
-       }\r
-\r
-       public void setAkbService(AkbService akbService) {\r
-               this.akbService = akbService;\r
-\r
-       }\r
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/wizards/ActiveConnectorWizard.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/wizards/ActiveConnectorWizard.java
deleted file mode 100644 (file)
index 0867a68..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-package org.argeo.slc.akb.ui.wizards;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-
-import org.argeo.eclipse.ui.ErrorFeedback;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.ui.AkbUiUtils;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/** Creates or edit a connector instance */
-public class ActiveConnectorWizard extends Wizard {
-
-       // private Session session;
-       private AkbService akbService;
-       private Node activeConnector;
-       // private Node createdNode;
-
-       // pages
-       private EditConnectorPage editConnectorPage;
-
-       public ActiveConnectorWizard(AkbService akbService, Node activeConnector) {
-               this.akbService = akbService;
-               this.activeConnector = activeConnector;
-       }
-
-       @Override
-       public void addPages() {
-               editConnectorPage = new EditConnectorPage();
-               addPage(editConnectorPage);
-       }
-
-       @Override
-       public boolean performFinish() {
-               if (!canFinish())
-                       return false;
-               doUpdate();
-               return true;
-       }
-
-       private void doUpdate() {
-               try {
-                       boolean changed = false;
-                       changed |= AkbUiUtils.setJcrProperty(activeConnector,
-                                       AkbNames.AKB_CONNECTOR_URL, PropertyType.STRING,
-                                       editConnectorPage.getUrl());
-                       changed |= AkbUiUtils.setJcrProperty(activeConnector,
-                                       AkbNames.AKB_CONNECTOR_USER, PropertyType.STRING,
-                                       editConnectorPage.getUser());
-                       if (changed)
-                               activeConnector.getSession().save();
-                       // return changed;
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to update active connector", re);
-               }
-       }
-
-       private boolean doTest() {
-               boolean testSuccesfull;
-               try {
-                       testSuccesfull = akbService.testConnector(activeConnector);
-               } catch (Exception e1) {
-                       testSuccesfull = false;
-                       ErrorFeedback.show("Cannot test connection", e1);
-               }
-               String name = AkbJcrUtils.get(activeConnector, Property.JCR_TITLE);
-               String url = AkbJcrUtils.get(activeConnector,
-                               AkbNames.AKB_CONNECTOR_URL);
-               String msg = " to " + name + " (" + url + ")";
-               Shell shell = ActiveConnectorWizard.this.getShell();
-               if (testSuccesfull) {
-                       MessageDialog.openInformation(shell, "Test successful",
-                                       "Successfully connected " + msg);
-               } else
-                       MessageDialog.openError(shell, "Test failure", "Unable to connect"
-                                       + msg);
-               return testSuccesfull;
-       }
-
-       public boolean canFinish() {
-               if (AkbJcrUtils.isEmptyString(editConnectorPage.getUrl())
-                               || AkbJcrUtils.isEmptyString(editConnectorPage.getUser()))
-                       return false;
-               else
-                       return true;
-       }
-
-       // //////////////////////
-       // Pages definition
-       /**
-        * Displays a combo box that enables user to choose which action to perform
-        */
-       private class EditConnectorPage extends WizardPage {
-               private Text urlTxt;
-               private Text userTxt;
-
-               public EditConnectorPage() {
-                       super("Edit connector");
-                       setTitle("Edit connector");
-                       setDescription("Edit or create an active connector");
-               }
-
-               @Override
-               public void createControl(Composite parent) {
-                       Composite container = new Composite(parent, SWT.NO_FOCUS);
-                       GridLayout gl = new GridLayout(2, false);
-                       container.setLayout(gl);
-
-                       new Label(container, NONE).setText("URL");
-                       urlTxt = new Text(container, SWT.NONE);
-                       urlTxt.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-                       AkbUiUtils.refreshFormTextWidget(urlTxt, activeConnector,
-                                       AkbNames.AKB_CONNECTOR_URL);
-                       urlTxt.addModifyListener(new ModifyListener() {
-                               @Override
-                               public void modifyText(ModifyEvent e) {
-                                       // TODO implement here name validation.
-                                       getWizard().getContainer().updateButtons();
-                               }
-                       });
-
-                       new Label(container, NONE).setText("User");
-                       userTxt = new Text(container, SWT.NONE);
-                       userTxt.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-                       AkbUiUtils.refreshFormTextWidget(userTxt, activeConnector,
-                                       AkbNames.AKB_CONNECTOR_USER);
-                       userTxt.addModifyListener(new ModifyListener() {
-                               @Override
-                               public void modifyText(ModifyEvent e) {
-                                       // TODO implement here name validation.
-                                       getWizard().getContainer().updateButtons();
-                               }
-                       });
-
-                       new Label(container, SWT.SEPARATOR | SWT.SHADOW_OUT
-                                       | SWT.HORIZONTAL).setLayoutData(new GridData(SWT.FILL,
-                                       SWT.FILL, false, false, 2, 1));
-
-                       Link testBtn = new Link(container, SWT.NONE);
-                       testBtn.setText("<a>Save and test</a>");
-
-                       testBtn.addSelectionListener(new SelectionAdapter() {
-                               @Override
-                               public void widgetSelected(SelectionEvent e) {
-                                       doUpdate();
-                                       doTest();
-                               }
-                       });
-
-                       setControl(container);
-               }
-
-               protected String getUrl() {
-                       return
-                       // String url =
-                       urlTxt.getText();
-                       // if (AkbJcrUtils.isEmptyString(url))
-                       // return null;
-                       // else
-                       // return url;
-               }
-
-               protected String getUser() {
-                       return userTxt.getText();
-               }
-       }
-}
\ No newline at end of file
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/wizards/CreateEnvInstanceWizard.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/wizards/CreateEnvInstanceWizard.java
deleted file mode 100644 (file)
index 1b84266..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-package org.argeo.slc.akb.ui.wizards;
-
-import java.util.List;
-
-import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/** Creates a new active instance of an AKB env template */
-public class CreateEnvInstanceWizard extends Wizard {
-       // private final static Log log = LogFactory
-       // .getLog(CreateEnvInstanceWizard.class);
-
-       private Session session;
-       private AkbService akbService;
-       private Node createdNode;
-
-       // pages
-       private ChooseTemplatePage chooseTemplatePage;
-
-       public CreateEnvInstanceWizard(AkbService akbService, Session session) {
-               this.akbService = akbService;
-               this.session = session;
-       }
-
-       @Override
-       public void addPages() {
-               chooseTemplatePage = new ChooseTemplatePage();
-               addPage(chooseTemplatePage);
-       }
-
-       public Node getCreatedNode() {
-               return createdNode;
-       }
-
-       @Override
-       public boolean performFinish() {
-               if (!canFinish())
-                       return false;
-               try {
-                       createdNode = akbService.createActiveEnv(
-                                       chooseTemplatePage.getTemplate(),
-                                       chooseTemplatePage.getActiveEnvName(),
-                                       chooseTemplatePage.getUseDefaultConnectors());
-
-                       return true;
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to create environment instance", re);
-               }
-       }
-
-       public boolean canFinish() {
-               if (chooseTemplatePage.getActiveEnvName() != null
-                               && chooseTemplatePage.getTemplate() != null)
-                       return true;
-               else
-                       return false;
-       }
-
-       // //////////////////////
-       // Pages definition
-       /**
-        * Displays a combo box that enables user to choose which action to perform
-        */
-       private class ChooseTemplatePage extends WizardPage {
-               private Text valueTxt;
-               private Combo chooseTemplateCmb;
-               private Button useDefaultConnChk;
-
-               public ChooseTemplatePage() {
-                       super("Choose template");
-                       setTitle("Choose template.");
-                       setDescription("Define the new instance parameters");
-               }
-
-               @Override
-               public void createControl(Composite parent) {
-                       Composite container = new Composite(parent, SWT.NO_FOCUS);
-                       GridLayout gl = new GridLayout(2, false);
-                       container.setLayout(gl);
-
-                       new Label(container, NONE).setText("Name");
-                       valueTxt = new Text(container, SWT.NONE);
-                       valueTxt.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-                       valueTxt.addModifyListener(new ModifyListener() {
-                               @Override
-                               public void modifyText(ModifyEvent e) {
-                                       // TODO implement here name validation.
-                                       getWizard().getContainer().updateButtons();
-                               }
-                       });
-
-                       new Label(container, NONE).setText("Parent template");
-                       chooseTemplateCmb = new Combo(container, SWT.NO_FOCUS);
-                       chooseTemplateCmb.setItems(getTemplates());
-                       chooseTemplateCmb.setLayoutData(new GridData(SWT.FILL, SWT.TOP,
-                                       true, false));
-
-                       chooseTemplateCmb.addModifyListener(new ModifyListener() {
-                               @Override
-                               public void modifyText(ModifyEvent e) {
-                                       getWizard().getContainer().updateButtons();
-                               }
-                       });
-
-                       new Label(container, SWT.SEPARATOR | SWT.SHADOW_OUT
-                                       | SWT.HORIZONTAL).setLayoutData(new GridData(SWT.FILL,
-                                       SWT.FILL, false, false, 3, 1));
-
-                       useDefaultConnChk = new Button(container, SWT.CHECK);
-                       useDefaultConnChk.setText("Import default connectors");
-                       useDefaultConnChk.setSelection(true);
-
-                       setControl(container);
-               }
-
-               private String[] getTemplates() {
-                       List<Node> templates = AkbJcrUtils.getDefinedTemplate(session);
-                       String[] values = new String[templates.size()];
-                       int i = 0;
-                       for (Node node : templates) {
-                               values[i++] = AkbJcrUtils.get(node, Property.JCR_TITLE);
-                       }
-                       return values;
-               }
-
-               protected String getActiveEnvName() {
-                       return AkbJcrUtils.isEmptyString(valueTxt.getText()) ? null
-                                       : valueTxt.getText();
-               }
-
-               protected Node getTemplate() {
-                       int index = chooseTemplateCmb.getSelectionIndex();
-                       if (index >= 0) {
-                               return AkbJcrUtils.getTemplateByName(session,
-                                               chooseTemplateCmb.getItem(index));
-                       } else
-                               return null;
-               }
-
-               protected boolean getUseDefaultConnectors() {
-                       return useDefaultConnChk.getSelection();
-               }
-       }
-}
\ No newline at end of file
diff --git a/runtime/org.argeo.slc.akb/.classpath b/runtime/org.argeo.slc.akb/.classpath
deleted file mode 100644 (file)
index 0611249..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="src" path="src/main/java" />
-       <classpathentry kind="src" path="src/main/resources" />
-       <classpathentry kind="con"
-               path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" />
-       <classpathentry kind="con"
-               path="org.eclipse.pde.core.requiredPlugins" />
-       <classpathentry kind="output" path="target/classes" />
-</classpath>
\ No newline at end of file
diff --git a/runtime/org.argeo.slc.akb/.project b/runtime/org.argeo.slc.akb/.project
deleted file mode 100644 (file)
index d5cad46..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>org.argeo.slc.akb</name>
-       <comment></comment>
-       <projects>
-               <project>org.argeo.connect.people</project>
-       </projects>
-               <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-       </natures>
-</projectDescription>
diff --git a/runtime/org.argeo.slc.akb/build.properties b/runtime/org.argeo.slc.akb/build.properties
deleted file mode 100644 (file)
index f700a65..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/main/java/,\
-           src/main/resources,
-          
-output.. = target/classes/
-bin.includes = META-INF/,\
\ No newline at end of file
diff --git a/runtime/org.argeo.slc.akb/pom.xml b/runtime/org.argeo.slc.akb/pom.xml
deleted file mode 100644 (file)
index f6e27e7..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.argeo.slc</groupId>
-               <version>1.1.15-SNAPSHOT</version>
-               <artifactId>runtime</artifactId>
-               <relativePath>..</relativePath>
-       </parent>
-       <artifactId>org.argeo.slc.akb</artifactId>
-       <name>SLC AKB - Specifications and Core</name>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <configuration>
-                                       <instructions>
-                                               <Import-Package>
-                                                       *,
-                                                       javax.jcr.nodetype,
-                                                       com.microsoft.sqlserver.jdbc;resolution:=optional,
-                                                       com.mysql.jdbc;resolution:=optional,
-                                                       net.sourceforge.jtds.jdbc;resolution:=optional,
-                                                       oracle.jdbc;resolution:=optional,
-                                                       org.apache.derby.jdbc;resolution:=optional,
-                                                       org.h2;resolution:=optional,
-                                                       org.hsqldb;resolution:=optional,
-                                                       org.postgresql;resolution:=optional
-                                               </Import-Package>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-               </plugins>
-       </build>
-       <dependencies>
-               <dependency>
-                       <groupId>org.argeo.commons.server</groupId>
-                       <artifactId>org.argeo.server.jcr</artifactId>
-                       <version>${version.argeo-commons}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.argeo.commons.security</groupId>
-                       <artifactId>org.argeo.security.core</artifactId>
-                       <version>${version.argeo-commons}</version>
-               </dependency>
-
-               <!-- SLC -->
-               <dependency>
-                       <groupId>org.argeo.slc</groupId>
-                       <artifactId>org.argeo.slc.support.simple</artifactId>
-                       <version>1.1.15-SNAPSHOT</version>
-               </dependency>
-       </dependencies>
-</project>
diff --git a/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbConstants.java b/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbConstants.java
deleted file mode 100644 (file)
index 5d725cc..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.argeo.slc.akb;
-
-/** Centralizes all AKB specific constants */
-public interface AkbConstants {
-       public final static String AKB_BASE_PATH = "/akb:system";
-}
diff --git a/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbException.java b/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbException.java
deleted file mode 100644 (file)
index 81f69e2..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.argeo.slc.akb;
-
-/**
- * SLC AKB's specific exception. For the time being, it just wraps a usual
- * RuntimeException
- */
-public class AkbException extends RuntimeException {
-       private static final long serialVersionUID = 1L;
-
-       public AkbException(String message) {
-               super(message);
-       }
-
-       public AkbException(String message, Throwable e) {
-               super(message, e);
-       }
-
-}
diff --git a/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbNames.java b/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbNames.java
deleted file mode 100644 (file)
index 79f6228..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.argeo.slc.akb;
-
-/** Maps AKB specific JCR Property names with java constants */
-public interface AkbNames {
-
-       public final static String AKB_NAMESPACE = "http://www.argeo.org/ns/akb";
-
-       /* DEFAULT BASE PATHS */
-       public final static String AKB_BASE_PATH = "/akb:system";
-       public final static String AKB_TEMPLATES_BASE_PATH = AKB_BASE_PATH + "/"
-                       + "akb:templates";
-
-       public final static String AKB_ENVIRONMENTS_BASE_PATH = AKB_BASE_PATH + "/"
-                       + "akb:environments";
-
-       /* ENVIRONMENT PROPERTIES */
-       public final static String AKB_ENV_TEMPLATE_PATH = "akb:envTemplatePath";
-
-       /* CONNECTOR PROPERTIES */
-       public final static String AKB_CONNECTOR_URL = "akb:connectorUrl";
-       public final static String AKB_CONNECTOR_ALIAS_PATH = "akb:connectorAliasPath";
-       public final static String AKB_CONNECTOR_USER = "akb:connectorUser";
-       // Alias specific
-       public final static String AKB_DEFAULT_TEST_CONNECTOR = "defaultTestConnector";
-       public final static String AKB_CONNECTOR_TYPE = "akb:connectorType";
-
-       /* ITEMS PROPERTIES */
-       public final static String AKB_USED_CONNECTOR = "akb:usedConnector";
-
-       public final static String AKB_FILE_PATH = "akb:filePath";
-       public final static String AKB_COMMAND_TEXT = "akb:commandText";
-       public final static String AKB_QUERY_TEXT = "akb:queryText";
-
-}
\ No newline at end of file
diff --git a/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbService.java b/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbService.java
deleted file mode 100644 (file)
index d39e3ba..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.argeo.slc.akb;
-
-import java.sql.PreparedStatement;
-
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-
-/** Provides method interfaces to manage an AKB repository */
-public interface AkbService {
-
-       /** Exposes injected Repository */
-       public Repository getRepository();
-
-       /** Creates a pre-configured AKB Template */
-       public Node createAkbTemplate(Node parent, String name)
-                       throws RepositoryException;
-
-       /** Creates an instance of a template */
-       public Node createActiveEnv(Node template, String name,
-                       boolean copyDefaultConnectors) throws RepositoryException;
-
-       /** Creates a new pre-configured AKB connector Alias for the given template */
-       public Node createConnectorAlias(Node templateNode, String name,
-                       String connectorType) throws RepositoryException;
-
-       /**
-        * @param templateNode
-        * @param connectorType
-        *            if null, returns all defined connector for this template
-        * @return
-        * @throws RepositoryException
-        */
-       public NodeIterator getDefinedAliases(Node templateNode,
-                       String connectorType) throws RepositoryException;
-
-       
-       /**
-        * @param envNode
-        *            an environment or a template
-        * @param aliasPath
-        *            the path of the parent alias in the corresponding template
-        *            environment used as key
-        * @return the corresponding active connector if found
-        * @throws RepositoryException
-        */
-       public Node getActiveConnectorByAlias(Node envNode, String aliasPath)
-                       throws RepositoryException;
-
-       /**
-        * Shortcut to perform whatever test on a given connector only to check if
-        * URL is correctly defined, if the target system is there and if the
-        * current user has the sufficient credentials to connect
-        * 
-        * If no active environment is defined, try to
-        */
-       public boolean testConnector(Node connector);
-
-       /**
-        * If no active environment is defined, tries to execute query with default
-        * connector defined for the template
-        * 
-        * @param activeEnvironment
-        * @param itemNode
-        * @return
-        */
-       public PreparedStatement prepareJdbcQuery(Node activeEnvironment,
-                       Node itemNode);
-
-       /**
-        * 
-        * @param activeEnvironment
-        * @param itemNode
-        * @return
-        */
-       public String executeCommand(Node activeEnvironment, Node itemNode);
-
-       /**
-        * 
-        * @param activeEnvironment
-        * @param itemNode
-        * @return
-        */
-       public String retrieveFile(Node activeEnvironment, Node itemNode);
-}
\ No newline at end of file
diff --git a/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbTypes.java b/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/AkbTypes.java
deleted file mode 100644 (file)
index 20c8e07..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.argeo.slc.akb;
-
-/** Maps AKB specific JCR node types with java constants */
-public interface AkbTypes {
-
-       public final static String ARGEO_NOTE = "argeo:note";
-
-       // Env and templates
-       public final static String AKB_ENV_TEMPLATE = "akb:envTemplate";
-       public final static String AKB_ENV = "akb:env";
-
-       // Connectors
-       public final static String AKB_CONNECTOR_FOLDER = "akb:connectorFolder";
-       public final static String AKB_CONNECTOR = "akb:connector";
-       public final static String AKB_CONNECTOR_ALIAS = "akb:connectorAlias";
-
-       // Various connector mixin types
-       public final static String AKB_SSH_CONNECTOR = "akb:sshConnector";
-       public final static String AKB_JDBC_CONNECTOR = "akb:jdbcConnector";
-       public final static String AKB_JCR_CONNECTOR = "akb:jcrConnector";
-
-       // Item tree
-       public final static String AKB_ITEM_FOLDER = "akb:itemsFolder";
-       public final static String AKB_ITEM = "akb:item";
-
-       // Various items types
-       public final static String AKB_SSH_FILE = "akb:sshFile";
-       public final static String AKB_SSH_COMMAND = "akb:sshCommand";
-       public final static String AKB_JDBC_QUERY = "akb:jdbcQuery";
-       public final static String AKB_NOTE = "akb:note";
-
-}
\ No newline at end of file
diff --git a/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/core/AkbServiceImpl.java b/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/core/AkbServiceImpl.java
deleted file mode 100644 (file)
index 0f45c5b..0000000
+++ /dev/null
@@ -1,570 +0,0 @@
-package org.argeo.slc.akb.core;
-
-import java.net.URI;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLFeatureNotSupportedException;
-import java.util.Map;
-
-import javax.annotation.Resource;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.Property;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.query.QueryManager;
-import javax.jcr.query.QueryResult;
-import javax.jcr.query.qom.Constraint;
-import javax.jcr.query.qom.Ordering;
-import javax.jcr.query.qom.QueryObjectModel;
-import javax.jcr.query.qom.QueryObjectModelConstants;
-import javax.jcr.query.qom.QueryObjectModelFactory;
-import javax.jcr.query.qom.Selector;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.jcr.ArgeoNames;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.jcr.UserJcrUtils;
-import org.argeo.slc.SlcException;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbService;
-import org.argeo.slc.akb.AkbTypes;
-import org.argeo.slc.akb.utils.AkbJcrUtils;
-import org.argeo.slc.jsch.SimpleUserInfo;
-import org.argeo.util.security.Keyring;
-
-import com.jcraft.jsch.ChannelExec;
-import com.jcraft.jsch.JSch;
-
-/**
- * Concrete access to akb services. It provides among other an initialized
- * environment
- */
-public class AkbServiceImpl implements AkbService, AkbNames {
-       private final static Log log = LogFactory.getLog(AkbServiceImpl.class);
-
-       /* DEPENDENCY INJECTION */
-       private Repository repository;
-
-       private Keyring keyring;
-
-       // Populate the repository in a demo context.
-       private Map<String, Resource> demoData = null;
-
-       /* Life cycle management */
-       /**
-        * Call by each startup in order to make sure the backend is ready to
-        * receive/provide data.
-        */
-       public void init() {
-               // JDBC drivers
-               // TODO make it configurable
-               initJdbcDriver("org.postgresql.Driver");
-
-               Session adminSession = null;
-               try {
-                       adminSession = repository.login();
-
-                       // Initialization of the model
-                       if (!adminSession.nodeExists(AKB_TEMPLATES_BASE_PATH)) {
-                               JcrUtils.mkdirs(adminSession, AKB_TEMPLATES_BASE_PATH);
-                               JcrUtils.mkdirs(adminSession, AKB_ENVIRONMENTS_BASE_PATH);
-                               adminSession.save();
-                               log.info("Repository has been initialized "
-                                               + "with AKB's model");
-                       }
-
-                       // Fill the repository in a demo context
-                       if (demoData != null) {
-                               // Dev only force reload at each start
-                               // if (true) {
-                               // if (!projectsPar.hasNodes()) {
-                       }
-               } catch (Exception e) {
-                       throw new AkbException("Cannot initialize backend", e);
-               } finally {
-                       JcrUtils.logoutQuietly(adminSession);
-               }
-       }
-
-       protected Boolean initJdbcDriver(String driver) {
-               try {
-                       Class.forName(driver);
-                       return true;
-               } catch (ClassNotFoundException e) {
-                       if (log.isDebugEnabled())
-                               log.debug("Cannot load JDBC driver : " + driver + ", "
-                                               + e.getMessage());
-                       return false;
-               }
-       }
-
-       /** Clean shutdown of the backend. */
-       public void destroy() {
-       }
-
-       @Override
-       public Node createAkbTemplate(Node parentNode, String name)
-                       throws RepositoryException {
-               Node newTemplate = parentNode.addNode(name, AkbTypes.AKB_ENV_TEMPLATE);
-               newTemplate.setProperty(Property.JCR_TITLE, name);
-               newTemplate.addNode(AkbTypes.AKB_CONNECTOR_FOLDER,
-                               AkbTypes.AKB_CONNECTOR_FOLDER);
-               return newTemplate;
-       }
-
-       // //////////////////////////
-       // ENVIRONMENTS
-       @Override
-       public Node createActiveEnv(Node template, String name,
-                       boolean copyDefaultConnectors) throws RepositoryException {
-
-               Session session = template.getSession();
-               Node parentEnvNode = session.getNode(AKB_ENVIRONMENTS_BASE_PATH);
-               Node createdEnv = parentEnvNode.addNode(name, AkbTypes.AKB_ENV);
-               createdEnv.setProperty(AKB_ENV_TEMPLATE_PATH, template.getPath());
-               createdEnv.setProperty(Property.JCR_TITLE, name);
-
-               Node connectorParent = createdEnv.addNode(
-                               AkbTypes.AKB_CONNECTOR_FOLDER, AkbTypes.AKB_CONNECTOR_FOLDER);
-
-               NodeIterator ni = template.getNode(AkbTypes.AKB_CONNECTOR_FOLDER)
-                               .getNodes();
-               activeConns: while (ni.hasNext()) {
-                       Node currNode = ni.nextNode();
-                       if (currNode.isNodeType(AkbTypes.AKB_CONNECTOR_ALIAS)) {
-                               String connType = currNode.getProperty(AKB_CONNECTOR_TYPE)
-                                               .getString();
-
-                               if (AkbJcrUtils.isEmptyString(connType))
-                                       // Cannot create an instance if the type is undefined
-                                       continue activeConns;
-
-                               Node newConnector = connectorParent.addNode(currNode.getName(),
-                                               connType);
-                               newConnector.setProperty(AKB_CONNECTOR_ALIAS_PATH,
-                                               currNode.getPath());
-                               if (copyDefaultConnectors
-                                               && currNode
-                                                               .hasNode(AkbNames.AKB_DEFAULT_TEST_CONNECTOR)) {
-                                       Node defaultConn = currNode
-                                                       .getNode(AkbNames.AKB_DEFAULT_TEST_CONNECTOR);
-                                       if (defaultConn.hasProperty(AkbNames.AKB_CONNECTOR_URL))
-                                               newConnector
-                                                               .setProperty(
-                                                                               AkbNames.AKB_CONNECTOR_URL,
-                                                                               defaultConn.getProperty(
-                                                                                               AkbNames.AKB_CONNECTOR_URL)
-                                                                                               .getString());
-                                       if (defaultConn.hasProperty(AkbNames.AKB_CONNECTOR_USER))
-                                               newConnector.setProperty(
-                                                               AkbNames.AKB_CONNECTOR_USER,
-                                                               defaultConn.getProperty(
-                                                                               AkbNames.AKB_CONNECTOR_USER)
-                                                                               .getString());
-                               }
-                       }
-               }
-               return createdEnv;
-       }
-
-       // ///////////////////////////////////////
-       // CONNECTORS
-
-       @Override
-       public Node createConnectorAlias(Node templateNode, String name,
-                       String connectorType) throws RepositoryException {
-               Node parent = JcrUtils.mkdirs(templateNode,
-                               AkbTypes.AKB_CONNECTOR_FOLDER, AkbTypes.AKB_CONNECTOR_FOLDER);
-               Node newConnector = parent.addNode(name, AkbTypes.AKB_CONNECTOR_ALIAS);
-               newConnector.setProperty(Property.JCR_TITLE, name);
-               newConnector.setProperty(AkbNames.AKB_CONNECTOR_TYPE, connectorType);
-
-               // Node defaultConnector =
-               Node defaultConn = newConnector.addNode(
-                               AkbNames.AKB_DEFAULT_TEST_CONNECTOR, connectorType);
-               defaultConn.setProperty(AkbNames.AKB_CONNECTOR_ALIAS_PATH,
-                               newConnector.getPath());
-               return newConnector;
-       }
-
-       @Override
-       public NodeIterator getDefinedAliases(Node itemTemplate,
-                       String connectorType) throws RepositoryException {
-               try {
-                       Session session = itemTemplate.getSession();
-                       QueryManager queryManager = session.getWorkspace()
-                                       .getQueryManager();
-                       QueryObjectModelFactory factory = queryManager.getQOMFactory();
-
-                       Selector source = factory.selector(AkbTypes.AKB_CONNECTOR_ALIAS,
-                                       AkbTypes.AKB_CONNECTOR_ALIAS);
-                       Constraint defaultC = factory.descendantNode(
-                                       source.getSelectorName(), itemTemplate.getPath());
-
-                       if (connectorType != null) {
-                               Constraint connType = factory.comparison(factory.propertyValue(
-                                               source.getSelectorName(), AkbNames.AKB_CONNECTOR_TYPE),
-                                               QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,
-                                               factory.literal(session.getValueFactory().createValue(
-                                                               connectorType)));
-                               defaultC = factory.and(defaultC, connType);
-                       }
-
-                       // Order by default by JCR TITLE
-                       // TODO check if node definition has MIX_TITLE mixin
-                       // TODO Apparently case insensitive ordering is not implemented in
-                       // current used JCR implementation
-                       Ordering order = factory
-                                       .ascending(factory.upperCase(factory.propertyValue(
-                                                       source.getSelectorName(), Property.JCR_TITLE)));
-                       QueryObjectModel query;
-                       query = factory.createQuery(source, defaultC,
-                                       new Ordering[] { order }, null);
-                       QueryResult result = query.execute();
-                       return result.getNodes();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable to list connector", e);
-               }
-       }
-
-       @Override
-       public Node getActiveConnectorByAlias(Node envNode, String aliasPath)
-                       throws RepositoryException {
-               try {
-                       Session session = envNode.getSession();
-                       QueryManager queryManager = session.getWorkspace()
-                                       .getQueryManager();
-                       QueryObjectModelFactory factory = queryManager.getQOMFactory();
-
-                       Selector source = factory.selector(AkbTypes.AKB_CONNECTOR,
-                                       AkbTypes.AKB_CONNECTOR);
-                       Constraint defaultC = factory.descendantNode(
-                                       source.getSelectorName(), envNode.getPath());
-
-                       Constraint connType = factory.comparison(
-                                       factory.propertyValue(source.getSelectorName(),
-                                                       AkbNames.AKB_CONNECTOR_ALIAS_PATH),
-                                       QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, factory
-                                                       .literal(session.getValueFactory().createValue(
-                                                                       aliasPath)));
-                       defaultC = factory.and(defaultC, connType);
-
-                       QueryObjectModel query;
-                       query = factory.createQuery(source, defaultC, null, null);
-                       QueryResult result = query.execute();
-                       NodeIterator ni = result.getNodes();
-
-                       if (!ni.hasNext())
-                               return null;
-                       else {
-                               Node connector = ni.nextNode();
-                               if (ni.hasNext())
-                                       throw new AkbException("More than  one alias with name "
-                                                       + aliasPath + " has been defined for environment "
-                                                       + envNode);
-                               else
-                                       return connector;
-                       }
-               } catch (RepositoryException e) {
-                       throw new AkbException("Unable to get connector " + aliasPath
-                                       + " in " + envNode, e);
-               }
-       }
-
-       @Override
-       public boolean testConnector(Node connectorNode) {
-               try {
-                       if (connectorNode.isNodeType(AkbTypes.AKB_JDBC_CONNECTOR)) {
-                               String connectorUrl = connectorNode.getProperty(
-                                               AKB_CONNECTOR_URL).getString();
-                               String connectorUser = connectorNode.getProperty(
-                                               AKB_CONNECTOR_USER).getString();
-
-                               String pwdPath = getPasswordPath(connectorNode);
-                               char[] pwd = keyring.getAsChars(pwdPath);
-                               DriverManager.getConnection(connectorUrl, connectorUser,
-                                               new String(pwd));
-                               savePassword(connectorNode.getSession(), pwdPath, pwd);
-                               return true;
-                       } else if (connectorNode.isNodeType(AkbTypes.AKB_SSH_CONNECTOR)) {
-                               String connectorUrl = connectorNode.getProperty(
-                                               AKB_CONNECTOR_URL).getString();
-                               String connectorUser = connectorNode.getProperty(
-                                               AKB_CONNECTOR_USER).getString();
-                               String pwdPath = getPasswordPath(connectorNode);
-                               char[] pwd = keyring.getAsChars(pwdPath);
-
-                               URI url = new URI(connectorUrl);
-                               String host = url.getHost();
-                               int port = url.getPort();
-                               if (port == -1)
-                                       port = 22;
-                               JSch jsch = new JSch();
-                               com.jcraft.jsch.Session sess = jsch.getSession(connectorUser,
-                                               host, port);
-                               SimpleUserInfo userInfo = new SimpleUserInfo();
-                               userInfo.setPassword(new String(pwd));
-                               sess.setUserInfo(userInfo);
-                               sess.connect();
-                               sess.disconnect();
-
-                               savePassword(connectorNode.getSession(), pwdPath, pwd);
-                               return true;
-                       } else {
-                               throw new SlcException("Unsupported connector " + connectorNode);
-                       }
-               } catch (Exception e) {
-                       throw new SlcException("Cannot test connection", e);
-               }
-       }
-
-       /**
-        * Opens a new connection each time. All resources must be cleaned by
-        * caller.
-        */
-       public PreparedStatement prepareJdbcQuery(Node activeEnv, Node node) {
-               PreparedStatement statement = null;
-               try {
-
-                       if (node.isNodeType(AkbTypes.AKB_JDBC_QUERY)) {
-                               String connectorAliasStr = node.getProperty(AKB_USED_CONNECTOR)
-                                               .getString();
-                               // in case of a template passed env can be null
-                               if (activeEnv == null) {
-                                       activeEnv = AkbJcrUtils.getCurrentTemplate(node);
-                               }
-                               Node connectorNode = getActiveConnectorByAlias(activeEnv,
-                                               connectorAliasStr);
-
-                               // Sanity check
-                               if (connectorNode == null)
-                                       // should never happen
-                                       return null;
-                               // FIXME hack to force saving of password in keyring on never
-                               // used connector instance for active env
-                               testConnector(connectorNode);
-
-                               String sqlQuery = AkbJcrUtils.get(node, AKB_QUERY_TEXT);
-                               String connectorUrl = AkbJcrUtils.get(connectorNode,
-                                               AKB_CONNECTOR_URL);
-                               String connectorUser = AkbJcrUtils.get(connectorNode,
-                                               AKB_CONNECTOR_USER);
-
-                               // Sanity check
-                               if (AkbJcrUtils.isEmptyString(connectorUrl)
-                                               || AkbJcrUtils.isEmptyString(connectorUser)
-                                               || AkbJcrUtils.isEmptyString(sqlQuery))
-                                       return null;
-
-                               String pwdPath = getPasswordPath(connectorNode);
-                               // String pwdPath = connectorNode.getPath() + '/'
-                               // + ArgeoNames.ARGEO_PASSWORD;
-                               char[] pwd = keyring.getAsChars(pwdPath);
-                               Connection connection = DriverManager.getConnection(
-                                               connectorUrl, connectorUser, new String(pwd));
-                               try {
-                                       statement = connection.prepareStatement(sqlQuery,
-                                                       ResultSet.TYPE_SCROLL_INSENSITIVE,
-                                                       ResultSet.CONCUR_READ_ONLY);
-                               } catch (SQLFeatureNotSupportedException e) {
-                                       log.warn("Scroll not supported for " + connectorUrl);
-                                       statement = connection.prepareStatement(sqlQuery);
-                               }
-                       } else {
-                               throw new SlcException("Unsupported node " + node);
-                       }
-                       return statement;
-               } catch (Exception e) {
-                       throw new SlcException("Cannot execute test JDBC query on " + node,
-                                       e);
-               }
-       }
-
-       public String executeCommand(Node activeEnv, Node node) {
-               try {
-                       String connectorAliasStr = node.getProperty(AKB_USED_CONNECTOR)
-                                       .getString();
-                       // in case of a template passed env can be null
-                       if (activeEnv == null) {
-                               activeEnv = AkbJcrUtils.getCurrentTemplate(node);
-                       }
-
-                       Node connectorNode = getActiveConnectorByAlias(activeEnv,
-                                       connectorAliasStr);
-                       // Sanity check
-                       if (connectorNode == null)
-                               // should never happen
-                               return null;
-                       // FIXME hack to force saving of password in keyring on never used
-                       // connector instance for active env
-                       testConnector(connectorNode);
-
-                       String command = AkbJcrUtils.get(node, AKB_COMMAND_TEXT);
-                       String connectorUrl = AkbJcrUtils.get(connectorNode,
-                                       AKB_CONNECTOR_URL);
-                       String connectorUser = AkbJcrUtils.get(connectorNode,
-                                       AKB_CONNECTOR_USER);
-
-                       // Sanity check
-                       if (AkbJcrUtils.isEmptyString(connectorUrl)
-                                       || AkbJcrUtils.isEmptyString(connectorUser)
-                                       || AkbJcrUtils.isEmptyString(command))
-                               return null;
-
-                       String pwdPath = getPasswordPath(connectorNode);
-                       char[] pwd = keyring.getAsChars(pwdPath);
-
-                       URI url = new URI(connectorUrl);
-                       String host = url.getHost();
-                       int port = url.getPort();
-                       if (port == -1)
-                               port = 22;
-                       JSch jsch = new JSch();
-                       com.jcraft.jsch.Session sess = jsch.getSession(connectorUser, host,
-                                       port);
-                       SimpleUserInfo userInfo = new SimpleUserInfo();
-                       userInfo.setPassword(new String(pwd));
-                       sess.setUserInfo(userInfo);
-                       sess.connect();
-
-                       sess.openChannel("exec");
-                       final ChannelExec channel = (ChannelExec) sess.openChannel("exec");
-                       channel.setCommand(command);
-
-                       channel.setInputStream(null);
-                       channel.setXForwarding(false);
-                       channel.setAgentForwarding(false);
-                       channel.setErrStream(null);
-
-                       channel.connect();
-
-                       String output = IOUtils.toString(channel.getInputStream());
-                       channel.disconnect();
-
-                       sess.disconnect();
-
-                       return output;
-               } catch (Exception e) {
-                       throw new SlcException("Cannot execute command", e);
-               }
-
-       }
-
-       public String retrieveFile(Node activeEnv, Node node) {
-               try {
-                       String filePath = node.getProperty(AkbNames.AKB_FILE_PATH)
-                                       .getString();
-                       String command = "cat " + filePath;
-
-                       String connectorAliasStr = node.getProperty(AKB_USED_CONNECTOR)
-                                       .getString();
-                       // in case of a template passed env can be null
-                       if (activeEnv == null) {
-                               activeEnv = AkbJcrUtils.getCurrentTemplate(node);
-                       }
-                       Node connectorNode = getActiveConnectorByAlias(activeEnv,
-                                       connectorAliasStr);
-
-                       // Sanity check
-                       if (connectorNode == null)
-                               // should never happen
-                               return null;
-                       // FIXME hack to force saving of password in keyring on never used
-                       // connector instance for active env
-                       testConnector(connectorNode);
-
-                       // TODO do a proper scp
-                       String connectorUrl = AkbJcrUtils.get(connectorNode,
-                                       AKB_CONNECTOR_URL);
-                       String connectorUser = AkbJcrUtils.get(connectorNode,
-                                       AKB_CONNECTOR_USER);
-
-                       // Sanity check
-                       if (AkbJcrUtils.isEmptyString(connectorUrl)
-                                       || AkbJcrUtils.isEmptyString(connectorUser))
-                               return null;
-
-                       String pwdPath = getPasswordPath(connectorNode);
-                       char[] pwd = keyring.getAsChars(pwdPath);
-
-                       URI url = new URI(connectorUrl);
-                       String host = url.getHost();
-                       int port = url.getPort();
-                       if (port == -1)
-                               port = 22;
-                       JSch jsch = new JSch();
-                       com.jcraft.jsch.Session sess = jsch.getSession(connectorUser, host,
-                                       port);
-                       SimpleUserInfo userInfo = new SimpleUserInfo();
-                       userInfo.setPassword(new String(pwd));
-                       sess.setUserInfo(userInfo);
-                       sess.connect();
-
-                       sess.openChannel("exec");
-                       final ChannelExec channel = (ChannelExec) sess.openChannel("exec");
-                       channel.setCommand(command);
-
-                       channel.setInputStream(null);
-                       channel.setXForwarding(false);
-                       channel.setAgentForwarding(false);
-                       channel.setErrStream(null);
-
-                       channel.connect();
-
-                       String output = IOUtils.toString(channel.getInputStream());
-                       channel.disconnect();
-
-                       sess.disconnect();
-
-                       return output;
-               } catch (Exception e) {
-                       throw new SlcException("Cannot execute command", e);
-               }
-
-       }
-
-       protected String getPasswordPath(Node node) throws RepositoryException {
-               Node home = UserJcrUtils.getUserHome(node.getSession());
-               if (node.getPath().startsWith(home.getPath()))
-                       return node.getPath() + '/' + ArgeoNames.ARGEO_PASSWORD;
-               else
-                       return home.getPath() + node.getPath() + '/'
-                                       + ArgeoNames.ARGEO_PASSWORD;
-       }
-
-       private void savePassword(Session session, String pwdPath, char[] pwd)
-                       throws RepositoryException {
-               if (!session.itemExists(pwdPath)) {
-                       JcrUtils.mkdirs(session, JcrUtils.parentPath(pwdPath));
-                       session.save();
-                       keyring.set(pwdPath, pwd);
-               }
-
-       }
-
-       /** Expose injected repository */
-       public Repository getRepository() {
-               return repository;
-       }
-
-       /* DEPENDENCY INJECTION */
-       public void setRepository(Repository repository) {
-               this.repository = repository;
-       }
-
-       public void setDemoData(Map<String, Resource> demoData) {
-               this.demoData = demoData;
-       }
-
-       public void setKeyring(Keyring keyring) {
-               this.keyring = keyring;
-       }
-
-}
\ No newline at end of file
diff --git a/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/utils/AkbJcrUtils.java b/runtime/org.argeo.slc.akb/src/main/java/org/argeo/slc/akb/utils/AkbJcrUtils.java
deleted file mode 100644 (file)
index b7d0ba7..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-package org.argeo.slc.akb.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.Property;
-import javax.jcr.PropertyIterator;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.Value;
-import javax.jcr.query.Row;
-import javax.jcr.query.RowIterator;
-
-import org.argeo.jcr.JcrUtils;
-import org.argeo.jcr.PropertyDiff;
-import org.argeo.slc.akb.AkbException;
-import org.argeo.slc.akb.AkbNames;
-import org.argeo.slc.akb.AkbTypes;
-
-/** Some static utils methods that might be factorized in a near future */
-public class AkbJcrUtils {
-
-       // /////////////////////////
-       // SPECIFIC METHOS
-       /**
-        * Returns the list of environment templates that are visible for the
-        * current user.
-        */
-       public static List<Node> getDefinedTemplate(Session session) {
-               try {
-                       if (session.nodeExists(AkbNames.AKB_TEMPLATES_BASE_PATH)) {
-                               NodeIterator ni = session.getNode(
-                                               AkbNames.AKB_TEMPLATES_BASE_PATH).getNodes();
-                               List<Node> templates = new ArrayList<Node>();
-                               while (ni.hasNext()) {
-                                       Node currN = ni.nextNode();
-                                       if (currN.isNodeType(AkbTypes.AKB_ENV_TEMPLATE))
-                                               templates.add(currN);
-                               }
-                               return templates;
-                       }
-                       return null;
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to list templates", re);
-               }
-       }
-
-       /**
-        * Returns a template given it's name
-        */
-       public static Node getTemplateByName(Session session, String name) {
-               try {
-                       if (name == null)
-                               return null;
-                       if (session.nodeExists(AkbNames.AKB_TEMPLATES_BASE_PATH)) {
-                               NodeIterator ni = session.getNode(
-                                               AkbNames.AKB_TEMPLATES_BASE_PATH).getNodes();
-                               while (ni.hasNext()) {
-                                       Node currN = ni.nextNode();
-                                       if (name.equals(AkbJcrUtils.get(currN, Property.JCR_TITLE)))
-                                               return currN;
-                               }
-                       }
-                       return null;
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to list templates", re);
-               }
-       }
-
-       /**
-        * Return the type of alias that must be used given current item type
-        */
-       public static String getAliasTypeForNode(Node itemTemplate) {
-               try {
-                       if (itemTemplate.isNodeType(AkbTypes.AKB_JDBC_QUERY))
-                               return AkbTypes.AKB_JDBC_CONNECTOR;
-                       else if (itemTemplate.isNodeType(AkbTypes.AKB_SSH_COMMAND)
-                                       || itemTemplate.isNodeType(AkbTypes.AKB_SSH_FILE))
-                               return AkbTypes.AKB_SSH_CONNECTOR;
-                       else
-                               throw new AkbException("No connector type define for node "
-                                               + itemTemplate);
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to login", re);
-               }
-       }
-
-       /**
-        * Return current template depending on the passed node
-        */
-       public static Node getCurrentTemplate(Node akbNode) {
-               try {
-                       if (akbNode.getDepth() == 0)
-                               // no base path for root node
-                               return null;
-                       Node parNode = akbNode.getParent();
-
-                       while (parNode != null)
-                               if (akbNode.isNodeType(AkbTypes.AKB_ENV_TEMPLATE))
-                                       return akbNode;
-                               else if (parNode.getDepth() == 0)
-                                       // we found not fitting node
-                                       return null;
-                               else {
-                                       akbNode = parNode;
-                                       parNode = parNode.getParent();
-                               }
-                       return null;
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to find template for node "
-                                       + akbNode, re);
-               }
-       }
-
-       /**
-        * Return the current env base path
-        */
-       public static String getCurrentEnvBasePath(Node akbNode) {
-               try {
-                       if (akbNode.getDepth() == 0)
-                               // no base path for root node
-                               return null;
-
-                       Node parNode = akbNode.getParent();
-
-                       while (parNode != null)
-                               if (akbNode.isNodeType(AkbTypes.AKB_ENV)
-                                               || akbNode.isNodeType(AkbTypes.AKB_ENV_TEMPLATE))
-                                       return akbNode.getPath();
-                               else if (parNode.getDepth() == 0)
-                                       // we found not fitting node
-                                       return null;
-                               else {
-                                       akbNode = parNode;
-                                       parNode = parNode.getParent();
-                               }
-                       return null;
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to login", re);
-               }
-       }
-
-       // //////////////////////////////////
-       // METHODS THAT CAN BE FACTORIZED
-       /**
-        * Call {@link Repository#login()} without exceptions (useful in super
-        * constructors and dependency injection).
-        */
-       public static Session login(Repository repository) {
-               try {
-                       return repository.login();
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to login", re);
-               }
-       }
-
-       /**
-        * Convert a {@link rowIterator} to a list of {@link Node} given a selector
-        * name. It relies on the <code>Row.getNode(String selectorName)</code>
-        * method.
-        */
-       public static List<Node> rowIteratorToList(RowIterator rowIterator,
-                       String selectorName) throws RepositoryException {
-               List<Node> nodes = new ArrayList<Node>();
-               while (rowIterator.hasNext()) {
-                       Row row = rowIterator.nextRow();
-                       if (row.getNode(selectorName) != null)
-                               nodes.add(row.getNode(selectorName));
-               }
-               return nodes;
-       }
-
-       /**
-        * Check if a string is null or an empty string (a string with only spaces
-        * is considered as empty
-        */
-       public static boolean isEmptyString(String stringToTest) {
-               return stringToTest == null || "".equals(stringToTest.trim());
-       }
-
-       /**
-        * Check if a string is null or an empty string (a string with only spaces
-        * is considered as empty
-        */
-       public static boolean checkNotEmptyString(String string) {
-               return string != null && !"".equals(string.trim());
-       }
-
-       /**
-        * Wraps the versionMananger.isCheckedOut(path) method to adapt it to the
-        * current check in / check out policy.
-        * 
-        * TODO : add management of check out by others.
-        */
-       public static boolean isNodeCheckedOut(Node node) {
-               try {
-                       return node.getSession().getWorkspace().getVersionManager()
-                                       .isCheckedOut(node.getPath());
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to get check out status for node",
-                                       re);
-               }
-       }
-
-       /**
-        * For the time being, same as isNodeCheckedOut(Node node).
-        * 
-        * TODO : add management of check out by others.
-        */
-       public static boolean isNodeCheckedOutByMe(Node node) {
-               return isNodeCheckedOut(node);
-       }
-
-       /**
-        * Wraps the versionMananger.checkedOut(path) method to adapt it to the
-        * current check in / check out policy.
-        * 
-        * TODO : add management of check out by others.
-        */
-       public static void checkout(Node node) {
-               try {
-                       node.getSession().getWorkspace().getVersionManager()
-                                       .checkout(node.getPath());
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to check out Node", re);
-               }
-       }
-
-       /**
-        * Wraps the versionMananger.checkedIn(path) method to adapt it to the
-        * current check in / check out policy.
-        * 
-        * It also checked if the current entity has to be moved or not. TODO : add
-        * management of check out by others.
-        */
-       public static void saveAndCheckin(Node node) {
-               try {
-                       JcrUtils.updateLastModified(node);
-                       node.getSession().save();
-                       node.getSession().getWorkspace().getVersionManager()
-                                       .checkin(node.getPath());
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to save and chek in node", re);
-               }
-       }
-
-       /**
-        * Wraps the versionMananger.checkedIn(path) method to adapt it to the
-        * current check in / check out policy.
-        * 
-        * TODO : add management of check out by others. TODO : manage usecase where
-        * a node that has never been checked in (draft node) is canceled and thus
-        * must be deleted
-        */
-       public static void cancelAndCheckin(Node node) {
-               try {
-                       String path = node.getPath();
-                       Session session = node.getSession();
-                       JcrUtils.discardUnderlyingSessionQuietly(node);
-                       // if the node has never been saved, it does not exist anymore.
-                       if (session.nodeExists(path))
-                               session.getWorkspace().getVersionManager().checkin(path);
-               } catch (RepositoryException re) {
-                       throw new AkbException("Unable to save and chek in node", re);
-               }
-       }
-
-       /**
-        * Concisely get the string value of a property. It returns an empty String
-        * rather than null if this node doesn't have this property or if the
-        * corresponding property is an empty string.
-        */
-       public static String get(Node node, String propertyName) {
-               try {
-                       if (!node.hasProperty(propertyName))
-                               return "";
-                       else
-                               return node.getProperty(propertyName).getString();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Cannot get property " + propertyName
-                                       + " of " + node, e);
-               }
-       }
-
-       /**
-        * Concisely get the value of a property or null if this node doesn't have
-        * this property
-        */
-       public static Boolean getBooleanValue(Node node, String propertyName) {
-               try {
-                       if (!node.hasProperty(propertyName))
-                               return null;
-                       else
-                               return node.getProperty(propertyName).getBoolean();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Cannot get boolean property "
-                                       + propertyName + " of " + node, e);
-               }
-       }
-
-       /**
-        * Concisely get the identifier of a node in Ui listener for instance
-        * */
-       public static String getIdentifierQuietly(Node node) {
-               try {
-                       return node.getIdentifier();
-               } catch (RepositoryException e) {
-                       throw new AkbException("Cannot get identifier for node " + node, e);
-               }
-       }
-
-       public static Map<String, PropertyDiff> diffProperties(Node reference,
-                       Node observed) {
-               Map<String, PropertyDiff> diffs = new TreeMap<String, PropertyDiff>();
-               diffPropertiesLevel(diffs, null, reference, observed);
-               return diffs;
-       }
-
-       /**
-        * Compare the properties of two nodes. Extends
-        * <code>JcrUtils.diffPropertiesLevel</code> to also track differences in
-        * multiple value properties and sub graph. No property is skipped (among
-        * other all technical jcr:... properties) to be able to track jcr:title and
-        * description properties, among other. Filtering must be applied afterwards
-        * to only keep relevant properties.
-        */
-       static void diffPropertiesLevel(Map<String, PropertyDiff> diffs,
-                       String baseRelPath, Node reference, Node observed) {
-               try {
-                       // check removed and modified
-                       PropertyIterator pit = reference.getProperties();
-                       while (pit.hasNext()) {
-                               Property p = pit.nextProperty();
-                               String name = p.getName();
-                               // if (name.startsWith("jcr:"))
-                               // continue props;
-
-                               if (!observed.hasProperty(name)) {
-                                       String relPath = propertyRelPath(baseRelPath, name);
-                                       PropertyDiff pDiff = new PropertyDiff(PropertyDiff.REMOVED,
-                                                       relPath, p.getValue(), null);
-                                       diffs.put(relPath, pDiff);
-                               } else {
-                                       if (p.isMultiple()) {
-                                               int i = 0;
-
-                                               Value[] refValues = p.getValues();
-                                               Value[] newValues = observed.getProperty(name)
-                                                               .getValues();
-                                               String relPath = propertyRelPath(baseRelPath, name);
-                                               refValues: for (Value refValue : refValues) {
-                                                       for (Value newValue : newValues) {
-                                                               if (refValue.equals(newValue))
-                                                                       continue refValues;
-                                                       }
-                                                       PropertyDiff pDiff = new PropertyDiff(
-                                                                       PropertyDiff.REMOVED, relPath, refValue,
-                                                                       null);
-                                                       diffs.put(relPath + "_" + i++, pDiff);
-                                               }
-
-                                               newValues: for (Value newValue : newValues) {
-                                                       for (Value refValue : refValues) {
-                                                               if (refValue.equals(newValue))
-                                                                       continue newValues;
-                                                       }
-                                                       PropertyDiff pDiff = new PropertyDiff(
-                                                                       PropertyDiff.ADDED, relPath, null, newValue);
-                                                       diffs.put(relPath + "_" + i++, pDiff);
-                                               }
-
-                                       } else {
-                                               Value referenceValue = p.getValue();
-                                               Value newValue = observed.getProperty(name).getValue();
-                                               if (!referenceValue.equals(newValue)) {
-                                                       String relPath = propertyRelPath(baseRelPath, name);
-                                                       PropertyDiff pDiff = new PropertyDiff(
-                                                                       PropertyDiff.MODIFIED, relPath,
-                                                                       referenceValue, newValue);
-                                                       diffs.put(relPath, pDiff);
-                                               }
-                                       }
-                               }
-                       }
-                       // check added
-                       pit = observed.getProperties();
-                       // props:
-                       while (pit.hasNext()) {
-                               Property p = pit.nextProperty();
-                               String name = p.getName();
-                               // if (name.startsWith("jcr:"))
-                               // continue props;
-                               if (!reference.hasProperty(name)) {
-                                       String relPath = propertyRelPath(baseRelPath, name);
-                                       if (p.isMultiple()) {
-                                               Value[] newValues = observed.getProperty(name)
-                                                               .getValues();
-                                               int i = 0;
-                                               for (Value newValue : newValues) {
-                                                       PropertyDiff pDiff = new PropertyDiff(
-                                                                       PropertyDiff.ADDED, relPath, null, newValue);
-                                                       diffs.put(relPath + "_" + i++, pDiff);
-                                               }
-                                       } else {
-                                               PropertyDiff pDiff = new PropertyDiff(
-                                                               PropertyDiff.ADDED, relPath, null, p.getValue());
-                                               diffs.put(relPath, pDiff);
-                                       }
-                               }
-                       }
-               } catch (RepositoryException e) {
-                       throw new AkbException("Cannot diff " + reference + " and "
-                                       + observed, e);
-               }
-       }
-
-       /** Builds a property relPath to be used in the diff. */
-       private static String propertyRelPath(String baseRelPath,
-                       String propertyName) {
-               if (baseRelPath == null)
-                       return propertyName;
-               else
-                       return baseRelPath + '/' + propertyName;
-       }
-
-       /** prevent instantiation by others */
-       private AkbJcrUtils() {
-       }
-
-}
\ No newline at end of file
diff --git a/runtime/org.argeo.slc.akb/src/main/resources/org/argeo/slc/akb/akb.cnd b/runtime/org.argeo.slc.akb/src/main/resources/org/argeo/slc/akb/akb.cnd
deleted file mode 100644 (file)
index 773fac4..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<akb = 'http://www.argeo.org/ns/akb'>
-
-//
-// MOVE THIS TO ITS CORRECT LOCATION 
-//
-[argeo:note] > mix:title, mix:versionable, mix:created, mix:lastModified
-mixin
-
-//
-// TEMPLATES AND ENVIRONMENTS 
-// 
-
-// Abstract description of whole or part of an IT environment
-[akb:envTemplate] > nt:unstructured, mix:title
-
-// An environment template (1..1 relationship) applied to a real environment
-[akb:env] > nt:unstructured, mix:title
-// the path to the corresponding template
-- akb:envTemplatePath (STRING)
-
-//
-// CONNECTORS
-// 
-
-// GENERIC TYPE FOR A CONNECTOR
-[akb:connector] > nt:unstructured, mix:title  
-- akb:connectorUrl (STRING)
-// the path to the corresponding alias
-- akb:connectorAliasPath (STRING)
-
-// add argeo keyring
-
-// ease retrieval and enable adding alias specific properties
-[akb:connectorAlias] > nt:unstructured, mix:title
-+ defaultTestConnector (akb:connector) 
-- akb:connectorType (STRING) 
-
-// HELPER
-[akb:connectorFolder] > nt:unstructured, mix:title  
-+ * (akb:connector, akb:connectorAlias) * 
-
-
-// Various connectors    
-[akb:sshConnector] > akb:connector
-
-
-[akb:jdbcConnector] > akb:connector 
-
-[akb:jcrConnector] > akb:connector  
-
-//
-// GENERIC ITEM
-//
-[akb:item] > nt:unstructured, mix:title
-// the alias name of the corresponding connector
-// Must be unique in a given template environment 
-- akb:usedConnector (STRING)
-
-
-//
-// GENERIC ITEM FOLDER
-//
-[akb:itemsFolder] > nt:unstructured, mix:title  
-+ * (akb:item) * 
-+ * (akb:itemsFolder) * 
-
-//
-// SSH FILE
-// 
-[akb:sshFile] > akb:item
-- akb:filePath (STRING)
-
-//
-// SSH COMMAND
-// 
-[akb:sshCommand] > akb:item
-- akb:commandText (STRING)
-
-//
-// JDBC QUERY
-// 
-[akb:jdbcQuery] > akb:item
-- akb:queryText (STRING)
-
-
-
-//
-// NOTE 
-// 
-[akb:note] > akb:item, argeo:note 
-