You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2007/04/09 11:53:23 UTC
svn commit: r526695 [1/2] - in
/directory/ldapstudio/trunk/ldapstudio-valueeditors: ./ META-INF/
resources/ resources/icons/ src/ src/main/ src/main/java/
src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/directory/ src/main/java/or...
Author: seelmann
Date: Mon Apr 9 02:53:20 2007
New Revision: 526695
URL: http://svn.apache.org/viewvc?view=rev&rev=526695
Log:
Added ldapstudio-valueeditors (DIRSTUDIO-78)
Added:
directory/ldapstudio/trunk/ldapstudio-valueeditors/
directory/ldapstudio/trunk/ldapstudio-valueeditors/.classpath
directory/ldapstudio/trunk/ldapstudio-valueeditors/.project
directory/ldapstudio/trunk/ldapstudio-valueeditors/META-INF/
directory/ldapstudio/trunk/ldapstudio-valueeditors/META-INF/MANIFEST.MF
directory/ldapstudio/trunk/ldapstudio-valueeditors/build.properties
directory/ldapstudio/trunk/ldapstudio-valueeditors/build.xml
directory/ldapstudio/trunk/ldapstudio-valueeditors/ivy.xml
directory/ldapstudio/trunk/ldapstudio-valueeditors/plugin.xml
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/addresseditor.gif (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/attributetypeeditor.png (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/dneditor.gif (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/generalizedtimeeditor.gif (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/imageeditor.gif (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/inplace_oceditor.gif (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/integereditor.gif (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/objectclasseditor.png (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/passwordeditor.gif (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/texteditor.gif (with props)
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsActivator.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsConstants.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressDialog.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressValueEditor.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnDialog.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnValueEditor.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageDialog.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageValueEditor.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/integer/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/integer/IntegerDialog.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/integer/IntegerValueEditor.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/objectclass/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/objectclass/ObjectClassDialog.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/objectclass/ObjectClassValueEditor.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/password/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/password/PasswordDialog.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/password/PasswordValueEditor.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/time/
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/time/InPlaceGeneralizedTimeValueEditor.java
directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/resources/
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/.classpath
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/.classpath?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/.classpath (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/.classpath Mon Apr 9 02:53:20 2007
@@ -0,0 +1,8 @@
+<?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"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/.project
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/.project?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/.project (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/.project Mon Apr 9 02:53:20 2007
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>ldapstudio-valueeditors</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>
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/META-INF/MANIFEST.MF?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/META-INF/MANIFEST.MF (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/META-INF/MANIFEST.MF Mon Apr 9 02:53:20 2007
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: LDAP Studio Value Editors Plug-in
+Bundle-SymbolicName: org.apache.directory.ldapstudio.valueeditors;singleton:=true
+Bundle-Version: 0.0.0.SNAPSHOT
+Bundle-Activator: org.apache.directory.ldapstudio.valueeditors.ValueEditorsActivator
+Bundle-Vendor: Apache Software Foundation
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.apache.directory.ldapstudio.browser.core,
+ org.apache.directory.ldapstudio.browser.common
+Eclipse-LazyStart: true
+Export-Package: org.apache.directory.ldapstudio.valueeditors,
+ org.apache.directory.ldapstudio.valueeditors.address,
+ org.apache.directory.ldapstudio.valueeditors.dn,
+ org.apache.directory.ldapstudio.valueeditors.image,
+ org.apache.directory.ldapstudio.valueeditors.integer,
+ org.apache.directory.ldapstudio.valueeditors.objectclass,
+ org.apache.directory.ldapstudio.valueeditors.password,
+ org.apache.directory.ldapstudio.valueeditors.time
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/build.properties
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/build.properties?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/build.properties (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/build.properties Mon Apr 9 02:53:20 2007
@@ -0,0 +1,5 @@
+source.. = src/main/java/
+output.. = target/classes/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/build.xml
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/build.xml?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/build.xml (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/build.xml Mon Apr 9 02:53:20 2007
@@ -0,0 +1,162 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+-->
+<project default="jar" xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
+ <property name="project.name" value="org.apache.directory.ldapstudio.valueeditors" />
+ <property name="project.version" value="0.0.0.SNAPSHOT" />
+
+ <property name="project.output" value="${basedir}/target" />
+ <property name="project.build" value="${project.output}/build" />
+ <property name="project.src" value="${basedir}/src/main/java" />
+
+ <property name="lib.dir" value="lib" />
+
+ <property name="repository.dir" location="../dependencies/externals/"/>
+
+ <!-- Configuring Ivy (Needs to be AFTER the $repository.dir declaration) -->
+ <ivy:configure file="../tools/ivyconf.xml"/>
+
+ <!-- ================================== -->
+ <!-- RESOLVE -->
+ <!-- ================================== -->
+ <target name="resolve" description="--> retreive dependencies with ivy">
+ <mkdir dir="${basedir}/${lib.dir}" />
+ <ivy:retrieve/>
+ </target>
+
+ <!-- ================================== -->
+ <!-- CLASSPATH -->
+ <!-- ================================== -->
+ <target name="build-classpath" description="Computes a classpath according to current OS" >
+
+ <path id="classpath">
+ <fileset dir="../dependencies/eclipse/3.2">
+ <include name="**/*.jar"/>
+ </fileset>
+ <fileset dir="${lib.dir}" />
+ <pathelement location="${basedir}/../ldapstudio-browser-core/target/classes"/>
+ <pathelement location="${basedir}/../ldapstudio-browser-core/target/build"/>
+ <pathelement location="${basedir}/../ldapstudio-browser-common/target/classes"/>
+ <pathelement location="${basedir}/../ldapstudio-browser-common/target/build"/>
+ <pathelement location="target/classes"/>
+ </path>
+
+ </target>
+
+ <!-- ================================== -->
+ <!-- COMPILE -->
+ <!-- ================================== -->
+ <target name="compile" depends="resolve,checkclasses,build-classpath" unless="classes-up2date" description="Compiles the plugin">
+
+ <mkdir dir="${project.build}" />
+ <copy todir="${project.build}">
+ <fileset dir="${basedir}">
+ <include name="plugin.xml" />
+ <include name="plugin.properties" />
+ <include name="about.html" />
+ </fileset>
+ </copy>
+ <mkdir dir="${project.build}/${lib.dir}" />
+ <copy todir="${project.build}/${lib.dir}">
+ <fileset dir="${basedir}/${lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </copy>
+ <mkdir dir="${project.build}/META-INF" />
+ <copy todir="${project.build}/META-INF">
+ <fileset dir="${basedir}/META-INF">
+ <include name="**" />
+ </fileset>
+ </copy>
+ <mkdir dir="${project.build}/resources" />
+ <copy todir="${project.build}/resources">
+ <fileset dir="${basedir}/resources">
+ <include name="**" />
+ </fileset>
+ </copy>
+
+ <copy todir="${project.build}">
+ <fileset dir="${basedir}/src/main/resources">
+ <include name="**" />
+ </fileset>
+ </copy>
+
+ <javac
+ source="1.5"
+ debug="yes"
+ srcdir="${project.src}"
+ excludes=""
+ destdir="${project.build}"
+ classpathref="classpath"
+ listfiles="yes" verbose="false" />
+
+ <tstamp>
+ <format pattern="yyyy-MMM-dd, HH:mm 'GMT'Z" property="timestamp" locale="en" />
+ </tstamp>
+ <echo message="${project.name}-${project.version} compiled ${timestamp} by ${user.name}" file="${project.build}/compile.timestamp" />
+ </target>
+
+ <target name="checkclasses">
+ <uptodate property="classes-up2date" targetfile="${project.build}/compile.timestamp">
+ <srcfiles dir="${project.src}" />
+ </uptodate>
+ </target>
+
+ <!-- ================================== -->
+ <!-- JAVADOC -->
+ <!-- ================================== -->
+ <target name="javadoc" description="Generate Javadoc files">
+ <mkdir dir="${basedir}/doc" />
+ <javadoc destdir="${basedir}/doc">
+ <fileset dir="src/main/java" defaultexcludes="yes">
+ <include name="org/apache/directory/ldapstudio/**/*.java"/>
+ </fileset>
+ </javadoc>
+ </target>
+
+ <!-- ================================== -->
+ <!-- JAR -->
+ <!-- ================================== -->
+ <target name="jar" description="Creates jar file" depends="compile">
+ <jar destfile="${project.output}/${project.name}_${project.version}.jar" manifest="${project.build}/META-INF/MANIFEST.MF">
+ <fileset dir="${project.build}" excludes="compile.timestamp" />
+ </jar>
+ </target>
+
+ <!-- ================================== -->
+ <!-- CLEAN -->
+ <!-- ================================== -->
+ <target name="clean" description="Deletes any generated file (javadoc, classes, jars, distribution)">
+ <delete includeemptydirs="true">
+ <fileset dir="${basedir}">
+ <exclude name=".classpath"/>
+ <exclude name=".project"/>
+ <exclude name="about.html"/>
+ <exclude name="build.properties"/>
+ <exclude name="build.xml"/>
+ <exclude name="ivy.xml"/>
+ <exclude name="plugin.properties"/>
+ <exclude name="plugin.xml"/>
+ <exclude name="about_files/**"/>
+ <exclude name="resources/**"/>
+ <exclude name="META-INF/**"/>
+ <exclude name="src/**" />
+ </fileset>
+ </delete>
+ </target>
+</project>
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/ivy.xml
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/ivy.xml?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/ivy.xml (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/ivy.xml Mon Apr 9 02:53:20 2007
@@ -0,0 +1,21 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+-->
+<ivy-module version="1.0">
+ <info organisation="org.apache.directory.ldapstudio" module="ldapstudio-valueeditors"/>
+</ivy-module>
\ No newline at end of file
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/plugin.xml
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/plugin.xml?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/plugin.xml (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/plugin.xml Mon Apr 9 02:53:20 2007
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.apache.directory.ldapstudio.valueeditors">
+ <valueEditor
+ class="org.apache.directory.ldapstudio.valueeditors.password.PasswordValueEditor"
+ icon="resources/icons/passwordeditor.gif"
+ name="Password Editor">
+ <attribute attributeType="userPassword"/>
+ </valueEditor>
+ <valueEditor
+ class="org.apache.directory.ldapstudio.valueeditors.image.ImageValueEditor"
+ icon="resources/icons/imageeditor.gif"
+ name="Image Editor">
+ <syntax syntaxOID="1.3.6.1.4.1.1466.115.121.1.28"/>
+ </valueEditor>
+ <valueEditor
+ class="org.apache.directory.ldapstudio.valueeditors.time.InPlaceGeneralizedTimeValueEditor"
+ icon="resources/icons/generalizedtimeeditor.gif"
+ name="In-Place Generalized Time Editor">
+ <syntax syntaxOID="1.3.6.1.4.1.1466.115.121.1.24"/>
+ </valueEditor>
+ <valueEditor
+ class="org.apache.directory.ldapstudio.valueeditors.objectclass.ObjectClassValueEditor"
+ icon="resources/icons/objectclasseditor.png"
+ name="Object Class Editor">
+ <attribute attributeType="objectClass"/>
+ </valueEditor>
+ <valueEditor
+ class="org.apache.directory.ldapstudio.valueeditors.dn.DnValueEditor"
+ icon="resources/icons/dneditor.gif"
+ name="DN Editor">
+ <syntax syntaxOID="1.3.6.1.4.1.1466.115.121.1.12"/>
+ </valueEditor>
+ <valueEditor
+ class="org.apache.directory.ldapstudio.valueeditors.address.AddressValueEditor"
+ icon="resources/icons/addresseditor.gif"
+ name="Address Editor">
+ <syntax syntaxOID="1.3.6.1.4.1.1466.115.121.1.41"/>
+ </valueEditor>
+ <valueEditor
+ class="org.apache.directory.ldapstudio.valueeditors.integer.IntegerValueEditor"
+ icon="resources/icons/integereditor.gif"
+ name="Integer Editor">
+ <syntax syntaxOID="1.3.6.1.4.1.1466.115.121.1.27"/>
+ </valueEditor>
+ </extension>
+
+</plugin>
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/addresseditor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/addresseditor.gif?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/addresseditor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/attributetypeeditor.png
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/attributetypeeditor.png?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/attributetypeeditor.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/dneditor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/dneditor.gif?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/dneditor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/generalizedtimeeditor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/generalizedtimeeditor.gif?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/generalizedtimeeditor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/imageeditor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/imageeditor.gif?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/imageeditor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/inplace_oceditor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/inplace_oceditor.gif?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/inplace_oceditor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/integereditor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/integereditor.gif?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/integereditor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/objectclasseditor.png
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/objectclasseditor.png?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/objectclasseditor.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/passwordeditor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/passwordeditor.gif?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/passwordeditor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/texteditor.gif
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/texteditor.gif?view=auto&rev=526695
==============================================================================
Binary file - no diff available.
Propchange: directory/ldapstudio/trunk/ldapstudio-valueeditors/resources/icons/texteditor.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsActivator.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsActivator.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsActivator.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsActivator.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,119 @@
+package org.apache.directory.ldapstudio.valueeditors;
+
+
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class ValueEditorsActivator extends AbstractUIPlugin
+{
+
+ /** The plug-in ID */
+ public static final String PLUGIN_ID = "org.apache.directory.ldapstudio.valueeditors";
+
+ /** The shared instance */
+ private static ValueEditorsActivator plugin;
+
+
+ /**
+ * The constructor
+ */
+ public ValueEditorsActivator()
+ {
+ plugin = this;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void start( BundleContext context ) throws Exception
+ {
+ super.start( context );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void stop( BundleContext context ) throws Exception
+ {
+ plugin = null;
+ super.stop( context );
+ }
+
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static ValueEditorsActivator getDefault()
+ {
+ return plugin;
+ }
+
+
+ /**
+ * Use this method to get SWT images. Use the IMG_ constants from
+ * ValueEditorConstants for the key.
+ *
+ * @param key
+ * The key (relative path to the image im filesystem)
+ * @return The image discriptor or null
+ */
+ public ImageDescriptor getImageDescriptor( String key )
+ {
+ if ( key != null )
+ {
+ URL url = FileLocator.find( getBundle(), new Path( key ), null );
+ if ( url != null )
+ return ImageDescriptor.createFromURL( url );
+ else
+ return null;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+ /**
+ * Use this method to get SWT images. Use the IMG_ constants from
+ * ValueEditorConstants for the key. A ImageRegistry is used to manage the
+ * the key->Image mapping.
+ * <p>
+ * Note: Don't dispose the returned SWT Image. It is disposed
+ * automatically when the plugin is stopped.
+ *
+ * @param key
+ * The key (relative path to the image im filesystem)
+ * @return The SWT Image or null
+ * @see ValueEditorsConstants
+ */
+ public Image getImage( String key )
+ {
+ Image image = getImageRegistry().get( key );
+ if ( image == null )
+ {
+ ImageDescriptor id = getImageDescriptor( key );
+ if ( id != null )
+ {
+ image = id.createImage();
+ getImageRegistry().put( key, image );
+ }
+ }
+ return image;
+ }
+
+}
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsConstants.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsConstants.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsConstants.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/ValueEditorsConstants.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,32 @@
+
+package org.apache.directory.ldapstudio.valueeditors;
+
+public interface ValueEditorsConstants
+{
+
+ public static final String PREFERENCE_SYNTAX_VALUEPROVIDER_RELATIONS = "syntaxValueProviderRelations";
+
+ public static final String PREFERENCE_ATTRIBUTE_VALUEPROVIDER_RELATIONS = "attributeValueProviderRelations";
+
+ public static final String PREFERENCE_SHOW_RAW_VALUES = "showRawValues";
+
+
+ public static final String IMG_IMAGEEDITOR = "resources/icons/imageeditor.gif";
+
+ public static final String IMG_ADDRESSEDITOR = "resources/icons/addresseditor.gif";
+
+ public static final String IMG_DNEDITOR = "resources/icons/dneditor.gif";
+
+ public static final String IMG_PASSWORDEDITOR = "resources/icons/passwordeditor.gif";
+
+ public static final String IMG_INPLACE_OCEDITOR = "resources/icons/inplace_oceditor.gif";
+
+ public static final String IMG_INPLACE_GENERALIZEDTIMEEDITOR = "resources/icons/inplace_generalizedtimeeditor.gif";
+
+ public static final String IMG_ATDEDITOR = "resources/icons/attributetypeeditor.png";
+
+ public static final String IMG_OCDEDITOR = "resources/icons/objectclasseditor.png";
+
+ public static final String IMG_FILTEREDITOR = "resources/icons/filtereditor.png";
+
+}
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressDialog.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressDialog.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressDialog.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressDialog.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.directory.ldapstudio.valueeditors.address;
+
+
+import org.apache.directory.ldapstudio.browser.core.BrowserCoreConstants;
+import org.apache.directory.ldapstudio.valueeditors.ValueEditorsActivator;
+import org.apache.directory.ldapstudio.valueeditors.ValueEditorsConstants;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+
+public class AddressDialog extends Dialog
+{
+
+ public static final String DIALOG_TITLE = "Address Editor";
+
+ public static final double MAX_WIDTH = 250.0;
+
+ public static final double MAX_HEIGHT = 250.0;
+
+ private String initialValue;
+
+ private String returnValue;
+
+ private Text text;
+
+
+ public AddressDialog( Shell parentShell, String initialValue )
+ {
+ super( parentShell );
+ super.setShellStyle( super.getShellStyle() | SWT.RESIZE );
+ this.initialValue = initialValue;
+ this.returnValue = null;
+ }
+
+
+ public boolean close()
+ {
+ return super.close();
+ }
+
+
+ protected void configureShell( Shell shell )
+ {
+ super.configureShell( shell );
+ shell.setText( DIALOG_TITLE );
+ shell.setImage( ValueEditorsActivator.getDefault().getImage( ValueEditorsConstants.IMG_ADDRESSEDITOR ) );
+ }
+
+
+ protected void createButtonsForButtonBar( Composite parent )
+ {
+ createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false );
+ createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
+ }
+
+
+ protected void okPressed()
+ {
+ this.returnValue = this.text.getText();
+ this.returnValue = this.returnValue.replaceAll( "\n", "\\$" );
+ this.returnValue = this.returnValue.replaceAll( "\r", "\\$" );
+ this.returnValue = this.returnValue.replaceAll( "\\$\\$", "\\$" );
+ super.okPressed();
+ }
+
+
+ protected Control createDialogArea( Composite parent )
+ {
+ // create composite
+ Composite composite = ( Composite ) super.createDialogArea( parent );
+ GridData gd = new GridData( GridData.FILL_BOTH );
+ composite.setLayoutData( gd );
+
+ // text widget
+ text = new Text( composite, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL );
+ text.setText( this.initialValue.replaceAll( "\\$", BrowserCoreConstants.LINE_SEPARATOR ) );
+ // GridData gd = new GridData(GridData.GRAB_HORIZONTAL |
+ // GridData.HORIZONTAL_ALIGN_FILL);
+ gd = new GridData( GridData.FILL_BOTH );
+ gd.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH );
+ gd.heightHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH / 2 );
+ text.setLayoutData( gd );
+
+ applyDialogFont( composite );
+ return composite;
+ }
+
+
+ public String getText()
+ {
+ return this.returnValue;
+ }
+
+}
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressValueEditor.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressValueEditor.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressValueEditor.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/address/AddressValueEditor.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.directory.ldapstudio.valueeditors.address;
+
+
+import org.apache.directory.ldapstudio.browser.common.dialogs.TextDialog;
+import org.apache.directory.ldapstudio.browser.core.model.IValue;
+import org.apache.directory.ldapstudio.valueeditors.AbstractDialogStringValueEditor;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ * Implementation of IValueEditor for syntax 1.3.6.1.4.1.1466.115.121.1.41
+ * (Postal Address). In the displayed value the $ separators are replaced
+ * by commas. In the opened AddressDialog the $ separators are recplaced by
+ * line breaks.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class AddressValueEditor extends AbstractDialogStringValueEditor
+{
+
+ /**
+ * {@inheritDoc}
+ *
+ * This implementation opens the AddressDialog.
+ */
+ protected boolean openDialog( Shell shell )
+ {
+ Object value = getValue();
+ if ( value != null && value instanceof String )
+ {
+ AddressDialog dialog = new AddressDialog( shell, ( String ) value );
+ if ( dialog.open() == TextDialog.OK && !"".equals( dialog.getText() ) )
+ {
+ setValue( dialog.getText() );
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * This implementatiosn replaces the $ separators by commas.
+ */
+ public String getDisplayValue( IValue value )
+ {
+ String displayValue = super.getDisplayValue( value );
+
+ if ( !showRawValues() )
+ {
+ displayValue = displayValue.replaceAll( "\\$", ", " );
+ }
+
+ return displayValue;
+ }
+
+}
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnDialog.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnDialog.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnDialog.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnDialog.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.directory.ldapstudio.valueeditors.dn;
+
+
+import org.apache.directory.ldapstudio.browser.common.widgets.BaseWidgetUtils;
+import org.apache.directory.ldapstudio.browser.common.widgets.WidgetModifyEvent;
+import org.apache.directory.ldapstudio.browser.common.widgets.WidgetModifyListener;
+import org.apache.directory.ldapstudio.browser.common.widgets.search.EntryWidget;
+import org.apache.directory.ldapstudio.browser.core.model.DN;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.valueeditors.ValueEditorsActivator;
+import org.apache.directory.ldapstudio.valueeditors.ValueEditorsConstants;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+
+public class DnDialog extends Dialog implements WidgetModifyListener
+{
+
+ public static final String DIALOG_TITLE = "DN Editor";
+
+ private EntryWidget entryWidget;
+
+ private IConnection connection;
+
+ private DN dn;
+
+
+ public DnDialog( Shell parentShell, IConnection connection, DN dn )
+ {
+ super( parentShell );
+ super.setShellStyle( super.getShellStyle() | SWT.RESIZE );
+ this.connection = connection;
+ this.dn = dn;
+ }
+
+
+ protected void configureShell( Shell shell )
+ {
+ super.configureShell( shell );
+ shell.setText( DIALOG_TITLE );
+ shell.setImage( ValueEditorsActivator.getDefault().getImage( ValueEditorsConstants.IMG_DNEDITOR ) );
+ }
+
+
+ public boolean close()
+ {
+ this.entryWidget.removeWidgetModifyListener( this );
+ return super.close();
+ }
+
+
+ protected void okPressed()
+ {
+ this.dn = this.entryWidget.getDn();
+ this.entryWidget.saveDialogSettings();
+ super.okPressed();
+ }
+
+
+ protected Control createDialogArea( Composite parent )
+ {
+
+ Composite composite = ( Composite ) super.createDialogArea( parent );
+ GridData gd = new GridData( GridData.FILL_BOTH );
+ gd.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH ) * 3 / 2;
+ composite.setLayoutData( gd );
+
+ Composite innerComposite = BaseWidgetUtils.createColumnContainer( composite, 2, 1 );
+ this.entryWidget = new EntryWidget( connection, dn );
+ this.entryWidget.addWidgetModifyListener( this );
+ this.entryWidget.createWidget( innerComposite );
+
+ applyDialogFont( composite );
+ return composite;
+ }
+
+
+ public void widgetModified( WidgetModifyEvent event )
+ {
+ if ( getButton( IDialogConstants.OK_ID ) != null )
+ {
+ getButton( IDialogConstants.OK_ID ).setEnabled( this.entryWidget.getDn() != null );
+ }
+ }
+
+
+ public DN getDn()
+ {
+ return this.dn;
+ }
+
+}
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnValueEditor.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnValueEditor.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnValueEditor.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/dn/DnValueEditor.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,206 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.directory.ldapstudio.valueeditors.dn;
+
+
+import org.apache.directory.ldapstudio.browser.common.dialogs.TextDialog;
+import org.apache.directory.ldapstudio.browser.core.model.AttributeHierarchy;
+import org.apache.directory.ldapstudio.browser.core.model.DN;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.browser.core.model.IValue;
+import org.apache.directory.ldapstudio.browser.core.model.NameException;
+import org.apache.directory.ldapstudio.valueeditors.AbstractDialogStringValueEditor;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ * Implementation of IValueEditor for syntax 1.3.6.1.4.1.1466.115.121.1.12
+ * (Distinguished Name).
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class DnValueEditor extends AbstractDialogStringValueEditor
+{
+
+ /**
+ * {@inheritDoc}
+ *
+ * This implementation opens the DnDialog.
+ */
+ protected boolean openDialog( Shell shell )
+ {
+ Object value = getValue();
+ if ( value != null && value instanceof DnValueEditorRawValueWrapper )
+ {
+ DnValueEditorRawValueWrapper wrapper = ( DnValueEditorRawValueWrapper ) value;
+ DnDialog dialog = new DnDialog( shell, wrapper.connection, wrapper.dn );
+ if ( dialog.open() == TextDialog.OK && dialog.getDn() != null )
+ {
+ setValue( dialog.getDn().toString() );
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * Returns a DnValueEditorRawValueWrapper with the connection of
+ * the attribute hierarchy and a null DN if there are no values
+ * in attributeHierarchy.
+ *
+ * Returns a DnValueEditorRawValueWrapper with the connection of
+ * the attribute hierarchy and a DN if there is one value
+ * in attributeHierarchy.
+ */
+ public Object getRawValue( AttributeHierarchy attributeHierarchy )
+ {
+ if ( attributeHierarchy == null )
+ {
+ return null;
+ }
+ else if ( attributeHierarchy.size() == 1 && attributeHierarchy.getAttribute().getValueSize() == 0 )
+ {
+ IConnection connection = attributeHierarchy.getAttribute().getEntry().getConnection();
+ DN dn = null;
+ return new DnValueEditorRawValueWrapper( connection, dn );
+ }
+ else if ( attributeHierarchy.size() == 1 && attributeHierarchy.getAttribute().getValueSize() == 1 )
+ {
+ IConnection connection = attributeHierarchy.getAttribute().getEntry().getConnection();
+ try
+ {
+ DN dn = new DN( getDisplayValue( attributeHierarchy ) );
+ return new DnValueEditorRawValueWrapper( connection, dn );
+ }
+ catch ( NameException e )
+ {
+ return new DnValueEditorRawValueWrapper( connection, null );
+ }
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * Returns a DnValueEditorRawValueWrapper with the connection of
+ * the value and a DN build from the given value.
+ *
+ * If the value doesn't contain a valid DN a DnValueEditorRawValueWrapper
+ * with a null DN is returned.
+ */
+ public Object getRawValue( IValue value )
+ {
+ Object o = super.getRawValue( value );
+ if ( o != null && o instanceof String )
+ {
+ IConnection connection = value.getAttribute().getEntry().getConnection();
+ try
+ {
+ DN dn = new DN( ( String ) o );
+ return new DnValueEditorRawValueWrapper( connection, dn );
+ }
+ catch ( NameException e )
+ {
+ return new DnValueEditorRawValueWrapper( connection, null );
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * Returns a DnValueEditorRawValueWrapper with the given
+ * connection and a DN build from the given value.
+ *
+ * If the value doesn't contain a valid DN a DnValueEditorRawValueWrapper
+ * with a null DN is returned.
+ */
+ public Object getRawValue( IConnection connection, Object value )
+ {
+ Object o = super.getRawValue( connection, value );
+ if ( o != null && o instanceof String )
+ {
+ try
+ {
+ DN dn = new DN( ( String ) o );
+ return new DnValueEditorRawValueWrapper( connection, dn );
+ }
+ catch ( NameException e )
+ {
+ return new DnValueEditorRawValueWrapper( connection, null );
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * The DnValueEditorRawValueWrapper is used to pass contextual
+ * information to the opened DnDialog.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+ private class DnValueEditorRawValueWrapper
+ {
+ /** The connection, used in DnDialog to browse for an entry */
+ private IConnection connection;
+
+ /** The DN, used as initial value in DnDialog */
+ private DN dn;
+
+
+ /**
+ * Creates a new instance of DnValueEditorRawValueWrapper.
+ *
+ * @param connection the connection
+ * @param dn the DN
+ */
+ private DnValueEditorRawValueWrapper( IConnection connection, DN dn )
+ {
+ this.connection = connection;
+ this.dn = dn;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String toString()
+ {
+ return dn == null ? "" : dn.toString();
+ }
+
+ }
+
+}
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageDialog.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageDialog.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageDialog.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageDialog.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,686 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.directory.ldapstudio.valueeditors.image;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import org.apache.directory.ldapstudio.browser.common.BrowserCommonActivator;
+import org.apache.directory.ldapstudio.browser.common.widgets.BaseWidgetUtils;
+import org.apache.directory.ldapstudio.valueeditors.ValueEditorsActivator;
+import org.apache.directory.ldapstudio.valueeditors.ValueEditorsConstants;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTException;
+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.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.ImageLoader;
+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.Control;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Text;
+
+
+public class ImageDialog extends Dialog
+{
+
+ public static final String DIALOG_TITLE = "Image Editor";
+
+ // public static final String[] IMAGE_FILE_EXTENSIONS = {"*.jpg; *.jpeg;
+ // *.gif; *.bmp; *.png"};
+ public static final int MAX_WIDTH = 250;
+
+ public static final int MAX_HEIGHT = 250;
+
+ public static final int CURRENT_TAB = 0;
+
+ public static final int NEW_TAB = 1;
+
+ public static final String SELECTED_TAB_DIALOGSETTINGS_KEY = ImageDialog.class.getName() + ".tab";
+
+ private TabFolder tabFolder;
+
+ private TabItem currentTab;
+
+ private TabItem newTab;
+
+ private byte[] currentImageRawData;
+
+ private Image currentImage;
+
+ private Composite currentImageContainer;
+
+ private Label currentImageLabel;
+
+ private Text currentImageTypeText;
+
+ private Text currentImageWidthText;
+
+ private Text currentImageHeightText;
+
+ private Text currentImageSizeText;
+
+ private Button currentImageSaveButton;
+
+ private byte[] newImageRawData;
+
+ private Image newImage;
+
+ private Composite newImageContainer;
+
+ private Label newImageLabel;
+
+ private Text newImageTypeText;
+
+ private Text newImageWidthText;
+
+ private Text newImageHeightText;
+
+ private Text newImageSizeText;
+
+ private Text newImageFilenameText;
+
+ private Button newImageBrowseButton;
+
+ private int requiredImageType;
+
+ private byte[] newImageRawDataInRequiredFormat;
+
+ private Button okButton;
+
+
+ public ImageDialog( Shell parentShell, byte[] currentImageRawData, int requiredImageType )
+ {
+ super( parentShell );
+ super.setShellStyle( super.getShellStyle() | SWT.RESIZE );
+ this.currentImageRawData = currentImageRawData;
+ this.requiredImageType = requiredImageType;
+
+ newImageRawDataInRequiredFormat = null;
+ }
+
+
+ public boolean close()
+ {
+ if ( this.currentImage != null && !this.currentImage.isDisposed() )
+ {
+ this.currentImage.dispose();
+ }
+ if ( this.newImage != null && !this.newImage.isDisposed() )
+ {
+ this.newImage.dispose();
+ }
+
+ // save selected tab to dialog settings
+ ValueEditorsActivator.getDefault().getDialogSettings().put( SELECTED_TAB_DIALOGSETTINGS_KEY,
+ this.tabFolder.getSelectionIndex() );
+
+ return super.close();
+ }
+
+
+ protected void buttonPressed( int buttonId )
+ {
+ if ( buttonId == IDialogConstants.OK_ID )
+ {
+ if ( this.newImageRawData != null )
+ {
+ try
+ {
+ ImageData imageData = new ImageData( new ByteArrayInputStream( this.newImageRawData ) );
+ if ( imageData.type != this.requiredImageType )
+ {
+ ImageLoader imageLoader = new ImageLoader();
+ imageLoader.data = new ImageData[]
+ { imageData };
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ imageLoader.save( baos, this.requiredImageType );
+ this.newImageRawDataInRequiredFormat = baos.toByteArray();
+ }
+ else
+ {
+ this.newImageRawDataInRequiredFormat = this.newImageRawData;
+ }
+ }
+ catch ( SWTException swte )
+ {
+ this.newImageRawDataInRequiredFormat = null;
+ }
+ }
+
+ }
+ else
+ {
+ this.newImageRawDataInRequiredFormat = null;
+ }
+
+ super.buttonPressed( buttonId );
+ }
+
+
+ protected void configureShell( Shell shell )
+ {
+ super.configureShell( shell );
+ shell.setText( DIALOG_TITLE );
+ shell.setImage( ValueEditorsActivator.getDefault().getImage( ValueEditorsConstants.IMG_IMAGEEDITOR ) );
+ }
+
+
+ protected void createButtonsForButtonBar( Composite parent )
+ {
+ okButton = createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false );
+ createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
+
+ // load dialog settings
+ try
+ {
+ int tabIndex = ValueEditorsActivator.getDefault().getDialogSettings().getInt( SELECTED_TAB_DIALOGSETTINGS_KEY );
+ this.tabFolder.setSelection( tabIndex );
+ }
+ catch ( Exception e )
+ {
+ }
+
+ // update on load
+ updateTabFolder();
+ }
+
+
+ protected Control createDialogArea( Composite parent )
+ {
+
+ Composite composite = ( Composite ) super.createDialogArea( parent );
+ GridData gd1 = new GridData( GridData.FILL_BOTH );
+ gd1.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH );
+ gd1.heightHint = convertVerticalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH );
+ composite.setLayoutData( gd1 );
+
+ this.tabFolder = new TabFolder( composite, SWT.TOP );
+ GridLayout mainLayout = new GridLayout();
+ mainLayout.marginWidth = 0;
+ mainLayout.marginHeight = 0;
+ this.tabFolder.setLayout( mainLayout );
+ this.tabFolder.setLayoutData( new GridData( GridData.FILL_BOTH ) );
+ this.tabFolder.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ updateTabFolder();
+ }
+ } );
+
+ // current image
+ if ( this.currentImageRawData != null && this.currentImageRawData.length > 0 )
+ {
+ currentImageContainer = new Composite( this.tabFolder, SWT.NONE );
+ GridLayout currentLayout = new GridLayout( 1, false );
+ currentLayout.marginHeight = convertVerticalDLUsToPixels( IDialogConstants.VERTICAL_MARGIN );
+ currentLayout.marginWidth = convertHorizontalDLUsToPixels( IDialogConstants.HORIZONTAL_MARGIN );
+ currentLayout.verticalSpacing = convertVerticalDLUsToPixels( IDialogConstants.VERTICAL_SPACING );
+ currentLayout.horizontalSpacing = convertHorizontalDLUsToPixels( IDialogConstants.HORIZONTAL_SPACING );
+ currentImageContainer.setLayout( currentLayout );
+ currentImageContainer.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
+
+ currentImageLabel = createImageLabel( currentImageContainer );
+
+ Composite currentImageInfoContainer = createImageInfoContainer( currentImageContainer );
+ currentImageTypeText = createImageInfo( currentImageInfoContainer, "Image Type:" );
+ currentImageSizeText = createImageInfo( currentImageInfoContainer, "Image Size:" );
+ currentImageWidthText = createImageInfo( currentImageInfoContainer, "Image Width:" );
+ currentImageHeightText = createImageInfo( currentImageInfoContainer, "Image Height:" );
+
+ Composite currentImageSaveContainer = createImageInfoContainer( currentImageContainer );
+ Label dummyLabel = BaseWidgetUtils.createLabel( currentImageSaveContainer, "", 1 );
+ GridData gd = new GridData( GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL );
+ dummyLabel.setLayoutData( gd );
+ currentImageSaveButton = createButton( currentImageSaveContainer, "Save..." );
+ currentImageSaveButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent event )
+ {
+ FileDialog fileDialog = new FileDialog( ImageDialog.this.getShell(), SWT.SAVE );
+ fileDialog.setText( "Save Image" );
+ fileDialog.setFilterExtensions( new String[]
+ { "*.jpg" } );
+ String returnedFileName = fileDialog.open();
+ if ( returnedFileName != null )
+ {
+ try
+ {
+ File file = new File( returnedFileName );
+ FileOutputStream out = new FileOutputStream( file );
+ out.write( currentImageRawData );
+ out.flush();
+ out.close();
+ }
+ catch ( FileNotFoundException e )
+ {
+
+ BrowserCommonActivator.getDefault()
+ .getExceptionHandler().handleException(
+ new Status( IStatus.ERROR, ValueEditorsActivator.PLUGIN_ID, IStatus.ERROR,
+ "Can't write to file", e ) );
+ }
+ catch ( IOException e )
+ {
+ BrowserCommonActivator.getDefault()
+ .getExceptionHandler().handleException(
+ new Status( IStatus.ERROR, ValueEditorsActivator.PLUGIN_ID, IStatus.ERROR,
+ "Can't write to file", e ) );
+ }
+ }
+ }
+ } );
+
+ this.currentTab = new TabItem( this.tabFolder, SWT.NONE );
+ this.currentTab.setText( "Current Image" );
+ this.currentTab.setControl( currentImageContainer );
+ }
+
+ // new image
+ newImageContainer = new Composite( this.tabFolder, SWT.NONE );
+ GridLayout newLayout = new GridLayout( 1, false );
+ newLayout.marginHeight = convertVerticalDLUsToPixels( IDialogConstants.VERTICAL_MARGIN );
+ newLayout.marginWidth = convertHorizontalDLUsToPixels( IDialogConstants.HORIZONTAL_MARGIN );
+ newLayout.verticalSpacing = convertVerticalDLUsToPixels( IDialogConstants.VERTICAL_SPACING );
+ newLayout.horizontalSpacing = convertHorizontalDLUsToPixels( IDialogConstants.HORIZONTAL_SPACING );
+ newImageContainer.setLayout( newLayout );
+ newImageContainer.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
+
+ newImageLabel = createImageLabel( newImageContainer );
+
+ Composite newImageInfoContainer = createImageInfoContainer( newImageContainer );
+ newImageTypeText = createImageInfo( newImageInfoContainer, "Image Type:" );
+ newImageSizeText = createImageInfo( newImageInfoContainer, "Image Size:" );
+ newImageWidthText = createImageInfo( newImageInfoContainer, "Image Width:" );
+ newImageHeightText = createImageInfo( newImageInfoContainer, "Image Height:" );
+
+ Composite newImageSelectContainer = createImageInfoContainer( newImageContainer );
+ newImageFilenameText = new Text( newImageSelectContainer, SWT.SINGLE | SWT.BORDER );
+ GridData gd = new GridData( GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL );
+ newImageFilenameText.setLayoutData( gd );
+ newImageFilenameText.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ updateNewImageGroup();
+ }
+ } );
+ newImageBrowseButton = createButton( newImageSelectContainer, "Browse..." );
+ newImageBrowseButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent event )
+ {
+ FileDialog fileDialog = new FileDialog( ImageDialog.this.getShell(), SWT.OPEN );
+ fileDialog.setText( "Select Image" );
+ // fileDialog.setFilterExtensions(IMAGE_FILE_EXTENSIONS);
+ fileDialog.setFileName( new File( newImageFilenameText.getText() ).getName() );
+ fileDialog.setFilterPath( new File( newImageFilenameText.getText() ).getParent() );
+ String returnedFileName = fileDialog.open();
+ if ( returnedFileName != null )
+ {
+ newImageFilenameText.setText( returnedFileName );
+ }
+ }
+ } );
+
+ this.newTab = new TabItem( this.tabFolder, SWT.NONE );
+ this.newTab.setText( "New Image" );
+ this.newTab.setControl( newImageContainer );
+
+ applyDialogFont( composite );
+ return composite;
+ }
+
+
+ private void updateCurrentImageGroup()
+ {
+
+ if ( currentTab != null )
+ {
+
+ if ( currentImage != null && !currentImage.isDisposed() )
+ {
+ currentImage.dispose();
+ currentImage = null;
+ }
+
+ if ( currentImageRawData != null && currentImageRawData.length > 0 )
+ {
+ try
+ {
+ ImageData imageData = new ImageData( new ByteArrayInputStream( currentImageRawData ) );
+ currentImage = new Image( getShell().getDisplay(), resizeImage( imageData ) );
+ currentImageLabel.setText( "" );
+ currentImageLabel.setImage( currentImage );
+ currentImageTypeText.setText( getImageType( imageData.type ) );
+ currentImageSizeText.setText( getSizeString( currentImageRawData.length ) );
+ currentImageWidthText.setText( imageData.width + " Pixel" );
+ currentImageHeightText.setText( imageData.height + " Pixel" );
+ }
+ catch ( SWTException swte )
+ {
+ currentImageLabel.setImage( null );
+ currentImageLabel.setText( " Unsupported format " );
+ currentImageTypeText.setText( "Unsupported format" );
+ currentImageSizeText.setText( getSizeString( currentImageRawData.length ) );
+ currentImageWidthText.setText( "-" );
+ currentImageHeightText.setText( "-" );
+ }
+ // currentImageGroup.setVisible(true);
+ }
+ else
+ {
+ currentImageLabel.setImage( null );
+ currentImageLabel.setText( " No Image " );
+ currentImageTypeText.setText( "No Image" );
+ currentImageSizeText.setText( "-" );
+ currentImageWidthText.setText( "-" );
+ currentImageHeightText.setText( "-" );
+ }
+
+ currentImageSaveButton.setEnabled( currentImageRawData != null && currentImageRawData.length > 0 );
+
+ // super.initializeBounds();
+ }
+ }
+
+
+ private void updateNewImageGroup()
+ {
+
+ if ( newImage != null && !newImage.isDisposed() )
+ {
+ newImage.dispose();
+ newImage = null;
+ }
+
+ if ( !"".equals( newImageFilenameText.getText() ) )
+ {
+ try
+ {
+ File file = new File( newImageFilenameText.getText() );
+ FileInputStream in = new FileInputStream( file );
+ ByteArrayOutputStream out = new ByteArrayOutputStream( ( int ) file.length() );
+ byte[] buf = new byte[4096];
+ int len;
+ while ( ( len = in.read( buf ) ) > 0 )
+ {
+ out.write( buf, 0, len );
+ }
+ this.newImageRawData = out.toByteArray();
+ out.close();
+ in.close();
+ }
+ catch ( FileNotFoundException e )
+ {
+ newImageRawData = null;
+ newImageLabel.setImage( null );
+ newImageLabel.setText( " Error: File not found " );
+ newImageTypeText.setText( "-" );
+ newImageSizeText.setText( "-" );
+ newImageWidthText.setText( "-" );
+ newImageHeightText.setText( "-" );
+ }
+ catch ( IOException e )
+ {
+ newImageRawData = null;
+ newImageLabel.setImage( null );
+ newImageLabel.setText( " Error: Can't read file (" + e.getMessage() + ") " );
+ newImageTypeText.setText( "-" );
+ newImageSizeText.setText( "-" );
+ newImageWidthText.setText( "-" );
+ newImageHeightText.setText( "-" );
+ }
+ }
+ else
+ {
+ newImageRawData = null;
+ newImageLabel.setImage( null );
+ newImageLabel.setText( " No image selected " );
+ newImageTypeText.setText( "-" );
+ newImageSizeText.setText( "-" );
+ newImageWidthText.setText( "-" );
+ newImageHeightText.setText( "-" );
+ }
+
+ if ( newImageRawData != null && newImageRawData.length > 0 )
+ {
+ try
+ {
+ ImageData imageData = new ImageData( new ByteArrayInputStream( newImageRawData ) );
+ newImage = new Image( getShell().getDisplay(), resizeImage( imageData ) );
+ newImageLabel.setImage( newImage );
+ newImageTypeText.setText( getImageType( imageData.type ) );
+ if ( imageData.type != requiredImageType )
+ {
+ newImageTypeText.setText( newImageTypeText.getText() + " (will be converted to "
+ + getImageType( this.requiredImageType ) + ")" );
+ }
+ newImageSizeText.setText( getSizeString( newImageRawData.length ) );
+ newImageWidthText.setText( imageData.width + " Pixel" );
+ newImageHeightText.setText( imageData.height + " Pixel" );
+ }
+ catch ( SWTException swte )
+ {
+ newImageLabel.setImage( null );
+ newImageLabel.setText( " Unsupported format " );
+ newImageTypeText.setText( "Unsupported format" );
+ newImageSizeText.setText( getSizeString( newImageRawData.length ) );
+ newImageWidthText.setText( "-" );
+ newImageHeightText.setText( "-" );
+ }
+ }
+
+ if ( okButton != null )
+ {
+ okButton.setEnabled( newImage != null );
+ }
+
+ newImageLabel.getParent().layout();
+ newImageTypeText.getParent().layout();
+ // newImageGroup.layout();
+ // super.initializeBounds();
+
+ }
+
+
+ private void updateTabFolder()
+ {
+ if ( currentImageSaveButton != null )
+ {
+ if ( tabFolder.getSelectionIndex() == CURRENT_TAB )
+ {
+ currentImageSaveButton.setFocus();
+ }
+ updateCurrentImageGroup();
+ }
+
+ if ( newImageBrowseButton != null )
+ {
+ if ( tabFolder.getSelectionIndex() == NEW_TAB || currentImageSaveButton == null )
+ {
+ newImageBrowseButton.setFocus();
+ }
+ updateNewImageGroup();
+ }
+ }
+
+
+ private ImageData resizeImage( ImageData imageData )
+ {
+ double widthScaleFactor = 1.0;
+ if ( imageData.width > MAX_WIDTH )
+ {
+ widthScaleFactor = ( double ) MAX_WIDTH / imageData.width;
+ }
+ double heightScaleFactor = 1.0;
+ if ( imageData.height > MAX_HEIGHT )
+ {
+ heightScaleFactor = ( double ) MAX_HEIGHT / imageData.height;
+ }
+
+ if ( heightScaleFactor < widthScaleFactor )
+ {
+ imageData = imageData.scaledTo(
+ convertHorizontalDLUsToPixels( ( int ) ( imageData.width * heightScaleFactor ) ),
+ convertHorizontalDLUsToPixels( ( int ) ( imageData.height * heightScaleFactor ) ) );
+ }
+ else
+ {
+ imageData = imageData.scaledTo(
+ convertHorizontalDLUsToPixels( ( int ) ( imageData.width * widthScaleFactor ) ),
+ convertHorizontalDLUsToPixels( ( int ) ( imageData.height * widthScaleFactor ) ) );
+ }
+
+ return imageData;
+ }
+
+
+ private Label createImageLabel( Composite parent )
+ {
+ Composite labelComposite = new Composite( parent, SWT.BORDER );
+ GridLayout gl = new GridLayout( 1, true );
+ labelComposite.setLayout( gl );
+ GridData gd = new GridData( GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL );
+ gd.widthHint = MAX_WIDTH;
+ gd.heightHint = MAX_HEIGHT;
+ labelComposite.setLayoutData( gd );
+ labelComposite.setBackground( getShell().getDisplay().getSystemColor( SWT.COLOR_WIDGET_NORMAL_SHADOW ) );
+
+ Label imageLabel = new Label( labelComposite, SWT.CENTER );
+ gd = new GridData( SWT.CENTER, SWT.CENTER, true, true );
+ imageLabel.setLayoutData( gd );
+ return imageLabel;
+ }
+
+
+ private Composite createImageInfoContainer( Composite parent )
+ {
+ Composite imageInfoContainer = new Composite( parent, SWT.NONE );
+ GridLayout gl = new GridLayout( 2, false );
+ gl.marginHeight = gl.marginWidth = 0;
+ imageInfoContainer.setLayout( gl );
+ imageInfoContainer.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
+ return imageInfoContainer;
+ }
+
+
+ private Text createImageInfo( Composite parent, String label )
+ {
+ BaseWidgetUtils.createLabel( parent, label, 1 );
+ Text text = BaseWidgetUtils.createLabeledText( parent, "", 1 );
+ return text;
+ }
+
+
+ private Button createButton( Composite parent, String label )
+ {
+ Button button = BaseWidgetUtils.createButton( parent, label, 1 );
+ return button;
+ }
+
+
+ public static String getSizeString( int length )
+ {
+ if ( length > 1000000 )
+ return ( length / 1000000 ) + " MB (" + length + " bytes)";
+ else if ( length > 1000 )
+ return ( length / 1000 ) + " KB (" + length + " bytes)";
+ else
+ return length + " bytes";
+ }
+
+
+ public static String getImageInfo( byte[] imageRawData )
+ {
+
+ if ( imageRawData == null )
+ {
+ return "NULL";
+ }
+
+ String text = "Image (" + imageRawData.length + " Bytes)";
+ try
+ {
+ ByteArrayInputStream bais = new ByteArrayInputStream( imageRawData );
+ ImageData imageData = new ImageData( bais );
+
+ String typePrefix = getImageType( imageData.type );
+ if ( !"".equals( typePrefix ) )
+ typePrefix += "-";
+
+ text = typePrefix + "Image (" + imageData.width + "x" + imageData.height + " Pixel, " + imageRawData.length
+ + " Bytes)";
+ }
+ catch ( SWTException swte )
+ {
+ text = "Invalid Image (" + imageRawData.length + " Bytes)";
+ }
+ return text;
+ }
+
+
+ public static String getImageType( int swtCode )
+ {
+ String type = "";
+ if ( swtCode == SWT.IMAGE_JPEG )
+ type = "JPEG";
+ else if ( swtCode == SWT.IMAGE_GIF )
+ type = "GIF";
+ else if ( swtCode == SWT.IMAGE_PNG )
+ type = "PNG";
+ else if ( swtCode == SWT.IMAGE_BMP || swtCode == SWT.IMAGE_BMP_RLE )
+ type = "BMP";
+ return type;
+ }
+
+
+ /**
+ *
+ *
+ * @return Returns the image data in required format or null.
+ */
+ public byte[] getNewImageRawData()
+ {
+ return this.newImageRawDataInRequiredFormat;
+ }
+}
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageValueEditor.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageValueEditor.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageValueEditor.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/image/ImageValueEditor.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.directory.ldapstudio.valueeditors.image;
+
+
+import org.apache.directory.ldapstudio.browser.common.dialogs.TextDialog;
+import org.apache.directory.ldapstudio.browser.core.model.IValue;
+import org.apache.directory.ldapstudio.valueeditors.AbstractDialogBinaryValueEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ * Implementation of IValueEditor for syntax 1.3.6.1.4.1.1466.115.121.1.28
+ * (JPEG).
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ImageValueEditor extends AbstractDialogBinaryValueEditor
+{
+
+ /**
+ * {@inheritDoc}
+ *
+ * This implementation opens the ImageDialog.
+ */
+ protected boolean openDialog( Shell shell )
+ {
+ Object value = getValue();
+
+ if ( value != null && value instanceof byte[] )
+ {
+ byte[] currentImageData = ( byte[] ) value;
+
+ ImageDialog dialog = new ImageDialog( shell, currentImageData, SWT.IMAGE_JPEG );
+ if ( dialog.open() == TextDialog.OK && dialog.getNewImageRawData() != null )
+ {
+ setValue( dialog.getNewImageRawData() );
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * Returns the image info text created by
+ * ImageDialog.getImageInfo().
+ */
+ public String getDisplayValue( IValue value )
+ {
+ if ( showRawValues() )
+ {
+ return getPrintableString( value );
+ }
+ else
+ {
+ if ( value == null )
+ {
+ return "NULL";
+ }
+ else if ( value.isBinary() )
+ {
+ byte[] data = value.getBinaryValue();
+ String text = ImageDialog.getImageInfo( data );
+ return text;
+ }
+ else
+ {
+ return "Invalid Image Data";
+ }
+ }
+ }
+
+}
Added: directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/integer/IntegerDialog.java
URL: http://svn.apache.org/viewvc/directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/integer/IntegerDialog.java?view=auto&rev=526695
==============================================================================
--- directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/integer/IntegerDialog.java (added)
+++ directory/ldapstudio/trunk/ldapstudio-valueeditors/src/main/java/org/apache/directory/ldapstudio/valueeditors/integer/IntegerDialog.java Mon Apr 9 02:53:20 2007
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.directory.ldapstudio.valueeditors.integer;
+
+
+import org.apache.directory.ldapstudio.valueeditors.ValueEditorsActivator;
+import org.apache.directory.ldapstudio.valueeditors.ValueEditorsConstants;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+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.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+
+
+/**
+ * This class provides a dialog to enter or choose an integer.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class IntegerDialog extends Dialog
+{
+
+ /** The dialog title */
+ public static final String DIALOG_TITLE = "Integer Editor";
+
+ /** The initial value. */
+ private int initialValue;
+
+ /** The return value. */
+ private int returnValue;
+
+ /** The spinner to select an integer */
+ private Spinner spinner = null;
+
+
+ /**
+ * Creates a new instance of IntegerDialog.
+ *
+ * @param parentShell the parent shell
+ * @param initialValue the initial value
+ */
+ public IntegerDialog( Shell parentShell, int initialValue )
+ {
+ super( parentShell );
+ super.setShellStyle( super.getShellStyle() | SWT.RESIZE );
+ this.initialValue = initialValue;
+ this.returnValue = -1;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void configureShell( Shell shell )
+ {
+ super.configureShell( shell );
+ shell.setText( DIALOG_TITLE );
+ //shell.setImage( Activator.getDefault().getImage( ValueEditorsConstants.IMG_TEXTEDITOR ) );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void createButtonsForButtonBar( Composite parent )
+ {
+ createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false );
+ createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void okPressed()
+ {
+ returnValue = spinner.getSelection();
+ super.okPressed();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected Control createDialogArea( Composite parent )
+ {
+ // create composite
+ Composite composite = ( Composite ) super.createDialogArea( parent );
+ composite.setLayout( new GridLayout() );
+ GridData gd = new GridData( GridData.FILL_BOTH );
+ composite.setLayoutData( gd );
+
+ spinner = new Spinner( composite, SWT.BORDER );
+ spinner.setMinimum( 0 );
+ spinner.setMaximum( Integer.MAX_VALUE );
+ spinner.setDigits( 0 );
+ spinner.setIncrement( 1 );
+ spinner.setPageIncrement( 100 );
+ spinner.setSelection( initialValue );
+ spinner.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
+
+ applyDialogFont( composite );
+ return composite;
+ }
+
+
+ /**
+ * Gets the integer.
+ *
+ * @return the integer
+ */
+ public int getInteger()
+ {
+ return returnValue;
+ }
+}