SVN-fs-dump-format-version: 2 UUID: b870cda2-b769-0410-84b9-88c412825fa1 Revision-number: 0 Prop-content-length: 56 Content-length: 56 K 8 svn:date V 27 2009-05-12T14:08:58.155048Z PROPS-END Revision-number: 1 Prop-content-length: 5754 Content-length: 5754 K 7 svn:log V 5649 Share project "org.eclipse.egf.tests.ju" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.tests.pattern" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pattern.ui" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.engine.doc.process" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.emf.generator.edit" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.tests.emf.generation.library" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.fc.doc.gen" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pde.emf" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.tests.factory" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pattern.runner" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.doc.user" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.core.fc.feature" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.fc.emf.model" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.engine.doc.pattern" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "egf.builder" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.core" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.tests.ju.pattern" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pde.pattern" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.fc.builder.java" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.core.fc" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pattern" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.model.edit" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.mapping.ui.editor" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.common" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "egf.releng" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.mapping" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.tests.ju.factory" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.fc.doc.patterns" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.console" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.emf.generator.common" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.tests.ju.feature" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.tests.feature" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.model" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.plugin.gen" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pattern.refactoring" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pattern.runner.nsuri" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pattern.runner.fc" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pattern.emf" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.fc.generator.javadoc" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.engine.doc" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.core.ui.workbench" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.core.ui" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pde" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.pattern.condition.gen" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.common.ui" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.emf.generator.editor" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.batch.application" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.fc.generator.java" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" Share project "org.eclipse.egf.core.feature" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.emf.egf" K 10 svn:author V 8 langlois K 8 svn:date V 27 2009-07-23T12:37:54.730847Z PROPS-END Node-path: plugins Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/egf.builder Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/egf.releng Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.console Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.core Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.core.fc Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.core.fc.feature Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.core.feature Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.core.ui Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.core.ui.workbench Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.doc.user Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.emf.generator.common Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.emf.generator.edit Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.emf.generator.editor Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.engine.doc Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.engine.doc.pattern Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.engine.doc.process Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.fc.builder.java Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.fc.doc.gen Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.fc.doc.patterns Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.fc.emf.model Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.fc.generator.java Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.fc.generator.javadoc Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.mapping Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.mapping.ui.editor Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.model Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.model.edit Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pattern Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pattern.condition.gen Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pattern.emf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pattern.refactoring Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pattern.runner Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pattern.runner.fc Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pattern.runner.nsuri Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pattern.ui Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pde Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pde.emf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.pde.pattern Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.plugin.gen Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.tests.emf.generation.library Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.tests.factory Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.tests.feature Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.tests.ju Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.tests.ju.factory Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.tests.ju.feature Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.tests.ju.pattern Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.tests.pattern Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Revision-number: 2 Prop-content-length: 124 Content-length: 124 K 7 svn:log V 21 Initial commit of EGF K 10 svn:author V 8 langlois K 8 svn:date V 27 2009-07-23T13:03:19.825378Z PROPS-END Node-path: plugins/egf.builder/.project Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 215 Text-content-md5: 6e9b1a2c3744b6cb4bcec44d4076deda Text-content-sha1: 9dc0feba38608c951694e6644ef5f321c5f9c7cf Content-length: 260 K 13 svn:mime-type V 10 text/plain PROPS-END egf.builder Node-path: plugins/egf.builder/allElements.xml Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2537 Text-content-md5: d3cd20dba5102da79e314f456bf4dbd6 Text-content-sha1: 40a14ab55a0b15bf52347423642a1948f75bbc8f Content-length: 2582 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/egf.builder/build.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 9166 Text-content-md5: 40b64a59adc35f6be427648a764f210f Text-content-sha1: 42753eff5b0530790595dc805d08e21b420512db Content-length: 9211 K 13 svn:mime-type V 10 text/plain PROPS-END ############################################################################### # Copyright (c) 2003, 2006 IBM Corporation and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # IBM Corporation - initial API and implementation ############################################################################### ##################### # Parameters describing how and where to execute the build. # Typical users need only update the following properties: # baseLocation - where things you are building against are installed # bootclasspath - The base jars to compile against (typicaly rt.jar) # configs - the list of {os, ws, arch} configurations to build. # # Of course any of the settings here can be overridden by spec'ing # them on the command line (e.g., -DbaseLocation=d:/eclipse ############# PRODUCT/PACKAGING CONTROL ############# #product=/plugin or feature or source id/path/to/.product runPackager=true #Set the name of the archive that will result from the product build. #archiveNamePrefix= # The prefix that will be used in the generated archive. archivePrefix=eclipse # The location underwhich all of the build output will be collected. collectingFolder=${archivePrefix} # The list of {os, ws, arch} configurations to build. This # value is a '&' separated list of ',' separate triples. For example, # configs=win32,win32,x86 & linux,motif,x86 # By default the value is *,*,* #configs = *, *, * #configs=win32, win32, x86 #configs=win32, win32, x86 & \ # linux, gtk, ppc &\ # linux, gtk, x86 & \ # linux, gtk, x86_64 & \ # linux, motif, x86 & \ # solaris, motif, sparc & \ # solaris, gtk, sparc & \ # aix, motif, ppc & \ # hpux, motif, PA_RISC & \ # macosx, carbon, ppc # By default PDE creates one archive (result) per entry listed in the configs property. # Setting this value to try will cause PDE to only create one output containing all # artifacts for all the platforms listed in the configs property. #groupConfigurations=true #The format of the archive. By default a zip is created using antZip. #The list can only contain the configuration for which the desired format is different than zip. #archivesFormat=win32, win32, x86 - antZip& \ # linux, gtk, ppc - antZip &\ # linux, gtk, x86 - antZip& \ # linux, gtk, x86_64 - antZip& \ # linux, motif, x86 - antZip& \ # solaris, motif, sparc - antZip& \ # solaris, gtk, sparc - antZip& \ # aix, motif, ppc - antZip& \ # hpux, motif, PA_RISC - antZip& \ # macosx, carbon, ppc - antZip #Set to true if you want the output to be ready for an update jar (no site.xml generated) # If set to true, all elements (including features) are jarred ! Be careful, Eclipse does not handle correctly jarred features. #outputUpdateJars = true #Set to true for Jnlp generation #codebase should be a URL that will be used as the root of all relative URLs in the output. #generateJnlp=false #jnlp.codebase= #jnlp.j2se= #jnlp.locale= #jnlp.generateOfflineAllowed=true or false generate attribute in the generated features #jnlp.configs=${configs} #uncomment to filter the content of the generated jnlp files based on the configuration being built #Set to true if you want to sign jars #signJars=false #sign.alias= #sign.keystore= #sign.storepass= #Arguments to send to the zip executable zipargs= #Arguments to send to the tar executable #tarargs= #Control the creation of a file containing the version included in each configuration - on by default #generateVersionsLists=false ############## BUILD NAMING CONTROL ################ # The directory into which the build elements are fetched and where # the build takes place. #buildDirectory=${builder}/.. # Type of build. Used in naming the build output. Typically this value is # one of I, N, M, S, ... buildType=I # ID of the build. Used in naming the build output. buildId=${BuildId} # Label for the build. Used in naming the build output buildLabel=${BuildLabel} # Timestamp for the build. Used in naming the build output timestamp=0000 #The value to be used for the qualifier of a plugin or feature when you want to override the value computed by pde. #The value will only be applied to plugin or features indicating build.properties, qualifier = context #forceContextQualifier= #Enable / disable the generation of a suffix for the features that use .qualifier. #The generated suffix is computed according to the content of the feature generateFeatureVersionSuffix=true ############# BASE CONTROL ############# # Settings for the base Eclipse components and Java class libraries # against which you are building. # Base location for anything the build needs to compile against. For example, # in most RCP app or a plug-in, the baseLocation should be the location of a previously # installed Eclipse against which the application or plug-in code will be compiled and the RCP delta pack. #base= #baseLocation=${eclipse.home} #Os/Ws/Arch/nl of the eclipse specified by baseLocation #baseos=win32 #basews=win32 #basearch=x86 #this property indicates whether you want the set of plug-ins and features to be considered during the build to be limited to the ones reachable from the features / plugins being built #filteredDependencyCheck=false #this property indicates whether the resolution should be done in development mode (i.e. ignore multiple bundles with singletons) #resolution.devMode=false #pluginPath is a list of locations in which to find plugins and features. This list is separated by the platform file separator (; or :) #a location is one of: #- the location of the jar or folder that is the plugin or feature : /path/to/foo.jar or /path/to/foo #- a directory that contains a /plugins or /features subdirectory #- the location of a feature.xml, or for 2.1 style plugins, the plugin.xml or fragment.xml pluginPath=${buildDirectory} skipBase=true eclipseURL= eclipseBuildId= eclipseBaseURL=${eclipseURL}/eclipse-platform-${eclipseBuildId}-win32.zip ############# MAP FILE CONTROL ################ # This section defines CVS tags to use when fetching the map files from the repository. # If you want to fetch the map file from repository / location, change the getMapFiles target in the customTargets.xml #skipMaps=true #mapsRepo=:pserver:anonymous@example.com/path/to/repo #mapsRoot=path/to/maps #mapsCheckoutTag=HEAD #tagMaps=true #mapsTagTag=v${buildId} ############ REPOSITORY CONTROL ############### # This section defines properties parameterizing the repositories where plugins, fragments # bundles and features are being obtained from. # The tags to use when fetching elements to build. # By default thebuilder will use whatever is in the maps. # This value takes the form of a comma separated list of repository identifier (like used in the map files) and the # overriding value # For example fetchTag=CVS=HEAD, SVN=v20050101 # fetchTag=HEAD # Does not work anymore the overridetag possibility. #fetchTag=COPY=D:/views/solfa_1.2_dev #skipFetch=true ############# JAVA COMPILER OPTIONS ############## # The location of the Java jars to compile against. Typically the rt.jar for your JDK/JRE bootclasspath=${java.home}/lib/rt.jar # specific JRE locations to compile against. These values are used to compile bundles specifying a # Bundle-RequiredExecutionEnvironment. Uncomment and set values for environments that you support #CDC-1.0/Foundation-1.0= /path/to/rt.jar #CDC-1.1/Foundation-1.1= #OSGi/Minimum-1.0= #OSGi/Minimum-1.1= #JRE-1.1= #J2SE-1.2= #J2SE-1.3= #J2SE-1.4= #J2SE-1.5= #JavaSE-1.6= #PersonalJava-1.1= #PersonalJava-1.2= #CDC-1.0/PersonalBasis-1.0= #CDC-1.0/PersonalJava-1.0= #CDC-1.1/PersonalBasis-1.1= #CDC-1.1/PersonalJava-1.1= # Specify the output format of the compiler log when eclipse jdt is used logExtension=.log # Whether or not to include debug info in the output jars javacDebugInfo=on # Whether or not to fail the build if there are compiler errors javacFailOnError=true # Enable or disable verbose mode of the compiler javacVerbose=false # Extra arguments for the compiler. These are specific to the java compiler being used. build.compiler=org.eclipse.jdt.core.JDTCompilerAdapter compilerArg=-enableJavadoc -warn:+boxing,conditionAssign,emptyBlock,hiding,indirectStatic,nls,over-ann,semicolon,unusedImport,unusedThrown,uselessTypeCheck # Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties javacSource=1.5 # Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties. javacTarget=1.5 individualSourceBundles=true archivesFormat = *,*,*-antZip Node-path: plugins/egf.builder/customTargets.xml Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 9083 Text-content-md5: 076a9c8148d472134a116aa0b83791bd Text-content-sha1: 16532d6ad8feb1700f55e610ff570b48093ac24d Content-length: 9128 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/egf.builder/egf.map Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 2267 Text-content-md5: 93b951a3704686ccaef7e813b5e2b35a Text-content-sha1: fa6629fbe3db5ad2bafcc73d9fbd636a56316109 Content-length: 2277 PROPS-END feature@org.eclipse.egf.core=COPY,X:/,org.eclipse.egf.core.feature plugin@org.eclipse.egf.batch.application=COPY,X: plugin@org.eclipse.egf.console=COPY,X:/ plugin@org.eclipse.egf.common=COPY,X:/ plugin@org.eclipse.egf.common.ui=COPY,X:/ plugin@org.eclipse.egf.core=COPY,X:/ plugin@org.eclipse.egf.core.ui=COPY,X:/ plugin@org.eclipse.egf.core.ui.workbench=COPY,X:/ plugin@org.eclipse.egf.doc.user=COPY,X:/ plugin@org.eclipse.egf.engine.doc=COPY,X:/ plugin@org.eclipse.egf.engine.doc.pattern=COPY,X:/ plugin@org.eclipse.egf.engine.doc.process=COPY,X:/ plugin@org.eclipse.egf.fc.builder.java=COPY,X:/ plugin@org.eclipse.egf.fc.generator.java=COPY,X:/ plugin@org.eclipse.egf.mapping=COPY,X:/ plugin@org.eclipse.egf.mapping.ui.editor=COPY,X:/ plugin@org.eclipse.egf.model=COPY,X:/ plugin@org.eclipse.egf.model.edit=COPY,X:/ plugin@org.eclipse.egf.pattern=COPY,X:/ plugin@org.eclipse.egf.pattern.condition.gen=COPY,X:/ plugin@org.eclipse.egf.pattern.refactoring=COPY,X:/ plugin@org.eclipse.egf.pattern.runner=COPY,X:/ plugin@org.eclipse.egf.pattern.ui=COPY,X:/ plugin@org.eclipse.egf.pde=COPY,X:/ plugin@org.eclipse.egf.pde.emf=COPY,X:/ plugin@org.eclipse.egf.pde.pattern=COPY,X:/ feature@org.eclipse.egf.core.fc=COPY,X:/,org.eclipse.egf.core.fc.feature plugin@org.eclipse.egf.core.fc=COPY,X:/ plugin@org.eclipse.egf.emf.generator.common=COPY,X:/ plugin@org.eclipse.egf.emf.generator.edit=COPY,X:/ plugin@org.eclipse.egf.emf.generator.editor=COPY,X:/ plugin@org.eclipse.egf.fc.doc.gen=COPY,X:/ plugin@org.eclipse.egf.fc.doc.patterns=COPY,X:/ plugin@org.eclipse.egf.fc.generator.javadoc=COPY,X:/ plugin@org.eclipse.egf.pattern.emf=COPY,X:/ plugin@org.eclipse.egf.pattern.runner.fc=COPY,X:/ plugin@org.eclipse.egf.pattern.runner.nsuri=COPY,X:/ plugin@org.eclipse.egf.plugin.gen=COPY,X:/ feature@org.eclipse.egf.tests=COPY,X:/,org.eclipse.egf.tests.feature plugin@org.eclipse.egf.tests.emf.generation.library=COPY,X:/ plugin@org.eclipse.egf.tests.factory=COPY,X:/ plugin@org.eclipse.egf.tests.pattern=COPY,X:/ feature@org.eclipse.egf.tests.ju=COPY,X:/,org.eclipse.egf.tests.ju.feature plugin@org.eclipse.egf.tests.ju=COPY,X:/ plugin@org.eclipse.egf.tests.ju.factory=COPY,X:/ plugin@org.eclipse.egf.tests.ju.pattern=COPY,X:/ Node-path: plugins/egf.releng/.project Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 214 Text-content-md5: cbb95111bdf4238359287bd18a727ecc Text-content-sha1: 9eb09741991aa485b89fa07baa61ada9ccd00f12 Content-length: 259 K 13 svn:mime-type V 10 text/plain PROPS-END egf.releng Node-path: plugins/egf.releng/build.bat Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 3504 Text-content-md5: 5c7f702dd6d82cbab8f5ef5cd72b1f06 Text-content-sha1: 17f520147a0dfa51d03cccf213b643535a202db6 Content-length: 3514 PROPS-END @echo off rem check environment if "%JAVA_HOME%" == "" ( echo You must set the JAVA_HOME env variable e.g D:\jdk\jdk1.5.0 goto end ) if "%1" =="" ( echo {targetPlatformPath} is missing echo. goto usage ) if "%2" =="" ( echo {builderPath} is missing echo. goto usage ) if "%3" =="" ( echo {outputBuildPath} is missing echo. goto usage ) if "%4" =="" ( echo {viewPath} is missing echo. goto usage ) if "%5" =="" ( echo {builderEquinoxJarFilePath} is missing echo. goto usage ) if "%6" =="" ( echo {buildFile} is missing echo. goto usage ) if "%7" =="" ( echo {eclipseTestHostHome} is missing echo. goto usage ) :next rem Compute time stamps set builddate=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2% set hh=%TIME:~0,2% set mm=%time:~-8,2% rem Since there is no leading zero for times before 10 am, have to put in rem a zero when this is run before 10 am. if "%time:~0,1%"==" " set hh=0%hh:~1,1% rem get only the two digits regarding hours independently from current time (i.e before or after 10am) set buildtime=%hh:~0,2%%mm% set timestamp=%builddate%%buildtime% rem Define pde build properties. set targetPlatform=%1% set builder=%2% set buildDirectory=%3% rem View path where sources are located set viewPath=%4% set builderEquinoxJarFilePath=%5% set buildFile=%6% rem default property values set buildType=I set buildId=%timestamp% set buildLabel=%timestamp% rem Map file is not used anymore. Sources are fetched directly from view path. set mapfile=%builder%/egf.map set eclipseAutomatedTestHome=%7% goto build :usage echo. echo Usage : build.bat {targetPlatformPath} {builderPath} {outputBuildPath} {viewPath} {builderEquinoxJarFilePath} {buildFile} rem empty ligne echo. echo. echo targetPlatformPath: path to an eclipse target platform that allows source code to be able to compile against. echo builderPath: path to your product builder (folder that contains allElements.xml, build.properties, ...) echo outputBuildPath: path where build is output. echo viewPath: path where sources to build are located. echo builderEquinoxJarFilePath: path to the releng basebuilder equinox launcher jar file. echo buildFile: path to the master ant build script. echo eclipseTestHostHome: path to the test host target platform parent root folder (folder that contains test.xml, label.properties, ...) echo. echo. echo Example : build.bat F:/distrib/egf_1.0.0_M1/3.5/eclipse D:/views/egf_1.0_dev/MDE_EGF/releng/egf.builder f:/prod_egf/builds D:/views/egf_1.0_dev/MDE_EGF/ f:/prod_egf/org.eclipse.releng.basebuilder/3.5/eclipse/plugins/org.eclipse.equinox.launcher.jar D:/views/egf_1.0_dev/MDE_EGF/releng/build.xml f:/prod_egf/testhost echo. :build rem remove a potential existing subst over X. echo Don't worry : an error message could be displayed if no mount on X drive already exists. subst /D x: rem mount X: over the view path. subst x: %viewPath% rem Use the java.exe provided by a jdk to be able to produce the javadoc. %JAVA_HOME%\bin\java -Xms256m -Xmx1024m -jar %builderEquinoxJarFilePath% -application org.eclipse.ant.core.antRunner -f %buildFile% -DbaseLocation=%targetPlatform% -DbuildDirectory=%buildDirectory% -Dbuilder=%builder% -DbuildType=%buildType% -DbuildId=%buildId% -DbuildLabel=%buildLabel% -DviewPath=%viewPath%/ -Dmap.file=%mapfile% -DeclipseAutomatedTestHome=%eclipseAutomatedTestHome% subst /D x: :end Node-path: plugins/egf.releng/build.xml Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 5846 Text-content-md5: 560e3358d0680b34448d8a3d968d3747 Text-content-sha1: 1cd77c958c1e5bafb09faefc891d5bf462f29f70 Content-length: 5891 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/egf.releng/build_egf.bat Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 309 Text-content-md5: 84c476bf48da46bdf0f3a6c2c22fc715 Text-content-sha1: 0356650105e6dc831695202f8d40fed498542c06 Content-length: 319 PROPS-END @echo off set JAVA_HOME=D:\jdk\jdk1.5.0 set view=D:\dev\eclipse\workspace-3.5 call %view%/egf.releng/build.bat D:\eclipse-3.5-M5 %view%/egf.builder D:/prod_egf/builds %view% D:/prod_egf/org.eclipse.releng.basebuilder/plugins/org.eclipse.equinox.launcher.jar %view%/egf.releng/build.xml D:/prod_egf/testhost Node-path: plugins/org.eclipse.egf.batch.application/.classpath Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 437 Text-content-md5: 343c3ecacddbcd28cbb6d801131fcf98 Text-content-sha1: ade11847dad48975f6c83dbe6d43b87435e15cfe Content-length: 482 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/.project Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 694 Text-content-md5: 5a91c1f75c04d7744d7631aa03a67cc7 Text-content-sha1: 9af9e1ed6cb009014f1651f0b847d8eef8b48d6e Content-length: 739 K 13 svn:mime-type V 10 text/plain PROPS-END org.eclipse.egf.batch.application org.eclipse.jdt.core.javabuilder org.eclipse.pde.ManifestBuilder org.eclipse.pde.SchemaBuilder org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature Node-path: plugins/org.eclipse.egf.batch.application/.settings Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/.settings/org.eclipse.jdt.core.prefs Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 395 Text-content-md5: b2390447475d7a6c4098b527b3e22c0e Text-content-sha1: 0cb02745b686fc1fa99bbd29435d2c4a14894145 Content-length: 440 K 13 svn:mime-type V 10 text/plain PROPS-END #Mon Mar 09 16:03:56 CET 2009 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.5 Node-path: plugins/org.eclipse.egf.batch.application/META-INF Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/META-INF/MANIFEST.MF Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 509 Text-content-md5: 87a9a87e29557c9d25cb361a306cc634 Text-content-sha1: cae33149ef863a7afd62f036dfc167cadfcf348b Content-length: 554 K 13 svn:mime-type V 10 text/plain PROPS-END Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.egf.batch.application; singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-ClassPath: . Bundle-Activator: org.eclipse.egf.batch.application.EgfApplicationActivator Bundle-Vendor: %providerName Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 Require-Bundle: org.eclipse.egf.common.ui, org.eclipse.egf.core.ui.workbench, org.eclipse.egf.core Bundle-ActivationPolicy: lazy Node-path: plugins/org.eclipse.egf.batch.application/about.html Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1411 Text-content-md5: a22a0b7b424620ca13d874789b551ca9 Text-content-sha1: 34826d06eba323d8b47f57e9d407c699ed8c1b7c Content-length: 1456 K 13 svn:mime-type V 10 text/plain PROPS-END About

About This Content

June 5, 2007

License

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" will mean the Content.

If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at http://www.eclipse.org.

Node-path: plugins/org.eclipse.egf.batch.application/ant_tasks Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin/org Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/EgfApplicationActivator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 905 Text-content-md5: b5309f98c988cecdb8043b451b7e85a7 Text-content-sha1: f439e01879c036a90e3c9f18955b72ca44463ba4 Content-length: 964 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1!9org/eclipse/egf/batch/application/EgfApplicationActivator7org/eclipse/egf/common/ui/activator/AbstractUIActivator__plugin;Lorg/eclipse/egf/batch/application/EgfApplicationActivator;()VCode  LineNumberTableLocalVariableTablethisstart%(Lorg/osgi/framework/BundleContext;)V Exceptionsjava/lang/Exception    context"Lorg/osgi/framework/BundleContext;stop   getDefault=()Lorg/eclipse/egf/batch/application/EgfApplicationActivator; SourceFileEgfApplicationActivator.java!  /*    F *+*      F *+ &' (     $ /  Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/FactoryComponentRunnerActionBarAdvisor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 906 Text-content-md5: c18636dd4ddfb7a5a6c6704d1e3edbea Text-content-sha1: 71ef3cb2c40e0e4000534e3d656b84d43bfb149b Content-length: 965 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Horg/eclipse/egf/batch/application/FactoryComponentRunnerActionBarAdvisor+org/eclipse/ui/application/ActionBarAdvisor4(Lorg/eclipse/ui/application/IActionBarConfigurer;)VCode  LineNumberTableLocalVariableTablethisJLorg/eclipse/egf/batch/application/FactoryComponentRunnerActionBarAdvisor; configurer1Lorg/eclipse/ui/application/IActionBarConfigurer; makeActions$(Lorg/eclipse/ui/IWorkbenchWindow;)Vwindow!Lorg/eclipse/ui/IWorkbenchWindow; fillMenuBar*(Lorg/eclipse/jface/action/IMenuManager;)VmenuBar'Lorg/eclipse/jface/action/IMenuManager; SourceFile+FactoryComponentRunnerActionBarAdvisor.java!>*+   5 %  5 *   Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/FactoryComponentRunnerApplication$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1157 Text-content-md5: 18cea791c5ffae21da1ecda13aa317a5 Text-content-sha1: 7b5e00c1b46bbb638643d86cd0dbbcdb13cdc8fe Content-length: 1216 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 11Eorg/eclipse/egf/batch/application/FactoryComponentRunnerApplication$1java/lang/Objectjava/lang/Runnablethis$0ELorg/eclipse/egf/batch/application/FactoryComponentRunnerApplication; val$display!Lorg/eclipse/swt/widgets/Display; val$workbenchLorg/eclipse/ui/IWorkbench;(Lorg/eclipse/egf/batch/application/FactoryComponentRunnerApplication;Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/IWorkbench;)VCode      ()VLineNumberTableLocalVariableTablethisGLorg/eclipse/egf/batch/application/FactoryComponentRunnerApplication$1;run ! org/eclipse/swt/widgets/Display "# isDisposed()Z %'&org/eclipse/ui/IWorkbench (#close SourceFile&FactoryComponentRunnerApplication.javaEnclosingMethod-Corg/eclipse/egf/batch/application/FactoryComponentRunnerApplication /stop InnerClasses    B*+*,*-* H G* *$WJ KL )*+,.0  Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/FactoryComponentRunnerApplication.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3038 Text-content-md5: 6067cc01f29d266d46ade9d7d451cd08 Text-content-sha1: a4a8534ec4721d9a4ca4dfb158ab42da9756e5a3 Content-length: 3097 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Corg/eclipse/egf/batch/application/FactoryComponentRunnerApplicationjava/lang/Object$org/eclipse/equinox/app/IApplicationFACTORY_COMPONENT_IDLjava/lang/String; ConstantValue -factoryComponentId()VCode  LineNumberTableLocalVariableTablethisELorg/eclipse/egf/batch/application/FactoryComponentRunnerApplication;startA(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object; Exceptionsjava/lang/Exception +org/eclipse/equinox/app/IApplicationContext  getArguments()Ljava/util/Map;!application.args #%$ java/util/Map &'get&(Ljava/lang/Object;)Ljava/lang/Object;)[Ljava/lang/String; + ,-run'([Ljava/lang/String;)Ljava/lang/Object; context_p-Lorg/eclipse/equinox/app/IApplicationContext;args 2 34getFactoryComponentId'([Ljava/lang/String;)Ljava/lang/String; 687java/lang/String 9:length()I<java/lang/Integer ;> ?(I)V ACBorg/eclipse/ui/PlatformUI DE createDisplay#()Lorg/eclipse/swt/widgets/Display;GHorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor F FJ KLsetExecutedFactoryComponentId(Ljava/lang/String;)V AN OPcreateAndRunWorkbenchQ(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I R ST EXIT_RESTARTLjava/lang/Integer; VXWorg/eclipse/swt/widgets/Display Y dispose [ \TEXIT_OKargs_pfactoryComponentIddisplay!Lorg/eclipse/swt/widgets/Display;workbenchAdvisorJLorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor; returnCodeIstop Ag hi getWorkbench()Lorg/eclipse/ui/IWorkbench; kmlorg/eclipse/ui/IWorkbench nE getDisplaypEorg/eclipse/egf/batch/application/FactoryComponentRunnerApplication$1 or s(Lorg/eclipse/egf/batch/application/FactoryComponentRunnerApplication;Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/IWorkbench;)V Vu vwsyncExec(Ljava/lang/Runnable;)V workbenchLorg/eclipse/ui/IWorkbench; 6{ |}equals(Ljava/lang/Object;)Zresultiargument SourceFile&FactoryComponentRunnerApplication.java InnerClasses!   /* Y+ "(M*,* !" ./0),-\*+1M, ,5 ;Y=@NFYH:,I-M6Q:-UZ:-U:-U@SGLSF+-/13'5-657;8@<D8G:L<P:S;U<Y=>\\])V^>_`',ab5cde qfL++jM,oY*,+qtDEF GHN xy_`34,M>+2: z +2M+,,UVW XYV*\4,,])*~&d  o Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1117 Text-content-md5: 2660f44e7f7792476681359f6bd0b572 Text-content-sha1: a984ef1341168154a3556cf7b47725d35356e3a8 Content-length: 1176 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1)Lorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1$1java/lang/Objectjava/lang/Runnablethis$1LLorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1; val$workbenchLorg/eclipse/ui/IWorkbench;j(Lorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1;Lorg/eclipse/ui/IWorkbench;)VCode     ()VLineNumberTableLocalVariableTablethisNLorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1$1;run org/eclipse/ui/IWorkbench close()Z SourceFile+FactoryComponentRunnerWorkbenchAdvisor.javaEnclosingMethod$Jorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1 &'runInWorkspaceO(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/IStatus; InnerClasses    =*+*,*    9 *W     !"#%(# Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2164 Text-content-md5: 88f7d5b2a413c7378718f3f21c7ab2c9 Text-content-sha1: f27c438eb01dbe41b93005c366e764fe17d65c11 Content-length: 2223 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1RJorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1'org/eclipse/core/resources/WorkspaceJobthis$0JLorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor;_(Lorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor;Ljava/lang/String;)VCode    (Ljava/lang/String;)VLineNumberTableLocalVariableTablethisLLorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1; $anonymous0Ljava/lang/String;runInWorkspaceO(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/IStatus; Exceptions&org/eclipse/core/runtime/CoreException "org/eclipse/egf/core/CoreActivator  getDefault&()Lorg/eclipse/egf/core/CoreActivator; !#"Horg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor $%access$0^(Lorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor;)Ljava/lang/String; ' ()generateFactoryComponentA(Ljava/lang/String;Lorg/eclipse/core/runtime/IProgressMonitor;Z)Z +-,org/eclipse/ui/PlatformUI ./ getWorkbench()Lorg/eclipse/ui/IWorkbench; 132org/eclipse/ui/IWorkbench 45 getDisplay#()Lorg/eclipse/swt/widgets/Display;7Lorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1$1 69 :j(Lorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1;Lorg/eclipse/ui/IWorkbench;)V <>=org/eclipse/swt/widgets/Display ?@ asyncExec(Ljava/lang/Runnable;)V BDCorg/eclipse/core/runtime/Status EF OK_STATUS"Lorg/eclipse/core/runtime/IStatus; monitor_p+Lorg/eclipse/core/runtime/IProgressMonitor; workbenchLorg/eclipse/ui/IWorkbench; SourceFile+FactoryComponentRunnerWorkbenchAdvisor.javaEnclosingMethod OP postStartup()V InnerClasses  C *+ *,     t** +&W*M,06Y*,8;A& **GHIJKLM!NQ6 Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 5327 Text-content-md5: 2feb5665b9c77b9c7704a4fc8a2ce5da Text-content-sha1: 8414136dd5a35baa5df6a954be95a9ec65026736 Content-length: 5386 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Horg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor+org/eclipse/ui/application/WorkbenchAdvisor__loggerLorg/apache/log4j/Logger;_factoryComponentIdLjava/lang/String;()VCode java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger  getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger;  LineNumberTableLocalVariableTable $ " thisJLorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor;createWorkbenchWindowAdvisorl(Lorg/eclipse/ui/application/IWorkbenchWindowConfigurer;)Lorg/eclipse/ui/application/WorkbenchWindowAdvisor;*Norg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchWindowAdvisor ), "-:(Lorg/eclipse/ui/application/IWorkbenchWindowConfigurer;)V configurer7Lorg/eclipse/ui/application/IWorkbenchWindowConfigurer;getInitialWindowPerspectiveId2-org.eclipse.egf.core.ui.workbench.perspective initialize4(Lorg/eclipse/ui/application/IWorkbenchConfigurer;)V 687/org/eclipse/ui/application/IWorkbenchConfigurer 9:setSaveAndRestore(Z)V <>=9org/eclipse/ui/internal/ide/model/WorkbenchAdapterBuilder ? registerAdapters A B4declareWorkbenchImages configurer_p1Lorg/eclipse/ui/application/IWorkbenchConfigurer;declareWorkbenchImaget(Lorg/eclipse/ui/application/IWorkbenchConfigurer;Lorg/osgi/framework/Bundle;Ljava/lang/String;Ljava/lang/String;Z)V HJIorg/osgi/framework/Bundle KLgetEntry"(Ljava/lang/String;)Ljava/net/URL; NPO*org/eclipse/jface/resource/ImageDescriptor QR createFromURL<(Ljava/net/URL;)Lorg/eclipse/jface/resource/ImageDescriptor; 6T UV declareImageB(Ljava/lang/String;Lorg/eclipse/jface/resource/ImageDescriptor;Z)Vbundle_pLorg/osgi/framework/Bundle;symbolicName_ppath_pshared_pZurlLjava/net/URL;desc,Lorg/eclipse/jface/resource/ImageDescriptor;bicons/full/obj16/dorg.eclipse.ui.ide fhg!org/eclipse/core/runtime/Platform ij getBundle/(Ljava/lang/String;)Lorg/osgi/framework/Bundle;lIMG_OBJ_PROJECTnicons/full/obj16/prj_obj.gif p EFrIMG_OBJ_PROJECT_CLOSEDticons/full/obj16/cprj_obj.gifvorg.eclipse.uix IMG_OBJ_FILEzicons/full/obj16/file_obj.gif|IMG_OBJ_FOLDER~icons/full/obj16/fldr_obj.gif ICONS_PATH ideBundleuiBundle postStartup *org/eclipse/core/resources/ResourcesPlugin  getWorkspace)()Lorg/eclipse/core/resources/IWorkspace; %org/eclipse/core/resources/IWorkspace getRoot-()Lorg/eclipse/core/resources/IWorkspaceRoot;,org/eclipse/core/runtime/NullProgressMonitor $ )org/eclipse/core/resources/IWorkspaceRoot  refreshLocal/(ILorg/eclipse/core/runtime/IProgressMonitor;)Vjava/lang/StringBuilder9FactoryComponentRunnerWorkbenchAdvisor.postStartup(..) _ "(Ljava/lang/String;)V toString  warn*(Ljava/lang/Object;Ljava/lang/Throwable;)V *org/eclipse/egf/batch/application/Messages 0FactoryComponentRunnerWorkbenchAdvisor_Job_Titlejava/lang/Object   java/text/MessageFormat format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;Jorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor$1 "_(Lorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor;Ljava/lang/String;)V !org/eclipse/core/runtime/jobs/Job setRule2(Lorg/eclipse/core/runtime/jobs/ISchedulingRule;)V schedule&org/eclipse/core/runtime/CoreExceptionroot+Lorg/eclipse/core/resources/IWorkspaceRoot; exception_p(Lorg/eclipse/core/runtime/CoreException; loggerMessageLjava/lang/StringBuilder; jobMessageexecuteFactoryComponentJob#Lorg/eclipse/core/runtime/jobs/Job;setExecutedFactoryComponentIdfcId_paccess$0^(Lorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor;)Ljava/lang/String; SourceFile+FactoryComponentRunnerWorkbenchAdvisor.java InnerClasses!   3  40!"  /*# 0! %&'( = )Y++ <! %& ./0 -1 D! %&34 P+5;*+@ LM NO!%&CDEF ,G:M:+-S Z [\]!R%&CDWXYZ[\ ]^ _`B4 ?aMceN*+-kmo*+-qsoue:*+wyo*+{}o "df ghj&k2l>m!4?%&?CD< 6X&X  VL+YMYN-,Y*SMY*,N-+-  * u wxy%z0~BLQU!>V%& M% BL  >*+ !%& %* 5!  Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchWindowAdvisor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1720 Text-content-md5: 3897be6e24fede5c94e9ac1be3e22c50 Text-content-sha1: 3f0bb695ca6ddf3fffec6f81e34ea2ff7639041f Content-length: 1779 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1?Norg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchWindowAdvisor1org/eclipse/ui/application/WorkbenchWindowAdvisor:(Lorg/eclipse/ui/application/IWorkbenchWindowConfigurer;)VCode  LineNumberTableLocalVariableTablethisPLorg/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchWindowAdvisor; configurer7Lorg/eclipse/ui/application/IWorkbenchWindowConfigurer;createActionBarAdvisor`(Lorg/eclipse/ui/application/IActionBarConfigurer;)Lorg/eclipse/ui/application/ActionBarAdvisor;Horg/eclipse/egf/batch/application/FactoryComponentRunnerActionBarAdvisor  4(Lorg/eclipse/ui/application/IActionBarConfigurer;)V1Lorg/eclipse/ui/application/IActionBarConfigurer; preWindowOpen()V  getWindowConfigurer9()Lorg/eclipse/ui/application/IWorkbenchWindowConfigurer;org/eclipse/swt/graphics/Point ! "(II)V $&%5org/eclipse/ui/application/IWorkbenchWindowConfigurer '(setInitialSize#(Lorg/eclipse/swt/graphics/Point;)V $* +,setShowCoolBar(Z)V $. /,setShowStatusLine $1 2,setShowProgressIndicator 465*org/eclipse/egf/batch/application/Messages 78>FactoryComponentRunnerWorkbenchWindowAdvisor_Application_TitleLjava/lang/String; $: ;<setTitle(Ljava/lang/String;)V SourceFile1FactoryComponentRunnerWorkbenchWindowAdvisor.java!>*+   = Y+ %  7*L+Y, #+)+-+0+39 -./0&1-263 7 2=> Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/Messages.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 718 Text-content-md5: d3a78b456d1bf7e3832f187b6c948eda Text-content-sha1: 12a9ec2da5f42f4da76621835299d2e623994041 Content-length: 777 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1*org/eclipse/egf/batch/application/Messagesorg/eclipse/osgi/util/NLS BUNDLE_NAMELjava/lang/String; ConstantValue *org.eclipse.egf.batch.application.messages0FactoryComponentRunnerWorkbenchAdvisor_Job_Title>FactoryComponentRunnerWorkbenchWindowAdvisor_Application_Title()VCode  initializeMessages&(Ljava/lang/String;Ljava/lang/Class;)VLineNumberTableLocalVariableTable   this,Lorg/eclipse/egf/batch/application/Messages; SourceFile Messages.java!   ,  3*  "  Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/headless Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1640 Text-content-md5: 4a47f4fbadb38bd950202f43abc0c015 Text-content-sha1: 4bb2a351dbcc957f2be4f532fff60e368ba94857 Content-length: 1699 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1<Porg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication$1'org/eclipse/core/resources/WorkspaceJobthis$0PLorg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication;val$factoryComponentId_pLjava/lang/String;w(Lorg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication;Ljava/lang/String;Ljava/lang/String;)VCode      (Ljava/lang/String;)VLineNumberTableLocalVariableTablethisRLorg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication$1; $anonymous0runInWorkspaceO(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/IStatus; Exceptions&org/eclipse/core/runtime/CoreException  "org/eclipse/egf/core/CoreActivator !" getDefault&()Lorg/eclipse/egf/core/CoreActivator;$,org/eclipse/core/runtime/NullProgressMonitor #& '()V ) *+generateFactoryComponentA(Ljava/lang/String;Lorg/eclipse/core/runtime/IProgressMonitor;Z)Z -/.org/eclipse/core/runtime/Status 01 OK_STATUS"Lorg/eclipse/core/runtime/IStatus; monitor_p+Lorg/eclipse/core/runtime/IProgressMonitor; SourceFile(FactoryComponentHeadlessApplication.javaEnclosingMethod8Norg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication :run InnerClasses   H*+ *-*,  ) O*#Y%(W, 012345679;  Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2376 Text-content-md5: 21a246064720b72e08f5c76623017654 Text-content-sha1: 8494b2f444407c13075a5a05ea4e7547977766fc Content-length: 2435 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1lNorg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplicationjava/lang/Object__loggerLorg/apache/log4j/Logger;()VCode  java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger  getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger;  LineNumberTableLocalVariableTable " thisPLorg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication;run(Ljava/lang/String;)V (*)*org/eclipse/egf/batch/application/Messages +,0FactoryComponentRunnerWorkbenchAdvisor_Job_TitleLjava/lang/String; .0/java/text/MessageFormat 12format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;4Porg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication$1 36 7w(Lorg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication;Ljava/lang/String;Ljava/lang/String;)V 9;:*org/eclipse/core/resources/ResourcesPlugin <= getWorkspace)()Lorg/eclipse/core/resources/IWorkspace; ?A@%org/eclipse/core/resources/IWorkspace BCgetRoot-()Lorg/eclipse/core/resources/IWorkspaceRoot; EGF!org/eclipse/core/runtime/jobs/Job HIsetRule2(Lorg/eclipse/core/runtime/jobs/ISchedulingRule;)V EK Lschedule EN OjoinQjava/lang/StringBuilderS.FactoryComponentHeadlessApplication.run(..) _ PU & PW XtoString Z [\warn*(Ljava/lang/Object;Ljava/lang/Throwable;)V^java/lang/InterruptedExceptionfactoryComponentId_p jobMessageexecuteFactoryComponentJob#Lorg/eclipse/core/runtime/jobs/Job;root+Lorg/eclipse/core/resources/IWorkspaceRoot; exception_p Ljava/lang/InterruptedException; loggerMessageLjava/lang/StringBuilder; SourceFile(FactoryComponentHeadlessApplication.java InnerClasses! 3  %!  /*!! #$!%& P'Y+S-M3Y*,+5N8>:-D-J-M:PYRT:VY.25]* ()5$6*7.95:7;B<O>HP#$P_,A`,6ab$,cd7efB ghijk 3 Node-path: plugins/org.eclipse.egf.batch.application/bin/org/eclipse/egf/batch/application/messages.properties Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 728 Text-content-md5: 9136d8b10270277359fb85cfe7e83cf3 Text-content-sha1: 638ce8d2e9d8b03c49d00c0be2b6220dbd991e09 Content-length: 738 PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### FactoryComponentRunnerWorkbenchAdvisor_Job_Title=Run Factory Component {0} FactoryComponentRunnerWorkbenchWindowAdvisor_Application_Title=Factory Component Runner Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org/eclipse Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org/eclipse/egf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org/eclipse/egf/batch Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org/eclipse/egf/batch/application Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org/eclipse/egf/batch/application/taskdefs Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org/eclipse/egf/batch/application/taskdefs/AbstractFactoryComponentRunnerTask.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1006 Text-content-md5: 2143882df4e70031583fe30130a73b98 Text-content-sha1: 6ddaf2d2415bd0e6f9315663ed2bc45bc68edf57 Content-length: 1065 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1#Morg/eclipse/egf/batch/application/taskdefs/AbstractFactoryComponentRunnerTask*org/eclipse/egf/common/ant/AbstractAntTask_factoryComponentIdLjava/lang/String;()VCode  LineNumberTableLocalVariableTablethisOLorg/eclipse/egf/batch/application/taskdefs/AbstractFactoryComponentRunnerTask;checkAttributes Exceptions#org/apache/tools/ant/BuildException%Factory Component Id must be provided     assertTrue(Ljava/lang/String;Z)VsetFactoryComponentId(Ljava/lang/String;)VfactoryComponentId_pgetFactoryComponentId()Ljava/lang/String; SourceFile'AbstractFactoryComponentRunnerTask.java! /*    @*  !  >*+ ()   /* 0 !" Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org/eclipse/egf/batch/application/taskdefs/FactoryComponentHeadlessRunnerTask.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 795 Text-content-md5: 619f5dd7f260f1dea698150528daff7e Text-content-sha1: 86f3d28993586509427dde65f694d764e81d2957 Content-length: 854 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Morg/eclipse/egf/batch/application/taskdefs/FactoryComponentHeadlessRunnerTaskMorg/eclipse/egf/batch/application/taskdefs/AbstractFactoryComponentRunnerTask()VCode  LineNumberTableLocalVariableTablethisOLorg/eclipse/egf/batch/application/taskdefs/FactoryComponentHeadlessRunnerTask; doExecute Exceptionsjava/lang/ExceptionNorg/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication   getFactoryComponentId()Ljava/lang/String;  run(Ljava/lang/String;)V SourceFile'FactoryComponentHeadlessRunnerTask.java!/* %  =Y* ,-   Node-path: plugins/org.eclipse.egf.batch.application/bin.tasks/org/eclipse/egf/batch/application/taskdefs/FactoryComponentUiRunnerTask.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 844 Text-content-md5: b091ec1cfef2bbdef982d9251e50b366 Text-content-sha1: e0882ce9ca43eaa0c5d32732726e8fdd5ff8ccd3 Content-length: 903 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1#Gorg/eclipse/egf/batch/application/taskdefs/FactoryComponentUiRunnerTaskMorg/eclipse/egf/batch/application/taskdefs/AbstractFactoryComponentRunnerTask()VCode  LineNumberTableLocalVariableTablethisILorg/eclipse/egf/batch/application/taskdefs/FactoryComponentUiRunnerTask; doExecute Exceptionsjava/lang/ExceptionCorg/eclipse/egf/batch/application/FactoryComponentRunnerApplication  java/lang/String-factoryComponentId  getFactoryComponentId()Ljava/lang/String;   run'([Ljava/lang/String;)Ljava/lang/Object; SourceFile!FactoryComponentUiRunnerTask.java!/* &  JYYSY*SW ,-  !" Node-path: plugins/org.eclipse.egf.batch.application/build.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 858 Text-content-md5: 3fb7e1666de04ce8fb96a7600782c88b Text-content-sha1: 8b4631dfba1a00da847e4ea1b9b68bff82551215 Content-length: 903 K 13 svn:mime-type V 10 text/plain PROPS-END ## # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ## source.. = src/ output.. = bin/ source.ant_tasks/egf.ant.tasks.jar = tasks/ output.ant_tasks/egf.ant.tasks.jar = bin.tasks/ src.includes = about.html,\ examples/ bin.includes = about.html,\ .,\ plugin.properties,\ plugin.xml,\ META-INF/,\ ant_tasks/egf.ant.tasks.jar jars.compile.order = .,\ ant_tasks/egf.ant.tasks.jar Node-path: plugins/org.eclipse.egf.batch.application/examples Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/examples/build.xml Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 508 Text-content-md5: 5db7067e7cb71aecd07d424db7dfb337 Text-content-sha1: 4890d8f971e89c3623a4a17ecbe8eaf6c3c5b496 Content-length: 553 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/plugin.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 497 Text-content-md5: 8c59e97f53f2531f55ea24efd54b2761 Text-content-sha1: 8ef0866c35f6c23615e889c355034fe9022b4a69 Content-length: 542 K 13 svn:mime-type V 10 text/plain PROPS-END ## # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ## pluginName=EGF Batch Application (Incubation) providerName=Eclipse Modeling Project Node-path: plugins/org.eclipse.egf.batch.application/plugin.xml Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1270 Text-content-md5: 5b4f6629d60cf57cf5e58d5b82e722ff Text-content-sha1: f709b7cffa5c64f886fbf44d283860963301ff72 Content-length: 1315 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/src Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/src/org Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/EgfApplicationActivator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1583 Text-content-md5: 33b142177c624e870fda5c929cd3e4fa Text-content-sha1: 20805b7ad95915fc8bb438abb778c39f441b7d3b Content-length: 1628 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application; import org.eclipse.egf.common.ui.activator.AbstractUIActivator; import org.osgi.framework.BundleContext; /** * The activator class controls the plug-in life cycle. */ public class EgfApplicationActivator extends AbstractUIActivator { // The shared instance private static EgfApplicationActivator __plugin; /** * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ @Override public void start(BundleContext context) throws Exception { super.start(context); __plugin = this; } /** * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) */ @Override public void stop(BundleContext context) throws Exception { __plugin = null; super.stop(context); } /** * Returns the shared instance * @return the shared instance */ public static EgfApplicationActivator getDefault() { return __plugin; } } Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/FactoryComponentRunnerActionBarAdvisor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1448 Text-content-md5: f72a24eb2b7c7a06a9986c0462730f5e Text-content-sha1: 96de24372a44569b154bcc9247d6294382045d8f Content-length: 1493 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application; import org.eclipse.jface.action.IMenuManager; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.application.ActionBarAdvisor; import org.eclipse.ui.application.IActionBarConfigurer; /** * This class configures the action bars content of a workbench window. * @author Guillaume Brocard */ public class FactoryComponentRunnerActionBarAdvisor extends ActionBarAdvisor { /** * Constructor. * @param configurer */ public FactoryComponentRunnerActionBarAdvisor(IActionBarConfigurer configurer) { super(configurer); } /** * @see org.eclipse.ui.application.ActionBarAdvisor#makeActions(org.eclipse.ui.IWorkbenchWindow) */ @Override protected void makeActions(IWorkbenchWindow window) { // Do nothing. } @Override protected void fillMenuBar(IMenuManager menuBar) { // Do nothing. } } Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/FactoryComponentRunnerApplication.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3286 Text-content-md5: b4783275b5d0cb7bc4020ecddcf7d959 Text-content-sha1: af6dfccf6148d983c95e64fcec10c004500d8b4b Content-length: 3331 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application; import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.PlatformUI; /** * This class controls all aspects of the application's execution.
* This application is a workbench window that runs given factory component and exit immediately when execution is done. */ public class FactoryComponentRunnerApplication implements IApplication { /** * Constant to be used to set the factory component to run. */ public static final String FACTORY_COMPONENT_ID = "-factoryComponentId"; //$NON-NLS-1$ /** * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext) */ public Object start(IApplicationContext context_p) throws Exception { String[] args = (String[]) context_p.getArguments().get(IApplicationContext.APPLICATION_ARGS); return run(args); } /** * Starts this application with the given context and returns a result. * @param args_p * @return */ public Object run(String[] args_p) { String factoryComponentId = getFactoryComponentId(args_p); // Precondition. if ((null == factoryComponentId) || (factoryComponentId.length() == 0)) { // Exist with failed status. return new Integer(-1); } Display display = PlatformUI.createDisplay(); try { FactoryComponentRunnerWorkbenchAdvisor workbenchAdvisor = new FactoryComponentRunnerWorkbenchAdvisor(); // Set it the factory component to run. workbenchAdvisor.setExecutedFactoryComponentId(factoryComponentId); int returnCode = PlatformUI.createAndRunWorkbench(display, workbenchAdvisor); if (returnCode == PlatformUI.RETURN_RESTART) { return IApplication.EXIT_RESTART; } return IApplication.EXIT_OK; } finally { display.dispose(); } } /** * @see org.eclipse.equinox.app.IApplication#stop() */ public void stop() { final IWorkbench workbench = PlatformUI.getWorkbench(); if (workbench == null) return; final Display display = workbench.getDisplay(); display.syncExec(new Runnable() { public void run() { if (!display.isDisposed()) workbench.close(); } }); } /** * Get the fc id from the arguments command line. * @return */ private String getFactoryComponentId(String[] args_p) { String result = null; for (int i = 0; i < args_p.length && (null == result); i++) { String argument = args_p[i]; if (argument.equals(FACTORY_COMPONENT_ID)) { result = args_p[++i]; } } return result; } } Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchAdvisor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 6651 Text-content-md5: 27a4152547070c2fcabce8ae3fb2a007 Text-content-sha1: d93c88cca37ebb4d2b092fbb8368b2721e945c02 Content-length: 6696 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.batch.application; import java.net.URL; import java.text.MessageFormat; import org.apache.log4j.Logger; import org.osgi.framework.Bundle; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.application.IWorkbenchConfigurer; import org.eclipse.ui.application.IWorkbenchWindowConfigurer; import org.eclipse.ui.application.WorkbenchAdvisor; import org.eclipse.ui.application.WorkbenchWindowAdvisor; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.internal.ide.model.WorkbenchAdapterBuilder; import org.eclipse.egf.core.CoreActivator; import org.eclipse.egf.core.ui.workbench.perspective.EgfPerspective; /** * This class configures the workbench to be able to run a factory component. * @author Guillaume Brocard */ public class FactoryComponentRunnerWorkbenchAdvisor extends WorkbenchAdvisor { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(FactoryComponentRunnerWorkbenchAdvisor.class.getPackage().getName()); private String _factoryComponentId; /** * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer) */ @Override public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { return new FactoryComponentRunnerWorkbenchWindowAdvisor(configurer); } /** * @see org.eclipse.ui.application.WorkbenchAdvisor#getInitialWindowPerspectiveId() */ @Override public String getInitialWindowPerspectiveId() { return EgfPerspective.PERSPECTIVE_ID; } /** * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize(org.eclipse.ui.application.IWorkbenchConfigurer) */ @Override public void initialize(IWorkbenchConfigurer configurer_p) { configurer_p.setSaveAndRestore(true); WorkbenchAdapterBuilder.registerAdapters(); declareWorkbenchImages(configurer_p); } /** * Declares a workbench image. * @param configurer_p * @param symbolicName_p the symbolic name of the image * @param path_p the path of the image file; this path is relative to the base of the IDE plug-in * @param shared_p true if this is a shared image, and false if this is not a shared image * @see IWorkbenchConfigurer#declareImage */ private void declareWorkbenchImage(IWorkbenchConfigurer configurer_p, Bundle bundle_p, String symbolicName_p, String path_p, boolean shared_p) { URL url = bundle_p.getEntry(path_p); ImageDescriptor desc = ImageDescriptor.createFromURL(url); configurer_p.declareImage(symbolicName_p, desc, shared_p); } /** * Declares specific workbench images. * @see IWorkbenchConfigurer#declareImage */ private void declareWorkbenchImages(IWorkbenchConfigurer configurer_p) { final String ICONS_PATH = "icons/full/obj16/";//$NON-NLS-1$ // Declare IDE specific images. Bundle ideBundle = Platform.getBundle("org.eclipse.ui.ide"); //$NON-NLS-1$ declareWorkbenchImage(configurer_p, ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT, ICONS_PATH + "prj_obj.gif", true); //$NON-NLS-1$ declareWorkbenchImage(configurer_p, ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED, ICONS_PATH + "cprj_obj.gif", true); //$NON-NLS-1$ // Declare UI specific images. Bundle uiBundle = Platform.getBundle("org.eclipse.ui"); //$NON-NLS-1$ declareWorkbenchImage(configurer_p, uiBundle, ISharedImages.IMG_OBJ_FILE, ICONS_PATH + "file_obj.gif", true); //$NON-NLS-1$ declareWorkbenchImage(configurer_p, uiBundle, ISharedImages.IMG_OBJ_FOLDER, ICONS_PATH + "fldr_obj.gif", true); //$NON-NLS-1$ } /** * @see org.eclipse.ui.application.WorkbenchAdvisor#postStartup() */ @Override public void postStartup() { // First, refresh the workspace content. IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); try { root.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); } catch (CoreException exception_p) { StringBuilder loggerMessage = new StringBuilder("FactoryComponentRunnerWorkbenchAdvisor.postStartup(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } // Create a new job that runs given factory component from its id. String jobMessage = MessageFormat.format(Messages.FactoryComponentRunnerWorkbenchAdvisor_Job_Title, new Object[] { _factoryComponentId }); Job executeFactoryComponentJob = new WorkspaceJob(jobMessage) { /** * @see org.eclipse.core.resources.WorkspaceJob#runInWorkspace(org.eclipse.core.runtime.IProgressMonitor) */ @SuppressWarnings("synthetic-access") @Override public IStatus runInWorkspace(IProgressMonitor monitor_p) throws CoreException { // Run the factory component from its id. CoreActivator.getDefault().generateFactoryComponent(_factoryComponentId, monitor_p, false); // Close the workbench, because factory component run is over. final IWorkbench workbench = PlatformUI.getWorkbench(); workbench.getDisplay().asyncExec(new Runnable() { /** * @see java.lang.Runnable#run() */ public void run() { workbench.close(); } }); return Status.OK_STATUS; } }; // Execute the job. executeFactoryComponentJob.setRule(root); executeFactoryComponentJob.schedule(); } /** * Set the value of the factory component to execute. * @param fcId_p */ public void setExecutedFactoryComponentId(String fcId_p) { _factoryComponentId = fcId_p; } } Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/FactoryComponentRunnerWorkbenchWindowAdvisor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2049 Text-content-md5: 3fb01804e7e68a2947fa61209caa918e Text-content-sha1: a359af11d28fc57258f98ad444569fa2bb85880e Content-length: 2094 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application; import org.eclipse.swt.graphics.Point; import org.eclipse.ui.application.ActionBarAdvisor; import org.eclipse.ui.application.IActionBarConfigurer; import org.eclipse.ui.application.IWorkbenchWindowConfigurer; import org.eclipse.ui.application.WorkbenchWindowAdvisor; /** * This class configures the workbench to be able to run a factory component. * @author Guillaume Brocard */ public class FactoryComponentRunnerWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { /** * Constructor. * @param configurer */ public FactoryComponentRunnerWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { super(configurer); } /** * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer) */ @Override public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) { return new FactoryComponentRunnerActionBarAdvisor(configurer); } /** * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#preWindowOpen() */ @Override public void preWindowOpen() { IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); configurer.setInitialSize(new Point(400, 300)); configurer.setShowCoolBar(true); configurer.setShowStatusLine(true); configurer.setShowProgressIndicator(true); configurer.setTitle(Messages.FactoryComponentRunnerWorkbenchWindowAdvisor_Application_Title); } } Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/Messages.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1233 Text-content-md5: 9f905ee682efa09a2a8e32f94f2d8da1 Text-content-sha1: 3001758df7f54f827e05a2f31bfe0ec8dad3fe59 Content-length: 1278 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application; import org.eclipse.osgi.util.NLS; /** * I18n translation helper. * @author Guillaume Brocard */ public class Messages extends NLS { private static final String BUNDLE_NAME = "org.eclipse.egf.batch.application.messages"; //$NON-NLS-1$ public static String FactoryComponentRunnerWorkbenchAdvisor_Job_Title; public static String FactoryComponentRunnerWorkbenchWindowAdvisor_Application_Title; static { // initialize resource bundle NLS.initializeMessages(BUNDLE_NAME, Messages.class); } /** * Constructor. */ private Messages() { // Do nothing. } } Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/headless Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/headless/FactoryComponentHeadlessApplication.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2768 Text-content-md5: 3db0510ac11814ca9f373ae622659e14 Text-content-sha1: ea2cd42f9c869e41b111f5628ccd5d4b9b337d41 Content-length: 2813 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application.headless; import java.text.MessageFormat; import org.apache.log4j.Logger; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.egf.batch.application.Messages; import org.eclipse.egf.core.CoreActivator; /** * Run given factory component from a given id. * @author Guillaume Brocard */ public class FactoryComponentHeadlessApplication { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(FactoryComponentHeadlessApplication.class.getPackage().getName()); public synchronized void run(final String factoryComponentId_p) { String jobMessage = MessageFormat.format(Messages.FactoryComponentRunnerWorkbenchAdvisor_Job_Title, new Object[] { factoryComponentId_p }); Job executeFactoryComponentJob = new WorkspaceJob(jobMessage) { /** * @see org.eclipse.core.resources.WorkspaceJob#runInWorkspace(org.eclipse.core.runtime.IProgressMonitor) */ @Override public IStatus runInWorkspace(IProgressMonitor monitor_p) throws CoreException { // Run the factory component from its id. CoreActivator.getDefault().generateFactoryComponent(factoryComponentId_p, new NullProgressMonitor(), false); return Status.OK_STATUS; } }; // Execute the job. IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); executeFactoryComponentJob.setRule(root); executeFactoryComponentJob.schedule(); try { executeFactoryComponentJob.join(); } catch (InterruptedException exception_p) { StringBuilder loggerMessage = new StringBuilder("FactoryComponentHeadlessApplication.run(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } } } Node-path: plugins/org.eclipse.egf.batch.application/src/org/eclipse/egf/batch/application/messages.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 728 Text-content-md5: 9136d8b10270277359fb85cfe7e83cf3 Text-content-sha1: 638ce8d2e9d8b03c49d00c0be2b6220dbd991e09 Content-length: 773 K 13 svn:mime-type V 10 text/plain PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### FactoryComponentRunnerWorkbenchAdvisor_Job_Title=Run Factory Component {0} FactoryComponentRunnerWorkbenchWindowAdvisor_Application_Title=Factory Component Runner Node-path: plugins/org.eclipse.egf.batch.application/tasks Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/tasks/org Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/tasks/org/eclipse Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/tasks/org/eclipse/egf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/tasks/org/eclipse/egf/batch Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/tasks/org/eclipse/egf/batch/application Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/tasks/org/eclipse/egf/batch/application/taskdefs Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.batch.application/tasks/org/eclipse/egf/batch/application/taskdefs/AbstractFactoryComponentRunnerTask.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1798 Text-content-md5: 106f76432493e9994ae790b2950a8f71 Text-content-sha1: aa1bbbc1084fab1b46de50ff5d0564cf53364e83 Content-length: 1843 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application.taskdefs; import org.apache.tools.ant.BuildException; import org.eclipse.egf.common.ant.AbstractAntTask; /** * Base class to implement contributed Ant task that runs factory component. * @author Guillaume Brocard */ public abstract class AbstractFactoryComponentRunnerTask extends AbstractAntTask { /** * Store the id of the executed factory component. */ private String _factoryComponentId; /** * @see org.eclipse.egf.common.ant.AbstractAntTask#checkAttributes() */ @Override protected void checkAttributes() throws BuildException { assertTrue("Factory Component Id must be provided", (null != _factoryComponentId)); //$NON-NLS-1$ } /** * Set the id of executed factory component. * @param factoryComponentId_p */ public void setFactoryComponentId(String factoryComponentId_p) { _factoryComponentId = factoryComponentId_p; } /** * Return the factory component id set through {@link #setFactoryComponentId(String)} method. * @return the factoryComponentId or null if not set. */ protected String getFactoryComponentId() { return _factoryComponentId; } } Node-path: plugins/org.eclipse.egf.batch.application/tasks/org/eclipse/egf/batch/application/taskdefs/FactoryComponentHeadlessRunnerTask.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1908 Text-content-md5: b6d2421b8cfb28acdd91f37f92e8565a Text-content-sha1: 225b9b1ee58a753e7c9c68660f76bc16df0789a4 Content-length: 1953 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application.taskdefs; import org.eclipse.egf.batch.application.headless.FactoryComponentHeadlessApplication; /** * Run a factory component from provided factory component id.
* It instantiates {@link FactoryComponentRunnerApplication} to run the provided FC.
*

* This task is supposed to be executed by the Eclipse {@link AntRunner} application.
* The following command line will start the {@link AntRunner} application and run the specified Ant script. *

*

* eclipseDir/eclipse -noSplash -data worspaceDir -application org.eclipse.ant.core.antRunner -buildfile antScript *

*

* Usage example: *

* *
 * <egf.FactoryComponentRunnerInHeadlessMode factoryComponentId="fc.1197474451873.101" />
 * 
* * In examples folder, you will find an Ant script example (i.e build.xml) that you can use to write your own one. * @author Guillaume Brocard */ public class FactoryComponentHeadlessRunnerTask extends AbstractFactoryComponentRunnerTask { /** * @see org.eclipse.egf.common.ant.AbstractAntTask#doExecute() */ @Override protected void doExecute() throws Exception { new FactoryComponentHeadlessApplication().run(getFactoryComponentId()); } } Node-path: plugins/org.eclipse.egf.batch.application/tasks/org/eclipse/egf/batch/application/taskdefs/FactoryComponentUiRunnerTask.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2056 Text-content-md5: 25313a5fa989c8253ce7b7891826cbe0 Text-content-sha1: e8011bdae4a3b12c660031f8e84180fe2ebd6421 Content-length: 2101 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.batch.application.taskdefs; import org.eclipse.egf.batch.application.FactoryComponentRunnerApplication; /** * Run a factory component from provided factory component id.
* It instantiates {@link FactoryComponentRunnerApplication} to run the provided FC in a workbench window.
* Hence, it must be launched by a non UI Thread Java application. *

* This task is supposed to be executed by the Eclipse {@link AntRunner} application.
* The following command line will start the {@link AntRunner} application and run the specified Ant script. *

*

* eclipseDir/eclipse -noSplash -data worspaceDir -application org.eclipse.ant.core.antRunner -buildfile antScript *

*

* Usage example: *

* *
 * <egf.FactoryComponentRunnerInWorkbenchWindow factoryComponentId="fc.1197474451873.101" />
 * 
* * In examples folder, you will find an Ant script example (i.e build.xml) that you can use to write your own one. * @author Guillaume Brocard */ public class FactoryComponentUiRunnerTask extends AbstractFactoryComponentRunnerTask { /** * @see org.eclipse.egf.common.ant.AbstractAntTask#doExecute() */ @Override protected void doExecute() throws Exception { new FactoryComponentRunnerApplication().run(new String[] { FactoryComponentRunnerApplication.FACTORY_COMPONENT_ID, getFactoryComponentId() }); } } Node-path: plugins/org.eclipse.egf.common/.classpath Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 374 Text-content-md5: 911717b9d08ea50d6c596c1f43830080 Text-content-sha1: 00e1f1bc150986effc780aa7408f83a5747113fd Content-length: 419 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/org.eclipse.egf.common/.project Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 683 Text-content-md5: d42d7ab2a2e3e9e4e852affa487c2513 Text-content-sha1: 6b8d308d4782600152e78838305719d97db2affa Content-length: 728 K 13 svn:mime-type V 10 text/plain PROPS-END org.eclipse.egf.common org.eclipse.jdt.core.javabuilder org.eclipse.pde.ManifestBuilder org.eclipse.pde.SchemaBuilder org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature Node-path: plugins/org.eclipse.egf.common/.settings Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/.settings/org.eclipse.jdt.core.prefs Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 395 Text-content-md5: a4e6115c8dcdb4a8fbf0b3308e69c2e2 Text-content-sha1: 7bc6e403012bc1194d12e508b65f294c03b07542 Content-length: 440 K 13 svn:mime-type V 10 text/plain PROPS-END #Mon Mar 09 16:03:57 CET 2009 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.5 Node-path: plugins/org.eclipse.egf.common/META-INF Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/META-INF/MANIFEST.MF Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1165 Text-content-md5: 1a6f45d58d0fd8a7b638572ad935f06a Text-content-sha1: 10afd7d5548a6526180b15aa2f3d58087e5e4fcf Content-length: 1210 K 13 svn:mime-type V 10 text/plain PROPS-END Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.egf.common;singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-ClassPath: . Bundle-Activator: org.eclipse.egf.common.activator.CommonActivator Bundle-Vendor: %providerName Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 Require-Bundle: org.apache.log4j;visibility:=reexport, org.eclipse.core.resources;visibility:=reexport, org.eclipse.core.runtime;visibility:=reexport, org.eclipse.emf.common, org.eclipse.jdt.core;visibility:=reexport, org.eclipse.pde.core;visibility:=reexport, org.eclipse.emf.codegen.ecore, org.apache.ant;visibility:=reexport, org.eclipse.ant.core;visibility:=reexport Export-Package: org.eclipse.egf.common.activator, org.eclipse.egf.common.adapter, org.eclipse.egf.common.ant, org.eclipse.egf.common.constant, org.eclipse.egf.common.descriptor, org.eclipse.egf.common.descriptor.pattern.helper, org.eclipse.egf.common.generator, org.eclipse.egf.common.helper, org.eclipse.egf.common.listener, org.eclipse.egf.common.misc, org.eclipse.egf.common.progress Bundle-ActivationPolicy: lazy Node-path: plugins/org.eclipse.egf.common/about.html Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1411 Text-content-md5: a22a0b7b424620ca13d874789b551ca9 Text-content-sha1: 34826d06eba323d8b47f57e9d407c699ed8c1b7c Content-length: 1456 K 13 svn:mime-type V 10 text/plain PROPS-END About

About This Content

June 5, 2007

License

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" will mean the Content.

If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at http://www.eclipse.org.

Node-path: plugins/org.eclipse.egf.common/bin Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/activator Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/activator/AbstractActivator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2769 Text-content-md5: dc6d4dda7328a56f521ebcfca990ee2c Text-content-sha1: e62f8c85e02332a19b076d6ce8618c8d628a14bf Content-length: 2828 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1f2org/eclipse/egf/common/activator/AbstractActivatororg/eclipse/core/runtime/Plugin()VCode  LineNumberTableLocalVariableTablethis4Lorg/eclipse/egf/common/activator/AbstractActivator;log(Ljava/lang/Throwable;)V java/lang/Throwable  getMessage()Ljava/lang/String;  newErrorStatusK(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/eclipse/core/runtime/IStatus;  %(Lorg/eclipse/core/runtime/IStatus;)VtLjava/lang/Throwable; org/eclipse/core/runtime/Status " # getPluginID % &>(ILjava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)VmessageLjava/lang/String; exception(Ljava/lang/String;)V , -.getLog!()Lorg/eclipse/core/runtime/ILog; 021*org/eclipse/egf/common/helper/StatusHelper 34 newStatus^(Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)Lorg/eclipse/core/runtime/IStatus; 67org/eclipse/core/runtime/ILog*(Ljava/lang/String;Ljava/lang/Throwable;)V : ;7(Ljava/lang/String;Lorg/eclipse/core/runtime/IStatus;)V;(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V Signature>(Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Throwable;)V@Exception in {0}.{1}: {2}Bjava/lang/Object DFEjava/lang/Class GgetName IKJorg/eclipse/osgi/util/NLS LMbind9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; O 8clazzLjava/lang/Class; methodNameLocalVariableTypeTableLjava/lang/Class<*>;status"Lorg/eclipse/core/runtime/IStatus;+(ILjava/lang/String;Ljava/lang/Throwable;)VseverityIe \ ]^ getBundle()Lorg/osgi/framework/Bundle; `baorg/osgi/framework/Bundle cgetSymbolicName SourceFileAbstractActivator.java! /*   F**++    NY*!+,$ %  '()*L*+*!+/5 23  '(8R*+*!+,/9 ?@  '(<=>|*?AY+CSY,SY-SH-N JK * PQR(S PT?*+9 ST  UVW`*Y*!,-$ Z[ * XY'(Z;l"+*+*!+/5*+,5 efh!i " "'("UV#4 *[_ q  de Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/activator/CommonActivator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1935 Text-content-md5: 71d196a78e66813f59ccd7ecedf2652c Text-content-sha1: c53ad2c090e0e17eb32f4e2f6180580297fa978b Content-length: 1994 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1E0org/eclipse/egf/common/activator/CommonActivator2org/eclipse/egf/common/activator/AbstractActivator$EXTENSION_POINT_SHORT_ID_USER_HELPERLjava/lang/String; ConstantValue  user_helper__plugin2Lorg/eclipse/egf/common/activator/CommonActivator; _userHelper3Lorg/eclipse/egf/common/helper/IUserEnforcedHelper;()VCode  LineNumberTableLocalVariableTablethis getDefault4()Lorg/eclipse/egf/common/activator/CommonActivator;  start%(Lorg/osgi/framework/BundleContext;)V Exceptionsjava/lang/Exception   context_p"Lorg/osgi/framework/BundleContext;stop % #getUserEnforcedHelper5()Lorg/eclipse/egf/common/helper/IUserEnforcedHelper; ) + ,- getPluginID()Ljava/lang/String; /102org/eclipse/egf/common/helper/ExtensionPointHelper 23getConfigurationElementsW(Ljava/lang/String;Ljava/lang/String;)[Lorg/eclipse/core/runtime/IConfigurationElement;5class /7 89createInstanceV(Lorg/eclipse/core/runtime/IConfigurationElement;Ljava/lang/String;)Ljava/lang/Object;;1org/eclipse/egf/common/helper/IUserEnforcedHelper=8org/eclipse/egf/common/internal/helper/DefaultUserHelper <configurationElements1[Lorg/eclipse/core/runtime/IConfigurationElement;instantiatedClassLjava/lang/Object; SourceFileCommonActivator.java!  /*  $.F *+*67 8  !"#F *+$?@ A  !"&'I*(@**.L+ ++246M,: *,:(*(*(*(6 IL M KOSTR#W*X2\9]D` I 3?@#ABCD Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/adapter Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/adapter/AbstractAdapterFactory.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2237 Text-content-md5: 7b32c1e21f7a3260bdf8651dcf7fa480 Text-content-sha1: 75964cf9351a7368d78b58f84f1d015a4e275849 Content-length: 2296 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1`5org/eclipse/egf/common/adapter/AbstractAdapterFactoryjava/lang/Object(org/eclipse/core/runtime/IAdapterFactory()VCode  LineNumberTableLocalVariableTablethis7Lorg/eclipse/egf/common/adapter/AbstractAdapterFactory; getAdapter7(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;   getAdapters()Ljava/util/Map;  java/util/Map entrySet()Ljava/util/Set;  java/util/Set !iterator()Ljava/util/Iterator; #%$java/util/Iterator &'next()Ljava/lang/Object;)java/util/Map$Entry (+ ,'getKey.java/lang/Class -0 12 isInstance(Ljava/lang/Object;)Z (4 5'getValue70org/eclipse/egf/common/adapter/AdapterDescriptor 69 ' #; <=hasNext()ZadaptableObject_pLjava/lang/Object; adapterType_pLjava/lang/Class;adapterLjava/util/Iterator;entryLjava/util/Map$Entry; modelObjectadapterDescriptor2Lorg/eclipse/egf/common/adapter/AdapterDescriptor;LocalVariableTypeTablesLjava/util/Iterator;Lorg/eclipse/egf/common/adapter/AdapterDescriptor;>;>;]Ljava/util/Map$Entry;Lorg/eclipse/egf/common/adapter/AdapterDescriptor;>;Ljava/lang/Class<*>; SignatureY()Ljava/util/Map;Lorg/eclipse/egf/common/adapter/AdapterDescriptor;>;getPlatformAdapter:(Ljava/lang/Object;Ljava/lang/Class<*>;)Ljava/lang/Object; RTS!org/eclipse/core/runtime/Platform UVgetAdapterManager,()Lorg/eclipse/core/runtime/IAdapterManager; XZY(org/eclipse/core/runtime/IAdapterManager  adaptable_p SourceFileAbstractAdapterFactory.java InnerClassesEntry! /*    XN*:6"(:*-:+/36:8N:-- * !"#!$-&6'B(H"V+ RXX>?X@AVB?F C!'DE-FABGHI F J!'DK-FLMN OMP Q Q*+W @  [? @AI  @L\]^ (_ Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/adapter/AdapterDescriptor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1972 Text-content-md5: 7a6906895c4854ee5bef286d876638f5 Text-content-sha1: a3e8df49933226809863115585525ba07fabb557 Content-length: 2031 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1`0org/eclipse/egf/common/adapter/AdapterDescriptorjava/lang/Object__loggerLorg/apache/log4j/Logger;_couple$Lorg/eclipse/egf/common/misc/Couple; SignatureLLorg/eclipse/egf/common/misc/Couple;Ljava/lang/Object;>;()VCode java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger  getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger; ! LineNumberTableLocalVariableTable(Ljava/lang/Class;)V(Ljava/lang/Class<*>;)V ( $ *"org/eclipse/egf/common/misc/Couple ), $-'(Ljava/lang/Object;Ljava/lang/Object;)V / this2Lorg/eclipse/egf/common/adapter/AdapterDescriptor; objectClass_pLjava/lang/Class;LocalVariableTypeTableLjava/lang/Class<*>; getAdapter()Ljava/lang/Object; )9 :7getValue )< =7getKey ? @7 newInstance )B CDsetValue(Ljava/lang/Object;)VFjava/lang/StringBuilderH#AdapterDescriptor.getAdapter(..) _ EJ $K(Ljava/lang/String;)V EM NtoString P QRerror*(Ljava/lang/Object;Ljava/lang/Throwable;)VT java/lang/InstantiationExceptionV java/lang/IllegalAccessExceptionadapterLjava/lang/Object; exception_p"Ljava/lang/InstantiationException; loggerMessageLjava/lang/StringBuilder;"Ljava/lang/IllegalAccessException; SourceFileAdapterDescriptor.java!    3 " #$% & `*'*)Y++."#01234 2567 V*.8L+K*.;>L*.+A2MEYGIN -L,OMEYGIN -L,O+ "%S ">U". &' )*%+&,0->/?0I1T4#>V01NWX&YZ0 [\?Y]I [\^_ Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/ant Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/ant/AbstractAntTask.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1619 Text-content-md5: db2169be9716442f808bf67e6e8c707f Text-content-sha1: 733cd40a773f8c39e4db0c76a96fea6fc597c2ef Content-length: 1678 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1E*org/eclipse/egf/common/ant/AbstractAntTaskorg/apache/tools/ant/Task()VCode  LineNumberTableLocalVariableTablethis,Lorg/eclipse/egf/common/ant/AbstractAntTask; assertTrue(Ljava/lang/String;Z)V Exceptions#org/apache/tools/ant/BuildException  (Ljava/lang/String;)V message_pLjava/lang/String; expression_pZgetProgressMonitor-()Lorg/eclipse/core/runtime/IProgressMonitor;   getProject ()Lorg/apache/tools/ant/Project; !#"org/apache/tools/ant/Project $% getReferences()Ljava/util/Hashtable;'eclipse.progress.monitor )+*java/util/Hashtable ,-get&(Ljava/lang/Object;)Ljava/lang/Object;/)org/eclipse/core/runtime/IProgressMonitor1,org/eclipse/core/runtime/NullProgressMonitor 0 4java/lang/ExceptionprogressMonitor+Lorg/eclipse/core/runtime/IProgressMonitor;execute 9 :checkAttributes < = doExecute ? @(Ljava/lang/Throwable;)V exception_pLjava/lang/Exception; SourceFileAbstractAntTask.java!/*   J Y*  ! # v&** &(.L++L0Y23 +,-.14 & 567v"*8*;L++Y+> 3 <> ? @AC!E " AB:+ M  =3CD Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/constant Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/constant/ICommonConstants.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1744 Text-content-md5: 659fc1d5de6fdebd377c861343e2ef06 Text-content-sha1: b5a2e5110f76982084e62fbee30fec7044866759 Content-length: 1803 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1`0org/eclipse/egf/common/constant/ICommonConstantsjava/lang/ObjectINTERNAL_ERRORI ConstantValue EMPTY_STRINGLjava/lang/String;  TAB_CHARACTERC SLASH_CHARACTER/ DOT_CHARACTER.COMMA_CHARACTER,SEMICOLON_CHARACTER;COLON_CHARACTER:WHITE_SPACE_CHARACTER PLATFORM_RESOURCEplatform:/resource/ EOL_CHARACTER QUOTE_CHARACTER"PARENTHESIS_OPEN_CHARACTER(PARENTHESIS_CLOSE_CHARACTER)UNDERSCORE_CHARACTER_ HTTP_PREFIX+http://ECORE_FILE_EXTENSION.ecoreGENMODEL_FILE_EXTENSION1genmodelECORE_DIAGRAM_FILE_EXTENSION4 ecorediagLINE_SEPARATORGENERATED_FOLDER_PATH8 generatedGENERATED_FOLDER_IPATH Lorg/eclipse/core/runtime/IPath;MODEL_FOLDER_PATH=modelMODEL_FOLDER_IPATHTEMPLATES_FOLDER_PATHA templatesTEMPLATES_FOLDER_IPATH()VCodeGline.separator IKJjava/lang/System LM getProperty&(Ljava/lang/String;)Ljava/lang/String; O 5 Qorg/eclipse/core/runtime/Path PS TU(Ljava/lang/String;)V W 9: Y >: [ B:LineNumberTableLocalVariableTable SourceFileICommonConstants.java     !"#$%&'() *, -/ 02 35 6 79:; <>:? @B:CDE]-FHNPY7RVPY<RXPY@RZ\w ,]^_ Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/constant/IEMFConstants.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 674 Text-content-md5: e24444befecd4afcb07f9953ef42ce5f Text-content-sha1: 4aeb363c76ed7afb87c644ea6d458591a5af5251 Content-length: 733 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1-org/eclipse/egf/common/constant/IEMFConstantsjava/lang/Object/GENERATED_PACKAGE_EXTENSION_POINT_ATT_GEN_MODELLjava/lang/String; ConstantValue genModel)GENERATED_PACKAGE_EXTENSION_POINT_ATT_URI uri'GENERATED_PACKAGE_EXTENSION_POINT_CHILDpackage+GENERATED_PACKAGE_EXTENSION_POINT_PLUGIN_IDorg.eclipse.emf.ecore*GENERATED_PACKAGE_EXTENSION_POINT_SHORT_IDgenerated_package)GENERATED_PACKAGE_EXTENSION_POINT_FULL_ID'org.eclipse.emf.ecore.generated_package SourceFileIEMFConstants.java    Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/constant/IPatternConstants.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1222 Text-content-md5: 52fa907c55a5b93fb0ec8feb5a20b4a3 Text-content-sha1: 3ef28e2d0a413a9c7b364160389fd11ec4e8dafa Content-length: 1281 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 141org/eclipse/egf/common/constant/IPatternConstantsjava/lang/ObjectPATTERN_PLUGIN_IDLjava/lang/String; ConstantValue org.eclipse.egf.patternPATTERN_EXTENSION_POINT_ID patternPATTERN_EXTENSION_POINT_FULL_IDorg.eclipse.egf.pattern.pattern"PATTERN_EXTENSION_POINT_CHILD_TYPEpatternExtType&PATTERN_EXTENSION_CONTAINING_PLUGIN_IDpluginId$PATTERN_EXTENSION_CONTAINING_FC_NAMEfcName PATTERN_EXTENSION_FROM_WORKSPACE fromWorkspace#PATTERN_EXTENSION_WORKSPACE_PROJECT wsProject%PATTERN_EXTENSION_POINT_CHILD_LIBRARY!library%PATTERN_EXTENSION_POINT_CHILD_PATTERN/LIBRARY_PRODUCTION_ORCHESTRATION_ATTRIBUTE_NAME%productionOrchestration,LIBRARY_RUNTIME_ORCHESTRATION_ATTRIBUTE_NAME(runtimeOrchestrationPATTERN_MODEL_ATTRIBUTE_NAME+modelLIBRARY_PATTERN_ID_SEPARATORC/JAVA_SOURCE_FILE_EXTENSION1java SourceFileIPatternConstants.java    " #$&')*,-./023 Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/constant/IPatternTemplateConstants.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 772 Text-content-md5: b0d742e7bcc27f0244b85aa7065767c2 Text-content-sha1: 1d9ce402baa30d22e486f3cf0f4c67e5f7a2b99c Content-length: 831 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 19org/eclipse/egf/common/constant/IPatternTemplateConstantsjava/lang/ObjectPATTERN_PLUGIN_IDLjava/lang/String; ConstantValue org.eclipse.egf.pattern#PATTERN_TEMPLATE_EXTENSION_POINT_ID patternTemplate(PATTERN_TEMPLATE_EXTENSION_POINT_FULL_ID'org.eclipse.egf.pattern.patternTemplate+PATTERN_TEMPLATE_EXTENSION_POINT_CHILD_TYPEpatternTemplateExtType7PATTERN_TEMPLATE_EXTENSION_POINT_CHILD_PATTERN_TEMPLATEPATTERN_TEMPLATE_ATT_CLASSclassPATTERN_TEMPLATE_ATT_TYPEtypePATTERN_TEMPLATE_ATT_PATHpath SourceFileIPatternTemplateConstants.java     Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/descriptor Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/descriptor/GenericDescriptor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2505 Text-content-md5: 36a7df73aa9f1089acd6c4fd290ef8c2 Text-content-sha1: 1eadfc09561c53f1cd273802363e00d73ace3bc5 Content-length: 2564 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1d3org/eclipse/egf/common/descriptor/GenericDescriptorjava/lang/Object-org/eclipse/egf/common/descriptor/IDescriptor _propertiesLjava/util/Map; Signature5Ljava/util/Map; _childrenLjava/util/List;ALjava/util/List;_parent/Lorg/eclipse/egf/common/descriptor/IDescriptor;()VCode  java/util/HashMap  (I)V  java/util/ArrayList   LineNumberTableLocalVariableTablethis5Lorg/eclipse/egf/common/descriptor/GenericDescriptor;getValue&(Ljava/lang/String;)Ljava/lang/Object; (*) java/util/Map +,get&(Ljava/lang/Object;)Ljava/lang/Object;propertyName_pLjava/lang/String;setValue'(Ljava/lang/String;Ljava/lang/Object;)V (2 34put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;value_pLjava/lang/Object; getChildren()Ljava/util/List;C()Ljava/util/List; addChildren(Ljava/util/List;)VE(Ljava/util/List<+Lorg/eclipse/egf/common/descriptor/IDescriptor;>;)V >@?java/util/List ABiterator()Ljava/util/Iterator; DFEjava/util/Iterator GHnext()Ljava/lang/Object; J KLaddChild2(Lorg/eclipse/egf/common/descriptor/IDescriptor;)V DN OPhasNext()Z descriptors_p descriptorLocalVariableTypeTableBLjava/util/List<+Lorg/eclipse/egf/common/descriptor/IDescriptor;>; >V WXadd(Ljava/lang/Object;)Z Z [L setParent descriptor_p getParent1()Lorg/eclipse/egf/common/descriptor/IDescriptor; ` parent_p SourceFileGenericDescriptor.java!     S**Y*Y!*+,-" #$%&? *+'!3" #$ -./0O *+,1W! < ="  #$ -. 5678 9/*!C" #$:; <#+=N-CM*,I-M!LML"O" ##$#Q RS #QTKL[*+UW+ +*Y!V XY["#$\]^/*_!a" #$[L>*+_! ij"#$abc Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/descriptor/IDescriptor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 402 Text-content-md5: cd782965a5a5d62363cb8196732bc5e8 Text-content-sha1: 6ef52ac4a69f09b6978bd5f0f49589132ad57e8a Content-length: 461 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1-org/eclipse/egf/common/descriptor/IDescriptorjava/lang/ObjectgetValue&(Ljava/lang/String;)Ljava/lang/Object; getParent1()Lorg/eclipse/egf/common/descriptor/IDescriptor; getChildren()Ljava/util/List; SignatureC()Ljava/util/List; SourceFileIDescriptor.java     Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/descriptor/pattern Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/descriptor/pattern/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/descriptor/pattern/helper/IPatternDescriptorHandler.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 399 Text-content-md5: 28716984e0af012b4165ca5549c7fdad Text-content-sha1: 265545a7d7784fe4e831a6034e47af9cef16113b Content-length: 458 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 Jorg/eclipse/egf/common/descriptor/pattern/helper/IPatternDescriptorHandlerjava/lang/ObjecthandleLibraryDescriptorD(Lorg/eclipse/egf/common/descriptor/IDescriptor;Ljava/lang/String;)VhandlePatternDescriptorhandleDescriptor2(Lorg/eclipse/egf/common/descriptor/IDescriptor;)V SourceFileIPatternDescriptorHandler.java   Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/descriptor/pattern/helper/PatternDescriptorStrategy.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3892 Text-content-md5: 6c81ed668b6aa044fea9d55a12828ac5 Text-content-sha1: 5e8daa96b2f9d8d27f17219260affb69fbaa2153 Content-length: 3951 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Jorg/eclipse/egf/common/descriptor/pattern/helper/PatternDescriptorStrategyjava/lang/Object()VCode  LineNumberTableLocalVariableTablethisLLorg/eclipse/egf/common/descriptor/pattern/helper/PatternDescriptorStrategy;(iterateThroughPatternExtensionDescriptor~(Lorg/eclipse/egf/common/descriptor/pattern/helper/IPatternDescriptorHandler;Lorg/eclipse/egf/common/descriptor/IDescriptor;)V   handlePatternExtensionDescriptor(Lorg/eclipse/egf/common/descriptor/pattern/helper/IPatternDescriptorHandler;Lorg/eclipse/egf/common/descriptor/IDescriptor;Ljava/lang/String;)V handler_pLLorg/eclipse/egf/common/descriptor/pattern/helper/IPatternDescriptorHandler; descriptor_p/Lorg/eclipse/egf/common/descriptor/IDescriptor;patternExtType -org/eclipse/egf/common/descriptor/IDescriptor getValue&(Ljava/lang/String;)Ljava/lang/Object; ! "# getChildren()Ljava/util/List;%id'java/lang/String)java/lang/StringBuilder ( ,library &. /0equals(Ljava/lang/Object;)Z &2 34trim()Ljava/lang/String; &6 78length()I (: ;<append-(Ljava/lang/String;)Ljava/lang/StringBuilder; (> ;?(C)Ljava/lang/StringBuilder; (A B4toString DFEJorg/eclipse/egf/common/descriptor/pattern/helper/IPatternDescriptorHandler GHhandleLibraryDescriptorD(Lorg/eclipse/egf/common/descriptor/IDescriptor;Ljava/lang/String;)VJpattern DL MHhandlePatternDescriptor DO PQhandleDescriptor2(Lorg/eclipse/egf/common/descriptor/IDescriptor;)V S TU stopSearch2(Lorg/eclipse/egf/common/descriptor/IDescriptor;)Z WYXjava/util/List Z[iterator()Ljava/util/Iterator; ]_^java/util/Iterator `anext()Ljava/lang/Object; ]c dehasNext()Z idPrefix_pLjava/lang/String;descriptorTypeLjava/lang/Object;childrenLjava/util/List; currentIdidPrefixLjava/lang/StringBuilder; descriptorLocalVariableTypeTableALjava/util/List;parentDescriptor_pretainRootOnlyg(Lorg/eclipse/egf/common/descriptor/GenericDescriptor;Lorg/eclipse/egf/common/descriptor/IDescriptor;)V v st xzy3org/eclipse/egf/common/descriptor/GenericDescriptor {QaddChildrootDescriptor_p5Lorg/eclipse/egf/common/descriptor/GenericDescriptor;childContainer_pgetDescriptorFullIdC(Lorg/eclipse/egf/common/descriptor/IDescriptor;)Ljava/lang/String; ( (Ljava/lang/String;)V   getParent1()Lorg/eclipse/egf/common/descriptor/IDescriptor;result currentParentparentId SourceFilePatternDescriptorStrategy.java!/*   [+,*+, #$ '(   ,:, :,$&:(Y*:+-<- -159W-9/=9W+,@C7I-&:-9/=9W+,@K +,N*,R:1V:  \:*+@ b n6 8:;(=2>@?KAMBQCVD\FkGuHxIzJ~KLMORSVWXW[ \ fg hijklg(mn op jqTU6 d  r stE++2+ M,V:\N*-ub*+w & norsu-v2u?zD| *E|}E~(jk-op (jq XL*+L*ME,$&N-.-15$+5(Y-/=+9@L-L,M,+ J *19>BEIKRV *XVg K6g Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/generator Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/generator/EmfProjectGenerator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 5391 Text-content-md5: 20b96937969f2a2ed5fdb6e2d6335658 Text-content-sha1: 6562db4ad53c7c35397d747128b7dbbf0e1bd090 Content-length: 5450 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 14org/eclipse/egf/common/generator/EmfProjectGeneratorjava/lang/Object__loggerLorg/apache/log4j/Logger; _generator3Lorg/eclipse/emf/codegen/ecore/generator/Generator;_generatorAdapterFactoryALorg/eclipse/emf/codegen/ecore/generator/GeneratorAdapterFactory; _projectType1Lorg/eclipse/egf/common/generator/EmfProjectType;()VCode java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger ! getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger; # LineNumberTableLocalVariableTableu(Lorg/eclipse/emf/codegen/ecore/generator/GeneratorAdapterFactory;Lorg/eclipse/egf/common/generator/EmfProjectType;)V ) & + - this6Lorg/eclipse/egf/common/generator/EmfProjectGenerator;generatorAdapterFactory_p projectType_p initialize4(Lorg/eclipse/emf/codegen/ecore/genmodel/GenModel;)Z 576/org/eclipse/emf/codegen/ecore/genmodel/GenModel 89 reconcile()Z 5; <=setCanGenerate(Z)V ? @3validateBAorg/eclipse/egf/common/internal/generator/emf/CustomizedGenerator AD &ED(Lorg/eclipse/emf/codegen/ecore/generator/GeneratorAdapterFactory;)V G  IKJ1org/eclipse/emf/codegen/ecore/generator/Generator LMsetInput(Ljava/lang/Object;)V IO PQgetJControlModel4()Lorg/eclipse/emf/codegen/merge/java/JControlModel; 5S T9isCodeFormatting VXW0org/eclipse/emf/codegen/merge/java/JControlModel YZsetLeadingTabReplacement(Ljava/lang/String;)V V\ ]=setConvertToStandardBraceStyle _a`org/eclipse/jdt/core/JavaCore bc getOptions()Ljava/util/Hashtable;e.org.eclipse.jdt.core.formatter.tabulation.size gih java/util/Map jkget&(Ljava/lang/Object;)Ljava/lang/Object;mjava/lang/StringoBorg.eclipse.jdt.core.formatter.brace_position_for_type_declarationq.org.eclipse.jdt.core.formatter.tabulation.charstab lu vwequals(Ljava/lang/Object;)Z ly z{valueOf(C)Ljava/lang/String;}java/lang/StringBuffer | &Z java/lang/Integer parseInt(Ljava/lang/String;)I | append,(Ljava/lang/String;)Ljava/lang/StringBuffer; | toString end_of_line genModel_p1Lorg/eclipse/emf/codegen/ecore/genmodel/GenModel;resultZ jControlModel2Lorg/eclipse/emf/codegen/merge/java/JControlModel;optionsLjava/util/Map;tabSizeLjava/lang/String; braceStyle tabCharacterspacesLjava/lang/StringBuffer;iILocalVariableTypeTableLjava/util/Map<**>;generateY(Lorg/eclipse/emf/common/util/Monitor;Lorg/eclipse/emf/codegen/ecore/genmodel/GenModel;)Z /org/eclipse/egf/common/generator/EmfProjectType getValue  23 I  canGenerate'(Ljava/lang/Object;Ljava/lang/Object;)Z I (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Lorg/eclipse/emf/common/util/Monitor;)Lorg/eclipse/emf/common/util/Diagnostic;java/lang/StringBuilder!Java Code generation failed for:  -(Ljava/lang/String;)Ljava/lang/StringBuilder;  handleDiagnostic=(Lorg/eclipse/emf/common/util/Diagnostic;Ljava/lang/String;)Z monitor_p%Lorg/eclipse/emf/common/util/Monitor;projectTypeValue isCorrect diagnostic(Lorg/eclipse/emf/common/util/Diagnostic; &org/eclipse/emf/common/util/Diagnostic  getSeverity()I)AbstractGenerator.handleDiagnostic(..) _ | (C)Ljava/lang/StringBuffer;  getMessage  getChildren()Ljava/util/List; java/util/List iterator()Ljava/util/Iterator; java/util/Iterator next()Ljava/lang/Object; 9hasNext  getException()Ljava/lang/Throwable; java/lang/Throwable  fatal*(Ljava/lang/Object;Ljava/lang/Throwable;)V  M diagnostic_p message_p loggerMessage exceptionLjava/lang/Throwable; SourceFileEmfProjectGenerator.java!   3"$ '"%&'Y*(*+**,,$=> ?@% ./0 1 23 +4W+:*+>=*AY**CF*F+H*FNN+R-U-[^:dfl:nfl:pfl:rt- xU1|Y~:6 ~W  -U-t[$bIJKMNQ)R1S9UBVGWOYTZb[p\~]^`abadfh%f ./9Tybkp]~O# TyS*,N*,*F,-6+*F,-+:*Y,6$rs#t(u5vPx%>S./SSK#05@3F=$ % ./8>+|Yͷ:,W W+W+::*,W+:W"">$B %1MU_glw%H./~Mg- Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/generator/EmfProjectType.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1788 Text-content-md5: 6fef7c100f87075254bb99db8a1eab99 Text-content-sha1: 3bdde2e8db74ad4bf14612af4cc93a823d26624c Content-length: 1847 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1G/org/eclipse/egf/common/generator/EmfProjectTypejava/lang/EnumMODEL_PROJECT_TYPE1Lorg/eclipse/egf/common/generator/EmfProjectType;EDIT_PROJECT_TYPEEDITOR_PROJECT_TYPETESTS_PROJECT_TYPE_valueLjava/lang/String; ENUM$VALUES2[Lorg/eclipse/egf/common/generator/EmfProjectType;()VCode=org.eclipse.emf.codegen.ecore.genmodel.generator.ModelProject  ((Ljava/lang/String;ILjava/lang/String;)V  org.eclipse.emf.codegen.ecore.genmodel.generator.EditorProject #  &=org.eclipse.emf.codegen.ecore.genmodel.generator.TestsProject (  * LineNumberTableLocalVariableTable . /(Ljava/lang/String;I)V 1 thisvalue_pgetValue()Ljava/lang/String;values4()[Lorg/eclipse/egf/common/generator/EmfProjectType; 9;:java/lang/System <= arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)VvalueOfE(Ljava/lang/String;)Lorg/eclipse/egf/common/generator/EmfProjectType; A >B5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; SourceFileEmfProjectType.java SignatureCLjava/lang/Enum;@1@@@@   \YYY "Y$%'YSYSY"SY'S)+$-*<,H *+-*-0+67 8, 2 3 45/*0+?, 2 676)YK*Y<YM8,+, >?* *@+,CDEF Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/generator/IEgfGeneratorConstants.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 424 Text-content-md5: 05a36801349de972e91c3adfd2b14330 Text-content-sha1: e5f09cbaa4ae27966055d30f926191c138434567 Content-length: 483 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 17org/eclipse/egf/common/generator/IEgfGeneratorConstantsjava/lang/Object SRC_FOLDERLjava/lang/String; ConstantValue srcPROJECT_ROOT_FILE /META-INF/MANIFEST.MF"GENERATED_UTIL_JAVA_PACKAGE_SUFFIX.util"GENERATED_IMPL_JAVA_PACKAGE_SUFFIX.impl SourceFileIEgfGeneratorConstants.java    Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/BundleHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1266 Text-content-md5: 76bb7a707172a09ee7bd88e3ad8bfd93 Text-content-sha1: c1ddedcaf109c8c3ba70b105d1d4c337c152716a Content-length: 1325 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1/*org/eclipse/egf/common/helper/BundleHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis,Lorg/eclipse/egf/common/helper/BundleHelper; instantiateA(Ljava/lang/String;Lorg/osgi/framework/Bundle;)Ljava/lang/Object;   loadClass@(Ljava/lang/String;Lorg/osgi/framework/Bundle;)Ljava/lang/Class; java/lang/Class  newInstance()Ljava/lang/Object;java/lang/ThrowablefullyQualifiedClassName_pLjava/lang/String;bundle_pLorg/osgi/framework/Bundle;resultLjava/lang/Object;class_Ljava/lang/Class;LocalVariableTypeTableLjava/lang/Class<*>; SignatureC(Ljava/lang/String;Lorg/osgi/framework/Bundle;)Ljava/lang/Class<*>; )+*org/osgi/framework/Bundle ,%(Ljava/lang/String;)Ljava/lang/Class; SourceFileBundleHelper.java!/*   M+,*+N- -MN, "#%&(+ * ! "#$  "% &'M+,+*(MN, 578<=@ "#$ "%-. Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/ClassLoadingHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1267 Text-content-md5: 9a66b697c91a6db5b8c6f3ac85702467 Text-content-sha1: 21d3831076aa00e670e0ce20022bb5210ff7525f Content-length: 1326 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1/0org/eclipse/egf/common/helper/ClassLoadingHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis2Lorg/eclipse/egf/common/helper/ClassLoadingHelper; instantiate=(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Object;   loadClass<(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class; java/lang/Class  newInstance()Ljava/lang/Object;java/lang/ThrowablefullyQualifiedClassName_pLjava/lang/String; classLoader_pLjava/lang/ClassLoader;resultLjava/lang/Object;class_Ljava/lang/Class;LocalVariableTypeTableLjava/lang/Class<*>; Signature?(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class<*>; )+*java/lang/ClassLoader ,%(Ljava/lang/String;)Ljava/lang/Class; SourceFileClassLoadingHelper.java!/*   M+,*+N- -MN, "!#$&) * ! "#$  "% &'M+,+*(MN, 356:;> "#$ "%-. Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/EcoreHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 6793 Text-content-md5: a87d6dc53c0ccf043bc588bd18b22e70 Text-content-sha1: 9395e304228f550b3648788f2173392361d8bc25 Content-length: 6852 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1)org/eclipse/egf/common/helper/EcoreHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis+Lorg/eclipse/egf/common/helper/EcoreHelper;equalsB(Lorg/eclipse/emf/ecore/EObject;Lorg/eclipse/emf/ecore/EObject;Z)Z $org/eclipse/emf/ecore/util/EcoreUtil A(Lorg/eclipse/emf/ecore/EObject;Lorg/eclipse/emf/ecore/EObject;)Zorg/eclipse/emf/ecore/EPackage  getNsURI()Ljava/lang/String; java/lang/String (Ljava/lang/Object;)Z!#org/eclipse/emf/ecore/ENamedElement # $getName & '( eContainer!()Lorg/eclipse/emf/ecore/EObject; * ,!org/eclipse/emf/ecore/EAnnotation +. / getSource eObject1_pLorg/eclipse/emf/ecore/EObject; eObject2_pcompareWholeStructure_pZresulteObject1%Lorg/eclipse/emf/ecore/ENamedElement;eObject2eObject1ContainereObject2Container eAnnotation1#Lorg/eclipse/emf/ecore/EAnnotation; eAnnotation2getStaticPackageB(Lorg/eclipse/emf/ecore/EPackage;)Lorg/eclipse/emf/ecore/EPackage; ACB'org/eclipse/emf/ecore/EPackage$Registry DEINSTANCE)Lorg/eclipse/emf/ecore/EPackage$Registry; AG HIget&(Ljava/lang/Object;)Ljava/lang/Object;K)org/eclipse/emf/ecore/EPackage$Descriptor JM NO getEPackage"()Lorg/eclipse/emf/ecore/EPackage;serializedPackage_p Lorg/eclipse/emf/ecore/EPackage;staticPackageInstance staticPackageLjava/lang/Object;getStaticClass>(Lorg/eclipse/emf/ecore/EClass;)Lorg/eclipse/emf/ecore/EClass; XMYorg/eclipse/emf/ecore/EClass [ \?getRootPackage ^ >? ` Ua^(Lorg/eclipse/emf/ecore/EPackage;Lorg/eclipse/emf/ecore/EClass;)Lorg/eclipse/emf/ecore/EClass;serializedClass_pLorg/eclipse/emf/ecore/EClass; e fggetEClassifiers%()Lorg/eclipse/emf/common/util/EList; ikj!org/eclipse/emf/common/util/EList lmiterator()Ljava/util/Iterator; oqpjava/util/Iterator rsnext()Ljava/lang/Object;u!org/eclipse/emf/ecore/EClassifier  ox yzhasNext()Z | }ggetESubpackagesstaticPackage_p classifiersLjava/util/Iterator; classifier#Lorg/eclipse/emf/ecore/EClassifier; subpackagesLocalVariableTypeTable9Ljava/util/Iterator;6Ljava/util/Iterator;  OgetESuperPackage package_p rootPackageG(Lorg/eclipse/emf/ecore/ENamedElement;)Lorg/eclipse/emf/ecore/EPackage;  getContainingPackage element_p ownerPackage tMgetImportedPackageName4(Lorg/eclipse/emf/ecore/EPackage;)Ljava/lang/String;   loadGenModelS(Lorg/eclipse/emf/ecore/EPackage;)Lorg/eclipse/emf/codegen/ecore/genmodel/GenModel; /org/eclipse/emf/codegen/ecore/genmodel/GenModel  getAllGenPackagesWithClassifiers()Ljava/util/List; kjava/util/Collection1org/eclipse/emf/codegen/ecore/genmodel/GenPackage OgetEcorePackage getQualifiedPackageNameLjava/lang/String;genModel1Lorg/eclipse/emf/codegen/ecore/genmodel/GenModel; genPackagesLjava/util/Collection; genPackage3Lorg/eclipse/emf/codegen/ecore/genmodel/GenPackage;KLjava/util/Collection;org.eclipse.emf.ecoregenerated_packageuri 2org/eclipse/egf/common/helper/ExtensionPointHelper getConfigurationElementz(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/core/runtime/IConfigurationElement;org/eclipse/core/runtime/Path .org/eclipse/core/runtime/IConfigurationElement getContributor)()Lorg/eclipse/core/runtime/IContributor; #%org/eclipse/core/runtime/IContributor (Ljava/lang/String;)V  getAttribute&(Ljava/lang/String;)Ljava/lang/String; org/eclipse/core/runtime/IPath append4(Ljava/lang/String;)Lorg/eclipse/core/runtime/IPath;3org/eclipse/emf/ecore/resource/impl/ResourceSetImpl toString (org/eclipse/egf/common/helper/FileHelper getFileFullUri5(Ljava/lang/String;)Lorg/eclipse/emf/common/util/URI; *org/eclipse/emf/ecore/resource/ResourceSet  getResourceM(Lorg/eclipse/emf/common/util/URI;Z)Lorg/eclipse/emf/ecore/resource/Resource; 'org/eclipse/emf/ecore/resource/Resource g getContents i H(I)Ljava/lang/Object;rootPackageNsUriconfigurationElement0Lorg/eclipse/core/runtime/IConfigurationElement;genModelRelativePath Lorg/eclipse/core/runtime/IPath; resourceSet,Lorg/eclipse/emf/ecore/resource/ResourceSet;resource)Lorg/eclipse/emf/ecore/resource/Resource; SourceFileEcoreHelper.java InnerClasses DescriptorRegistry! /* &  w*+>*#+*+>{* H+ A* :+ :""M%:%:)>/*+(++!*+:++:--> B478$:=;K=Q>W?kAtB}CEGHIL f 01213454Q867W287t91} :1;<=< ;*+) W 0121 >?7L@*FM,#, ,L,J ,JLL+ "acdef$g+h5k 7PQ5RQ&ST UV;*WZ]*_ t bc UahM*dhN-nt:+v XM-w,,-*{hN-n+_M-w,, . ~%+8<KYf >h~Qhbcf5c*H*H \?lL*M ,L+M,+   Q5QQ \P*L++Z  7 Q y-L*+*t*tL*%tL+ + -7+Q QL*M,+,N-:)n:*)L w+ .  +:BEO 4QQO5J=+ = ?L*+*ZM,N-:+Y:̹:Y::L+ R  %'<NWkp RQ5 vQo c<GW,kJ A Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/ExtensionPointHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 6094 Text-content-md5: fbf9d1e6f08c4e59be0af0f1d41e83fb Text-content-sha1: 7c543df53973cd8a1cd1ae833857cb2f45d8b892 Content-length: 6153 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 12org/eclipse/egf/common/helper/ExtensionPointHelperjava/lang/Object_loggerLorg/apache/log4j/Logger; ATT_CLASSLjava/lang/String; ConstantValue classATT_NAMEnameATT_IDidELEMENT_DESCRIPTION description()VCode java/lang/Class  getPackage()Ljava/lang/Package; ! java/lang/Package "#getName()Ljava/lang/String; %'&org/apache/log4j/Logger () getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger; + LineNumberTableLocalVariableTable 0 .this4Lorg/eclipse/egf/common/helper/ExtensionPointHelper;getConfigurationElementsW(Ljava/lang/String;Ljava/lang/String;)[Lorg/eclipse/core/runtime/IConfigurationElement; 687!org/eclipse/core/runtime/Platform 9:getExtensionRegistry/()Lorg/eclipse/core/runtime/IExtensionRegistry; <>=+org/eclipse/core/runtime/IExtensionRegistry ?4getConfigurationElementsFor pluginId_pextensionPointId_pextensionRegistry-Lorg/eclipse/core/runtime/IExtensionRegistry;configElements1[Lorg/eclipse/core/runtime/IConfigurationElement;i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Lorg/eclipse/core/runtime/IConfigurationElement;Hjava/util/ArrayList GJ .K(I)V M 34 O PQ isDeclaredByE(Lorg/eclipse/core/runtime/IConfigurationElement;Ljava/lang/String;)Z SUTjava/util/List VWadd(Ljava/lang/Object;)Z SY Z[size()I].org/eclipse/core/runtime/IConfigurationElement S_ `atoArray(([Ljava/lang/Object;)[Ljava/lang/Object;EextensionDeclaringPluginId_presultingElementsLjava/util/List; allElementsconfigurationElement0Lorg/eclipse/core/runtime/IConfigurationElement;LocalVariableTypeTableBLjava/util/List; \l mngetContributor)()Lorg/eclipse/core/runtime/IContributor; p!q%org/eclipse/core/runtime/IContributor sutjava/lang/String vWequalsconfigurationElement_pgetConfigurationElementh(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/core/runtime/IConfigurationElement; { x|z(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/core/runtime/IConfigurationElement; extensionId_p idValue_p  hasValueW(Lorg/eclipse/core/runtime/IConfigurationElement;Ljava/lang/String;Ljava/lang/String;)Z attName_p attValue_presultiI configElement \  getAttribute&(Ljava/lang/String;)Ljava/lang/String;ZattValuegetIdD(Lorg/eclipse/core/runtime/IConfigurationElement;)Ljava/lang/String;createExecutableExtension\(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;java/lang/StringBuffer5ExtensionPointHelper.createExecutableExtension(..) _ .(Ljava/lang/String;)VextensionPointId: append,(Ljava/lang/String;)Ljava/lang/StringBuffer; , must exist! #toString % error(Ljava/lang/Object;)V  createInstanceV(Lorg/eclipse/core/runtime/IConfigurationElement;Ljava/lang/String;)Ljava/lang/Object; attributeId_pattributeValue_pobjectLjava/lang/Object; loggerMessageLjava/lang/StringBuffer;isMatchingImperativeisExecutableExtensionCreatableattributeValueJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;  \ &(Ljava/lang/String;)Ljava/lang/Object;.ExtensionPointHelper.createTypeInstance(..) _ !Unable to instantiate class type: % *(Ljava/lang/Object;Ljava/lang/Throwable;)V&org/eclipse/core/runtime/CoreExceptionattributeName_p typeInstance exception_p(Lorg/eclipse/core/runtime/CoreException;getExtensionPointId8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;java/lang/StringBuilder (C)Ljava/lang/StringBuilder; -(Ljava/lang/String;)Ljava/lang/StringBuilder; hostingPluginId_pLjava/lang/StringBuilder; SourceFileExtensionPointHelper.java!        3$*, "-./*/,- 12 34_5M,*+;N-,<= >-*@A BC DE 3F TGYIN*+L:Y:662:,N -RW--X\^b,I JK%L.M7KAP->T@TATc KdeDfE%ghi  Kdj PQR*++*kor,[-wh@ xyG *+,z,f-  @ } ~ x|8*+L::62:,-:,"rs tuw!x%t5{-R8@8}881DE .h (h ">* +,*+:,r>, -4"wh""   QL* *L+,-wh  :*+L:3Y:W+WW*Z6, -6692:6 ,: - r6   :,Z #*2@CKNT[^cmvy~-z @A DE%CTQF[,h^) m  G *+,,-  @ A ~ <M*+M0NY:W*+W*-, ," !.:-4<wh<:,! _Y*M,.+W,԰, - A  Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/FileHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 11389 Text-content-md5: c9930189824b7f7d5b63aaedd9b3ccef Text-content-sha1: e0659da0c9015690b8172b4e79f639c6c384a6aa Content-length: 11448 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1(org/eclipse/egf/common/helper/FileHelperjava/lang/Object__loggerLorg/apache/log4j/Logger;()VCode  java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger  getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger;  LineNumberTableLocalVariableTable " this*Lorg/eclipse/egf/common/helper/FileHelper;getFileFullUrl"(Ljava/lang/String;)Ljava/net/URL; ( )*getFileFullUri5(Ljava/lang/String;)Lorg/eclipse/emf/common/util/URI; , %-1(Lorg/eclipse/emf/common/util/URI;)Ljava/net/URL;fileRelativePath_pLjava/lang/String;1 java/net/URL 354org/eclipse/emf/common/util/URI 6toString 08 9(Ljava/lang/String;)V ;=<$org/eclipse/core/runtime/FileLocator >?resolve(Ljava/net/URL;)Ljava/net/URL;Ajava/lang/StringBuilderC!FileHelper.getFileFullPath(..) _ @8FUnable to resolve the url for @H IJappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; @5 M NOwarn*(Ljava/lang/Object;Ljava/lang/Throwable;)VQjava/lang/Exception fileFullUri_p!Lorg/eclipse/emf/common/util/URI;resultLjava/net/URL; exception_pLjava/lang/Exception; loggerMessageLjava/lang/StringBuilder;[org/eclipse/core/runtime/Path Z8 ^`_org/eclipse/core/runtime/IPath absegment(I)Ljava/lang/String; dfe*org/eclipse/pde/core/plugin/PluginRegistry gh findModelB(Ljava/lang/String;)Lorg/eclipse/pde/core/plugin/IPluginModelBase; jlk,org/eclipse/pde/core/plugin/IPluginModelBase mngetUnderlyingResource(()Lorg/eclipse/core/resources/IResource; 3p qrcreatePlatformResourceURI6(Ljava/lang/String;Z)Lorg/eclipse/emf/common/util/URI; 3t urcreatePlatformPluginURIfileUripath Lorg/eclipse/core/runtime/IPath; modelBase.Lorg/eclipse/pde/core/plugin/IPluginModelBase;resource&Lorg/eclipse/core/resources/IResource;convertPackageNameToFolderPath&(Ljava/lang/String;)Ljava/lang/String; java/lang/String replace(CC)Ljava/lang/String; packageName_preadFile(Ljava/io/InputStream;)[B[B java/io/InputStream  available()I read([B)IFileHelper.readFile(..) _ "Failed to read the input stream !  N(Ljava/lang/Object;)V closeFailed to close input stream ! java/io/IOException inputStream_pLjava/io/InputStream;dataLjava/io/IOException;   readRawFile(Ljava/lang/String;)[B ([B)V filePath_p rawContentreadFileAsStream)(Ljava/lang/String;)Ljava/io/InputStream;  %& 0  openStream()Ljava/io/InputStream;"FileHelper.readFileAsStream(..) _ Failed to load fileURL    inputStreamcopyFile'(Ljava/lang/String;Ljava/lang/String;)V   writeFile(Ljava/lang/String;Z[B)ZsourceFileRelativePath_ptargetFileRelativePath_p((Ljava/lang/String;ZLjava/lang/String;)Z getBytes()[BensureFolders_pZ contents_p 0 getFile  9ensurePathAvailability  makeFileWritable(Ljava/lang/String;)Zjava/io/FileOutputStream 8  getChannel!()Ljava/nio/channels/FileChannel; java/nio/ByteBuffer wrap([B)Ljava/nio/ByteBuffer; java/nio/channels/FileChannel write(Ljava/nio/ByteBuffer;)IFileHelper.writeFile(..) _ )Failed to open channel in write mode for  ! isOpen()Z /Failed to close opened channel in write mode !  may no longer be usable.channelLjava/nio/channels/FileChannel; fileFullPath fileWritable renameFile'(Ljava/lang/String;Ljava/lang/String;)Z  getPlatformFile6(Ljava/lang/String;)Lorg/eclipse/core/resources/IFile;     org/eclipse/core/resources/IFile   getFullPath"()Lorg/eclipse/core/runtime/IPath;   moveResourceI(Lorg/eclipse/core/resources/IResource;Lorg/eclipse/core/runtime/IPath;)ZdestinationFileRelativePath_p sourceFile"Lorg/eclipse/core/resources/IFile;destinationPath renameFolder  getPlatformFolder8(Ljava/lang/String;)Lorg/eclipse/core/resources/IFolder;  "org/eclipse/core/resources/IFoldersourceFolderRelativePath_pdestinationFolderRelativePath_p sourceFolder$Lorg/eclipse/core/resources/IFolder;$,org/eclipse/core/runtime/NullProgressMonitor #" ')($org/eclipse/core/resources/IResource *+moveO(Lorg/eclipse/core/runtime/IPath;ZLorg/eclipse/core/runtime/IProgressMonitor;)V-FileHelper.moveResource(..) _ /Could not move ' @2 I3-(Ljava/lang/Object;)Ljava/lang/StringBuilder;5 to  resource_pdestinationPath_pe_pexists  ; 9file Z> ?removeFileExtension ^A BCremoveLastSegments#(I)Lorg/eclipse/core/runtime/IPath; ^E FisEmpty ^H IJtoFile()Ljava/io/File; LNM java/io/File OmkdirsfileFullPath_pparentFolderPath parentFolderLjava/io/File;deleteResourceN(Lorg/eclipse/core/resources/IFolder;Lorg/eclipse/core/resources/IResource;Z)Z W TX)(Lorg/eclipse/core/resources/IResource;)Z 'Z [\ getParent)()Lorg/eclipse/core/resources/IContainer; ^`_%org/eclipse/core/resources/IContainer abmembers)()[Lorg/eclipse/core/resources/IResource; ^Z ^e fgequals(Ljava/lang/Object;)Zi&org/eclipse/core/runtime/CoreExceptionroot_pdeleteParent_p container'Lorg/eclipse/core/resources/IContainer;'[Lorg/eclipse/core/resources/IResource;ce(Lorg/eclipse/core/runtime/CoreException; deleteFile s ttrim v wlength deleteFolderfolderRelativePath_p '; '| }~delete/(ZLorg/eclipse/core/runtime/IProgressMonitor;)VFileHelper.deleteFile(..) _ Unable to delete file:getPlatformResourceH(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IResource; *org/eclipse/core/resources/ResourcesPlugin  getWorkspace)()Lorg/eclipse/core/resources/IWorkspace; %org/eclipse/core/resources/IWorkspace getRoot-()Lorg/eclipse/core/resources/IWorkspaceRoot; )org/eclipse/core/resources/IWorkspaceRoot  findMemberpath_p  D(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IFile;   getFolderF(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IFolder;getFileExtension Z  0org/eclipse/egf/common/activator/CommonActivator  getDefault4()Lorg/eclipse/egf/common/activator/CommonActivator;  getUserEnforcedHelper5()Lorg/eclipse/egf/common/helper/IUserEnforcedHelper; 1org/eclipse/egf/common/helper/IUserEnforcedHelper F(Lorg/eclipse/core/resources/IFile;)Lorg/eclipse/core/runtime/IStatus;  org/eclipse/core/runtime/IStatus isOKhelper3Lorg/eclipse/egf/common/helper/IUserEnforcedHelper;status"Lorg/eclipse/core/runtime/IStatus; SourceFileFileHelper.java! 3  3.  /*!. #$ %& 2*'+B ./ %- :L0Y*27:L'M@YBDN-EG*2GW-K,L+PLOPQR-S8U*:RS8TU#VWXY )* BL*+ZY*\M,]cN- -i: *oL *sL+* cefijl,m1n:p@r4B./@vS1wx&yz,{| }~ ;**./{ /  L*L*+WM@YDN-GW-K**:@YD:GWKLb:*,*%:@YD:GWKL*,*%:@YD:GWKL+ +P59<1agknr  '15<>IQacgnp{f VW XY> Vp V VIXY{XYXY ~ P*L+ Y+ /  4L*M,L&N@YD:G*GWK+ P"'244/2T-U"VWXY  mL*M,,L+ +  /T   C +*W   / /  H *,̸Ŭ  /  /   H>:*:*6Y߶:,W>:>@YD:GW*GGWKL:>@YD:  GW *GGW KL:C;3:>@YD:  GW *GGW KLC;3:>@YD:  GW *GGW KL<?P|o+"0:?ACNVbo|             % - 9FH/HHFTC1/"A.VWN!XY.V.V.V!XY !XY %!XY  w*+*M+ N,- "#$*//x  w*+*M+N,-12 456*/ /!"x  P=*+#Y%&=;N@Y,D:.G*01W4G+1WK-LP& @BCDE#F5GBHNJ4P6|P7xNT78W#+XY 9 L*L+ +: TU./< 9 v(ZY*\=@L+D+GM,KW^`a"c'e (P/Qx"RS TU V++V*D@+YN,-]: #-V-cN: -*d!BEh>ops twxy!{)|4};~EGJyT>Vj"V6|Vk6lm)anGop q J* *ru*V ./ x J* *ru*V y/ TX H* *z*#Y%{L@YDM,G*01W,Kh&   +<F H6| &Vp+XY  G** x  N*ZY*\ ./  N*ZY*\ y/ ~ D*ZY*\ /  _L+*M, / Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/IDGeneratorHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1372 Text-content-md5: c89a53d81c1b491a099d5ca2eb99a1e4 Text-content-sha1: e61b246464d339c61b31a705fbbcbc2dd36404a0 Content-length: 1431 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1I/org/eclipse/egf/common/helper/IDGeneratorHelperjava/lang/Object __idSuffixI()VCode  LineNumberTableLocalVariableTable  this1Lorg/eclipse/egf/common/helper/IDGeneratorHelper; generateUID&(Ljava/lang/Object;)Ljava/lang/String;  getClass()Ljava/lang/Class; java/lang/Class  getSimpleName()Ljava/lang/String;  !"generatePrefixUID&(Ljava/lang/String;)Ljava/lang/String;object_pLjava/lang/Object;prefixLjava/lang/String;(*java/lang/StringBuilder ,.-*org/eclipse/egf/common/helper/StringHelper /"replaceNonWordCharactersWithDot )1 2(Ljava/lang/String;)V )4 56append(C)Ljava/lang/StringBuilder; 8:9java/lang/System ;<currentTimeMillis()J )> 5?(J)Ljava/lang/StringBuilder; )A 5B(I)Ljava/lang/StringBuilder; )D EtoStringprefix_p SourceFileIDGeneratorHelper.java!J )    /*    SL* *L+  "$& #$%& !" 4*L+'L)Y++0.37=.3 Y` @C * /01 3456$70833 4F&2%&GH Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/IUserEnforcedHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 348 Text-content-md5: 15cf9c3374372238ae82859fedfb0969 Text-content-sha1: 297e6c00a9aa5ae451a46cf97c873e548249e2b7 Content-length: 407 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 1org/eclipse/egf/common/helper/IUserEnforcedHelperjava/lang/ObjectmakeFileWritableF(Lorg/eclipse/core/resources/IFile;)Lorg/eclipse/core/runtime/IStatus;X(Lorg/eclipse/core/resources/IFile;Ljava/lang/Object;)Lorg/eclipse/core/runtime/IStatus; SourceFileIUserEnforcedHelper.java Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/JavaHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3266 Text-content-md5: af5a451c53ba057f997ed1f12728bde0 Text-content-sha1: ab883bd44e885f4d1cb11e5f46cbd1f5546cbe50 Content-length: 3325 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1o(org/eclipse/egf/common/helper/JavaHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis*Lorg/eclipse/egf/common/helper/JavaHelper;deleteJavaClassG(Lorg/eclipse/jdt/core/IJavaProject;Lorg/eclipse/core/runtime/IPath;Z)Z  getJavaSourceFolderi(Lorg/eclipse/jdt/core/IJavaProject;Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IFolder; "org/eclipse/core/resources/IFolder  findMemberH(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IResource; org/eclipse/core/resources/IFile (org/eclipse/egf/common/helper/FileHelper !deleteResource)(Lorg/eclipse/core/resources/IResource;)Z #%$org/eclipse/core/runtime/IPath &'removeLastSegments#(I)Lorg/eclipse/core/runtime/IPath;)%org/eclipse/core/resources/IContainer (+ ,-members)()[Lorg/eclipse/core/resources/IResource; (/ 01 getParent)()Lorg/eclipse/core/resources/IContainer; (3 45equals(Ljava/lang/Object;)Z7&org/eclipse/core/runtime/CoreException javaProject_p#Lorg/eclipse/jdt/core/IJavaProject;resourcePath_p Lorg/eclipse/core/runtime/IPath;deleteParent_pZ sourceFolder$Lorg/eclipse/core/resources/IFolder;resource&Lorg/eclipse/core/resources/IResource; container'Lorg/eclipse/core/resources/IContainer;'[Lorg/eclipse/core/resources/IResource;ce(Lorg/eclipse/core/runtime/CoreException;getJavaSourceFileg(Lorg/eclipse/jdt/core/IJavaProject;Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IFile; JLK!org/eclipse/jdt/core/IJavaProject MNgetRawClasspath)()[Lorg/eclipse/jdt/core/IClasspathEntry; PRQ$org/eclipse/jdt/core/IClasspathEntry ST getEntryKind()I VXW*org/eclipse/core/resources/ResourcesPlugin YZ getWorkspace)()Lorg/eclipse/core/resources/IWorkspace; \^]%org/eclipse/core/resources/IWorkspace _`getRoot-()Lorg/eclipse/core/resources/IWorkspaceRoot; Pb cdgetPath"()Lorg/eclipse/core/runtime/IPath; fg)org/eclipse/core/resources/IWorkspaceRooti'org/eclipse/jdt/core/JavaModelExceptionpath_pclasspathEntry&Lorg/eclipse/jdt/core/IClasspathEntry; SourceFileJavaHelper.java!/*   [*+*+N--+: P-+"(:0*: '.::-2Qvy6 ^() - . ,0145,6.96:8=<>N?QAZBeCmDyK{L~?P R89:;<={>?l@AN;BCZ,D{EF GH~*+*IY:6>Z2M,OHU[,ae:.#+: M n{hox{h 6 Z[ _ `*a?bLcOf\giio_{m|p 4~89~j; Okl?0>A\@A v*+*IY:6>R2M,O@U[,ae:&+: M fshgpsh 6 z{  *?LO\agst 4v89vj; Gkl?(>A\ @Amn Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/MathHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1525 Text-content-md5: 450cc06b7e71690d1445af54c0451624 Text-content-sha1: 4a6b2bbfca2d118b59bee62cf2eb8c4af1f793e1 Content-length: 1584 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1J(org/eclipse/egf/common/helper/MathHelperjava/lang/ObjectSECONDJ ConstantValueMINUTE`HOUR6DAY&\()VCode  LineNumberTableLocalVariableTablethis*Lorg/eclipse/egf/common/helper/MathHelper;formatAsDuration(J)Ljava/lang/String;java/lang/StringBuilder  " #$append(J)Ljava/lang/StringBuilder;& day ( #)-(Ljava/lang/String;)Ljava/lang/StringBuilder;+s - ./length()I1 3 hr5 min7 sec9 ms ; <=toString()Ljava/lang/String;durationtemp formattedLjava/lang/StringBuilder;multiply(IF)I sourceValue_pI multiplier_pF SourceFileMathHelper.java!   /*  # AY :mA % !%'W *'W ie?mA 5, 0'W !2'W *'W ie? mA 5, 0'W !4'W *'W  ie?AmA 5, 0'W !6'W *'W ie? , 0'W!8'W:0 !"#$#%)&1(9+?,E-M.U0W1[2a3g4o6w9}:;<>?@ABDGHIJKMNOPQSWX Y[\]_ #>!? @A BC:#jiDEFGHI Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/MiscHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 841 Text-content-md5: 977c9755d6fecb563dce16d73048e9ce Text-content-sha1: b59256bd629525dfecd73f7f7fbff70eeeac575c Content-length: 900 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1&(org/eclipse/egf/common/helper/MiscHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis*Lorg/eclipse/egf/common/helper/MiscHelper;asList%([Ljava/lang/Object;)Ljava/util/List; Signature1([TT;)Ljava/util/List;java/util/ArrayList  (I)V  add(Ljava/lang/Object;)Z elements_p[Ljava/lang/Object;resultLjava/util/ArrayList;elementLjava/lang/Object;LocalVariableTypeTableLjava/util/ArrayList;TT; SourceFileMiscHelper.java!/*   ,Y*L*Y:6>2M+,W+  !* , " ! ""#$% Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/PatternHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1888 Text-content-md5: 2db7b0b3ae751bb6d0fc034d127cbe0a Text-content-sha1: dc1875f02a7ebb6e1e2ff00d58571ce9469162b7 Content-length: 1947 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1N+org/eclipse/egf/common/helper/PatternHelperjava/lang/ObjectPATTERN_ID_PREFIXLjava/lang/String; ConstantValue Pattern()VCode  LineNumberTableLocalVariableTablethis-Lorg/eclipse/egf/common/helper/PatternHelper; getFullId8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;java/lang/StringBuilder  (Ljava/lang/String;)V  append(C)Ljava/lang/StringBuilder;   -(Ljava/lang/String;)Ljava/lang/StringBuilder; " #$toString()Ljava/lang/String;parentLibraryFullId_p localId_presultgeneratePatternUID *,+/org/eclipse/egf/common/helper/IDGeneratorHelper -.generatePrefixUID&(Ljava/lang/String;)Ljava/lang/String; deresolveId8(Ljava/lang/String;)Lorg/eclipse/egf/common/misc/Couple; Signature^(Ljava/lang/String;)Lorg/eclipse/egf/common/misc/Couple; 465*org/eclipse/egf/common/helper/StringHelper 78substringBefore'(CLjava/lang/String;)Ljava/lang/String; 4: ;8substringAfter="org/eclipse/egf/common/misc/Couple <? @'(Ljava/lang/Object;Ljava/lang/Object;)VfullId_pparentLibraryFullIdlocalIdgetRootLibraryIdForg/eclipse/core/runtime/Path E EI JKsegment(I)Ljava/lang/String; SourceFilePatternHelper.java!  /*    (M+,*Y*/+!M+M,. $%&( )*+, )$.&0 (%(&&' ($ &)8 /012 |*/*3L/*9M& BCFG E JKIM A B C D. E*EY*GHWXZ ALM Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/PatternLibrarySequenceHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2242 Text-content-md5: e8ce3b436b9302f621f1091a2bb2737a Text-content-sha1: ab3b22e0110712fc62534851cd998c5d84be50c2 Content-length: 2301 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1j:org/eclipse/egf/common/helper/PatternLibrarySequenceHelperjava/lang/ObjectSEQUENCE_SEPARATORSLjava/lang/String; ConstantValue  ,()VCode  LineNumberTableLocalVariableTablethis;)Ljava/lang/String; java/util/List isEmpty()Z java/lang/StringBuilder  # $%iterator()Ljava/util/Iterator; ')(java/util/Iterator *+next()Ljava/lang/Object;-java/lang/String / 01append-(Ljava/lang/String;)Ljava/lang/StringBuilder; '3 4hasNext 6 78toString()Ljava/lang/String;ids_pLjava/util/List;resultLjava/lang/StringBuilder; idIteratorLjava/util/Iterator;idLocalVariableTypeTable$Ljava/util/List;(Ljava/util/Iterator;extractSequenceIds$(Ljava/lang/String;)Ljava/util/List;8(Ljava/lang/String;)Ljava/util/List; GIHjava/util/Collections JK emptyList()Ljava/util/List; MON*org/eclipse/egf/common/helper/StringHelper PQ getTokens9(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; SUT(org/eclipse/egf/common/helper/MiscHelper VWasList%([Ljava/lang/Object;)Ljava/util/List;fullSequence_premoveIdFromSequence8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; \ CD ^ _`remove(Ljava/lang/Object;)Z b c`contains e id_pids SourceFile!PatternLibrarySequenceHelper.java!  /*    P* *Y!L*"M#,&,N+-.W,2 +.W,2+5* # $&'"(,)2*;+B'K.*P9:8;<,=>,?@P9A,=B CDE D*F*LR78: X YZ '*[M, *,+]W,+a,dEGHLK"O 'X'f"g:@ "gAhi Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1415 Text-content-md5: 3ec8c20eb9455bd939ae0e1c0fa6cece Text-content-sha1: c9ab6577183f4928c75e4d700801cb045c1d4e27 Content-length: 1474 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 16Borg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatusjava/lang/EnumALREADY_EXISTSDLorg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus;CREATEDCREATION_FAILED ENUM$VALUESE[Lorg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus;()VCode  (Ljava/lang/String;I)V        LineNumberTableLocalVariableTable thisvaluesG()[Lorg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus; $&%java/lang/System '( arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)VvalueOfX(Ljava/lang/String;)Lorg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus; , )-5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; SourceFileProjectHelper.java SignatureVLjava/lang/Enum; InnerClasses4+org/eclipse/egf/common/helper/ProjectHelperProjectExistenceStatus@1@@@   eAYYYYSYSYS B'A 1*+A   !" 6YK*Y<YM#, )* * *+./012 35@ Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/ProjectHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 12465 Text-content-md5: c6cd265fd62b0c32e942b19f41ccc175 Text-content-sha1: e99f4162bb6ce7f70c6a36cf181ea95ca359831d Content-length: 12524 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1+org/eclipse/egf/common/helper/ProjectHelperjava/lang/Object__loggerLorg/apache/log4j/Logger;)CLASS_PATH_ENTRY_REQUIRED_PLUGINS_PATH_IDLjava/lang/String; ConstantValue requiredPlugins()VCode java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger   getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger; " LineNumberTableLocalVariableTable ' % this-Lorg/eclipse/egf/common/helper/ProjectHelper; getProject9(Ljava/lang/String;)Lorg/eclipse/core/resources/IProject; -/.*org/eclipse/pde/core/plugin/PluginRegistry 01 findModelB(Ljava/lang/String;)Lorg/eclipse/pde/core/plugin/IPluginModelBase; 354*org/eclipse/core/resources/ResourcesPlugin 67 getWorkspace)()Lorg/eclipse/core/resources/IWorkspace; 9;:%org/eclipse/core/resources/IWorkspace <=getRoot-()Lorg/eclipse/core/resources/IWorkspaceRoot; ?A@)org/eclipse/core/resources/IWorkspaceRoot *+ C *DU(Lorg/eclipse/pde/core/plugin/IPluginModelBase;)Lorg/eclipse/core/resources/IProject; projectName_p modelBase.Lorg/eclipse/pde/core/plugin/IPluginModelBase; IKJ,org/eclipse/pde/core/plugin/IPluginModelBase LMgetUnderlyingResource(()Lorg/eclipse/core/resources/IResource; OQP$org/eclipse/core/resources/IResource *R'()Lorg/eclipse/core/resources/IProject;pluginModelBase_punderlyingResource&Lorg/eclipse/core/resources/IResource;canBeConvertedToFC(Ljava/lang/String;)Z AZjava/lang/StringBuilder\'ProjectHelper.canBeConvertedToFC(..) _ Y^ %_(Ljava/lang/String;)Va+Unable to locate a project with element id Yc deappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; Yg htoString j klerror(Ljava/lang/Object;)V -n 0oU(Lorg/eclipse/core/resources/IProject;)Lorg/eclipse/pde/core/plugin/IPluginModelBase; Iq rs getPluginBase+()Lorg/eclipse/pde/core/plugin/IPluginBase; uwv'org/eclipse/pde/core/plugin/IPluginBase xgetId z{#org/eclipse/core/resources/IProject }~java/lang/String equals(Ljava/lang/Object;)ZdTo convert an exisiting plug-in into a FC, its related project name must be equal to the plug-in id.Element  is not a valid plug-in project..Only plug-in projects can be converted to FCs. elementId_presultZproject%Lorg/eclipse/core/resources/IProject; loggerMessageLjava/lang/StringBuilder;modelmodelIdgetJavaProject7(Ljava/lang/String;)Lorg/eclipse/jdt/core/IJavaProject;  J(Lorg/eclipse/core/resources/IProject;)Lorg/eclipse/jdt/core/IJavaProject;!org/eclipse/jdt/core/IJavaElement #org/eclipse/core/runtime/IAdaptable  getAdapter%(Ljava/lang/Class;)Ljava/lang/Object; org/eclipse/jdt/core/JavaCore create %()Lorg/eclipse/jdt/core/IJavaProject; project_p#Lorg/eclipse/jdt/core/IJavaProject; javaElement#Lorg/eclipse/jdt/core/IJavaElement;getClassLoaderForS(Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader; Exceptionsjava/lang/Exception  getProjectDependencies4(Lorg/eclipse/jdt/core/IJavaProject;)[Ljava/net/URL;java/net/URLClassLoader %)([Ljava/net/URL;Ljava/lang/ClassLoader;)V javaProject_pparentClassLoader_pLjava/lang/ClassLoader;Ljava/net/URLClassLoader;classPathEntries[Ljava/net/URL; !org/eclipse/jdt/core/IJavaProject getResolvedClasspath*(Z)[Lorg/eclipse/jdt/core/IClasspathEntry;java/util/ArrayList %(I)V $org/eclipse/jdt/core/IClasspathEntry getPath"()Lorg/eclipse/core/runtime/IPath;  getEntryKind()I org/eclipse/core/runtime/IPath segment(I)Ljava/lang/String;  Q z  getLocation getOutputLocation removeFirstSegments#(I)Lorg/eclipse/core/runtime/IPath; dB(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/runtime/IPath; toFile()Ljava/io/File;  java/io/File toURI()Ljava/net/URI;  java/net/URI toURL()Ljava/net/URL; java/util/List add  size java/net/URL  toArray(([Ljava/lang/Object;)[Ljava/lang/Object;classpathEntries'[Lorg/eclipse/jdt/core/IClasspathEntry; classpathUrlsLjava/util/List;classpathEntry&Lorg/eclipse/jdt/core/IClasspathEntry;urlPath Lorg/eclipse/core/runtime/IPath; localProjectLocalVariableTypeTable Ljava/util/List;refreshProjectS(Lorg/eclipse/core/resources/IProject;Lorg/eclipse/core/runtime/IProgressMonitor;)V  T(Lorg/eclipse/core/resources/IProject;ILorg/eclipse/core/runtime/IProgressMonitor;)V monitor_p+Lorg/eclipse/core/runtime/IProgressMonitor; z  refreshLocal/(ILorg/eclipse/core/runtime/IProgressMonitor;)V!#ProjectHelper.refreshProject(..) _ # $%warn*(Ljava/lang/Object;Ljava/lang/Throwable;)V'&org/eclipse/core/runtime/CoreExceptionprojectToRefresh_pdepth_pI exception_p(Lorg/eclipse/core/runtime/CoreException;createSourceFoldere(Ljava/lang/String;Lorg/eclipse/core/resources/IProject;Lorg/eclipse/core/runtime/IProgressMonitor;)Z 0 12getRawClasspath)()[Lorg/eclipse/jdt/core/IClasspathEntry; z4 5 getFullPath 7 d84(Ljava/lang/String;)Lorg/eclipse/core/runtime/IPath;:+org/eclipse/core/runtime/SubProgressMonitor 9< %=/(Lorg/eclipse/core/runtime/IProgressMonitor;I)V ? @A createFolder(Ljava/lang/String;Lorg/eclipse/core/resources/IProject;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/resources/IFolder; C DEnewSourceEntryH(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/jdt/core/IClasspathEntry; GIHjava/lang/System JK arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)V M NOsetRawClasspathU([Lorg/eclipse/jdt/core/IClasspathEntry;Lorg/eclipse/core/runtime/IProgressMonitor;)VQ'ProjectHelper.createSourceFolder(..) _ sourceFolderName_p successful javaProject sourceEntriesgeneratedSourceFolderPathgeneratedSourceEntry newEntriesLjava/lang/Exception; z[ \] getFolder8(Ljava/lang/String;)Lorg/eclipse/core/resources/IFolder; _a`"org/eclipse/core/resources/IFolder bcexists()Zeorg/eclipse/core/runtime/Path d^ h i segmentCount k lremoveLastSegments g _o p0(ZZLorg/eclipse/core/runtime/IProgressMonitor;)Vr!ProjectHelper.createFolder(..) _  folderName_pfolder$Lorg/eclipse/core/resources/IFolder; parentPathensureProjectExistsZ(Ljava/lang/String;ZI)Lorg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus; z|{Borg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus }~CREATION_FAILEDDLorg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus; } valueOf&(Ljava/lang/Object;)Ljava/lang/String;/META-INF/MANIFEST.MF (org/eclipse/egf/common/helper/FileHelper getPlatformFile6(Ljava/lang/String;)Lorg/eclipse/core/resources/IFile; a org/eclipse/core/resources/IFile z ~ALREADY_EXISTS } (C)Ljava/lang/String;/src,org/eclipse/core/runtime/NullProgressMonitor ' java/util/Collections   EMPTY_LIST 'org/eclipse/emf/codegen/ecore/Generator createEMFProject(Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/core/runtime/IPath;Ljava/util/List;Lorg/eclipse/core/runtime/IProgressMonitor;ILjava/util/List;)Lorg/eclipse/core/resources/IProject; za z ~CREATED  cleanProjectStructure((Lorg/eclipse/core/resources/IProject;)VcleanProject_p projectType_pfile"Lorg/eclipse/core/resources/IFile;projectLocationPathresultingProjectorg.eclipse.jdt.core.javanature z getDescription2()Lorg/eclipse/core/resources/IProjectDescription; .org/eclipse/core/resources/IProjectDescription  setNatureIds([Ljava/lang/String;)V z setDescription^(Lorg/eclipse/core/resources/IProjectDescription;Lorg/eclipse/core/runtime/IProgressMonitor;)V*ProjectHelper.cleanProjectStructure(..) _   getFileExtension'org/eclipse/jdt/core/JavaModelException natureIds[Ljava/lang/String; description0Lorg/eclipse/core/resources/IProjectDescription; exception_p1 rawClasspath)Lorg/eclipse/jdt/core/JavaModelException;newRawClasspathpath8Ljava/util/List;ensurePluginProjectExistsX(Ljava/lang/String;)Lorg/eclipse/egf/common/helper/ProjectHelper$ProjectExistenceStatus;  *EMF_PLUGIN_PROJECT_STYLE  wx  *EMF_EMPTY_PROJECT_STYLE SourceFileProjectHelper.java InnerClassesProjectExistenceStatus!   3!# 50$% /*&#0$ () *+k#**,L+28*>+B#NOR VWY$#E FG *Db**HL+ +N#cdf gik$SG TU VW]<*XM,%YY[]N-`b*bW!-fiy,mN-A-pt:,y|<SYY[]:bW!fi2YY[]:b*bbWbW!fi#Nuvw xy z-|2}6~COS^ft$R2qGC1^$ 2*X#$ E &L*+*M,*M,L+#"$$ &$ $M*+,*N-,Y-+M,#" "$*$$" ? *LY+M+Y:66s2N-:-E::,W,, #. %-HUux$>    %g-_U#   ?*+# $ %*,NYY ]:!f-" &# $$4%(%)*% +,  -.} >* +,+:/:+3*6:*+9Y,;>WB:`:2SSdF9Y,;L> :>YYP]:!f"}#N  -<CMU[i{ !"#$&$p RSjTaU -SVC=WM3X +Y  @Ah+*ZN-^XdY*f:gj:m+,>W-,n :NYYq]:!f"-=FI&#2 1356&709==I>K?M@YAfD$Hhshh`tuKvK+,Y  wxGyN*-YY*]bf:dYYY/]*bff:6YȻY:NyN-#RPRS U#W-X1[M]W^X_``gahbk\pdeghkm$HE*~#rMHp% i #*L+}YSM*N-,*-YNYY·]:!f-"N+/N:YY·]:!f"--Y-:-Y:66G2:(:   |W W+̹ĻYL:YY·]:!f"14&RY\#vwy z }#45AMR\^jw "$#T5,A R ^+j  :  +   3 *ָٰ#$  E w3 *۸ٰ#$  E z@ Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/StatusHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3642 Text-content-md5: 4dff312ccaf553584c899281a824464c Text-content-sha1: 7269ee01564f4c57e02e78d3ffd00f7475b97fcb Content-length: 3701 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1*org/eclipse/egf/common/helper/StatusHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis,Lorg/eclipse/egf/common/helper/StatusHelper; newStatus(Ljava/lang/String;[Lorg/eclipse/core/runtime/IStatus;Ljava/lang/String;Ljava/lang/Throwable;)Lorg/eclipse/core/runtime/IStatus; java/lang/String trim()Ljava/lang/String;  length()I"java/lang/IllegalArgumentException  $org/eclipse/core/runtime/MultiStatus "!0org/eclipse/egf/common/activator/CommonActivator #$ getDefault4()Lorg/eclipse/egf/common/activator/CommonActivator; & ' getPluginID ) *`(Ljava/lang/String;I[Lorg/eclipse/core/runtime/IStatus;Ljava/lang/String;Ljava/lang/Throwable;)VpluginIDLjava/lang/String;stati#[Lorg/eclipse/core/runtime/IStatus;message exceptionLjava/lang/Throwable;^(Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)Lorg/eclipse/core/runtime/IStatus; 465java/lang/Throwable 7 getMessage 49 :toString<org/eclipse/core/runtime/Status ;> ?>(ILjava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)VseverityI statusMessagem(Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Throwable;)Lorg/eclipse/core/runtime/IStatus; Signature(Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/Throwable;)Lorg/eclipse/core/runtime/IStatus;Gjava/util/ArrayList F JLKjava/util/List MNiterator()Ljava/util/Iterator; PRQjava/util/Iterator STnext()Ljava/lang/Object;V org/eclipse/core/runtime/IStatus X YZflatten4(Lorg/eclipse/core/runtime/IStatus;)Ljava/util/List; J\ ]^add(Ljava/lang/Object;)Z P` abhasNext()Z Jd esize Jg hitoArray(([Ljava/lang/Object;)[Ljava/lang/Object; k childrenLjava/util/List;flatStatusCollectioniterLjava/util/Iterator; currentStatus"Lorg/eclipse/core/runtime/IStatus; childrenIterLocalVariableTypeTable4Ljava/util/List;8Ljava/util/Iterator;X(Lorg/eclipse/core/runtime/IStatus;)Ljava/util/List; Uy zb isMultiStatus U| }~ getChildren%()[Lorg/eclipse/core/runtime/IStatus;aStatusresulti currentChildchildStatiiEnum SourceFileStatusHelper.java!/*   :, , YY*** %+,-( & %&()2*3+4,5-6( *:+,:-.:/,:01 2X,:, ,%- Y-3 -8: -3:;Y*** %-= :6789:$;-=3@7A8BPCQDSET@ 4X+,X@AX/,X01UB, CDEJtFYH:+I::OU:WI:OU[W__cU:fW*,-j 2 N OPQ R,S/TASKPUWaXkY \ t+,tlmt/,t01 knmcop +qr,spa-.t*tlu knucov,sv YZDw$xFYHL*x`*{M>K,2:x0WI:+OU[W_ +[W, +*[W+ :`abcd"e,f8g;hLgYkbcnovq >xrpmVl.QA"@r8!ptpu8!v Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/helper/StringHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3805 Text-content-md5: 771c5f8a1b617314b073c6fd9eed4a9e Text-content-sha1: b70c124644adee81fbb4853b9d75a4c09a8b634f Content-length: 3864 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1*org/eclipse/egf/common/helper/StringHelperjava/lang/ObjectREGEXP_NON_WORD_CHARACTERSLjava/lang/String; ConstantValue  [^a-zA-Z0-9]()VCode  LineNumberTableLocalVariableTablethis,Lorg/eclipse/egf/common/helper/StringHelper; formatMessage9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;java/text/MessageFormat  (Ljava/lang/String;)V  format&(Ljava/lang/Object;)Ljava/lang/String; message_p arguments_p[Ljava/lang/Object; formatterLjava/text/MessageFormat; toLowerFirst&(Ljava/lang/String;)Ljava/lang/String;&java/lang/StringBuffer % )+*java/lang/String ,- substring(II)Ljava/lang/String; )/ 01 toLowerCase()Ljava/lang/String; )3 45charAt(I)C %7 89 setCharAt(IC)V %; <1toStringsource_presultLjava/lang/StringBuffer;firstCharacter toUpperFirst )C D1 toUpperCase getTokens9(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;H[Ljava/lang/String; )J K1trim )M NOlength()IQjava/util/StringTokenizer PS T'(Ljava/lang/String;Ljava/lang/String;)V PV WO countTokens PY Z1 nextToken separators_p tokenizerLjava/util/StringTokenizer; tokensCountIisubstringBefore'(CLjava/lang/String;)Ljava/lang/String; )d ef lastIndexOf(I)I separator_pCseparatorPositionsubstringAfter )l ,m(I)Ljava/lang/String; createHttpUripjava/lang/StringBuilderrhttp:// o ou vwappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; o; relativeUri_pK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String; )| }~indexOf(Ljava/lang/String;)I ) }(Ljava/lang/String;I)IbeginningDelimiter_pendingDelimiter_p content_pincludeDelimiters_pZindexBeginningDelimiterindexEndingDelimiterreplaceNonWordCharactersWithDot ) valueOf(C)Ljava/lang/String;  replaceNonWordCharacters8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;originalString_p&replaceNonWordCharactersWithUnderscore )  replaceAllreplacementString_p SourceFileStringHelper.java!   /*    QY*M,+ & '   !" #$ l"%Y*'L*(.M+,26+:0 123 "= >?@ A$ l"%Y*'L*(BM+,26+:< =>? "= >?@ EF oGM* *IL,+ +IL)Y*SM,PY*+RN-U6$)M6,-XS )Y*SM,>JMNQ#R,S.V8X>YCZI[O\W[d_ma>o=o[j>H87\]>1^_L`_ ab *M+ +IL,+c> +(M+M,"lnorst&w(y**gh*=(>i_ jb +M+ +IL,+c>+`kM+M,"')*+gh+=)>i_ n$ ;oYqs*tx y ,z E:,*{66,+6(,+L`(:,*L`(:&  !3BHEEEEB> ;_*_ $ < *.   $ < *_    U*++  Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/internal Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/internal/generator Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/internal/generator/emf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/internal/generator/emf/CustomizedGenerator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1472 Text-content-md5: da9640db8952b93ae3f14d0ca44130e0 Text-content-sha1: 6fe425381626063a3c079c744d1e8321dbdf8859 Content-length: 1531 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 13Aorg/eclipse/egf/common/internal/generator/emf/CustomizedGenerator1org/eclipse/emf/codegen/ecore/generator/Generator_generatorAdapterFactoryALorg/eclipse/emf/codegen/ecore/generator/GeneratorAdapterFactory;D(Lorg/eclipse/emf/codegen/ecore/generator/GeneratorAdapterFactory;)VCode   ()V   ?org/eclipse/emf/codegen/ecore/generator/GeneratorAdapterFactory  setGenerator6(Lorg/eclipse/emf/codegen/ecore/generator/Generator;)VLineNumberTableLocalVariableTablethisCLorg/eclipse/egf/common/internal/generator/emf/CustomizedGenerator;generatorAdapterFactory_pgetAdapterFactories*(Ljava/lang/Object;)Ljava/util/Collection; Signaturem(Ljava/lang/Object;)Ljava/util/Collection;java/util/ArrayList ! "(I)V $&%java/util/Collection '(add(Ljava/lang/Object;)Z * object_pLjava/lang/Object;resultLjava/util/Collection;LocalVariableTypeTableYLjava/util/Collection; SourceFileCustomizedGenerator.java! _* *+ * * *"# $%' (M* Y M,* #W *+)M,.0 12 5&7 ((+,&-./ &-012 Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/internal/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/internal/helper/DefaultUserHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 919 Text-content-md5: 13f74a983cc88e3f49ffbbf9443a1f1b Text-content-sha1: b98e516a3627c4f492e7ee72ec6a5c7197efcfb4 Content-length: 978 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 18org/eclipse/egf/common/internal/helper/DefaultUserHelperjava/lang/Object1org/eclipse/egf/common/helper/IUserEnforcedHelper()VCode  LineNumberTableLocalVariableTablethis:Lorg/eclipse/egf/common/internal/helper/DefaultUserHelper;makeFileWritableF(Lorg/eclipse/core/resources/IFile;)Lorg/eclipse/core/runtime/IStatus; org/eclipse/core/runtime/Status  OK_STATUS"Lorg/eclipse/core/runtime/IStatus;file_p"Lorg/eclipse/core/resources/IFile;X(Lorg/eclipse/core/resources/IFile;Ljava/lang/Object;)Lorg/eclipse/core/runtime/IStatus; display_pLjava/lang/Object; SourceFileDefaultUserHelper.java! /*    8   B %  Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/listener Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/listener/AbstractProjectListener.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2303 Text-content-md5: d8f29bd75b27dcf1d9da2de3d8247270 Text-content-sha1: f7ee5811850475c05e8623111824eb9685a68903 Content-length: 2362 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1W7org/eclipse/egf/common/listener/AbstractProjectListenerjava/lang/Object2org/eclipse/core/resources/IResourceChangeListener()VCode  LineNumberTableLocalVariableTablethis9Lorg/eclipse/egf/common/listener/AbstractProjectListener;resourceChanged4(Lorg/eclipse/core/resources/IResourceChangeEvent;)V /org/eclipse/core/resources/IResourceChangeEvent getDelta-()Lorg/eclipse/core/resources/IResourceDelta; )org/eclipse/core/resources/IResourceDelta  getResource(()Lorg/eclipse/core/resources/IResource;  !getKind()I#)org/eclipse/core/resources/IWorkspaceRoot % &'getAffectedChildren.()[Lorg/eclipse/core/resources/IResourceDelta; ) *+ getProjectM(Lorg/eclipse/core/resources/IResource;)Lorg/eclipse/core/resources/IProject; - ./handleProjectAddedS(Lorg/eclipse/core/resources/IProject;Lorg/eclipse/core/resources/IResourceDelta;)V 1 2!getFlags 465#org/eclipse/core/resources/IProject 78isOpen()Z : ;/handleProjectClosed = >/handleProjectChanged @ A/handleProjectRemovedevent_p1Lorg/eclipse/core/resources/IResourceChangeEvent; resourceDelta+Lorg/eclipse/core/resources/IResourceDelta;resource&Lorg/eclipse/core/resources/IResource;childrenResourceDeltas,[Lorg/eclipse/core/resources/IResourceDelta;currentChildResourceDeltakindI childResourceproject%Lorg/eclipse/core/resources/IProject;flagsisProjectOpenedZ resource_presult SourceFileAbstractProjectListener.java! /*    +M,,N,-",$:Y:662:6 : * (:  v qiq)* ,K06  36 @  * ,!* 9* < * ?` f "$$%,'A)J+S-[/`023679:;=@BD'J p BCDEFG,HIAJEJKL SMG [xNO 7PL .QR ./>/A/;/*+ ^M++4+4M, no pr SGTOUV Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/listener/DefaultResourceListener.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2605 Text-content-md5: 5e3fd2f3a8d21862f5e6444a6edf61ff Text-content-sha1: 5c01de9ee855ac61ed4abafe039335026d4738a4 Content-length: 2664 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1[7org/eclipse/egf/common/listener/DefaultResourceListenerjava/lang/Object2org/eclipse/core/resources/IResourceChangeListener_resourceToWatch&Lorg/eclipse/core/resources/IResource;_alreadyRegisteredZ()VCode  LineNumberTableLocalVariableTablethis9Lorg/eclipse/egf/common/listener/DefaultResourceListener;setResourceToWatch)(Lorg/eclipse/core/resources/IResource;)V    *org/eclipse/core/resources/ResourcesPlugin  getWorkspace)()Lorg/eclipse/core/resources/IWorkspace; !#"%org/eclipse/core/resources/IWorkspace $%addResourceChangeListener7(Lorg/eclipse/core/resources/IResourceChangeListener;)V resource_pdispose !) *%removeResourceChangeListenerresourceChanged4(Lorg/eclipse/core/resources/IResourceChangeEvent;)V . /0refersToResourceZ(Lorg/eclipse/core/resources/IResource;Lorg/eclipse/core/resources/IResourceChangeEvent;)Z 2 34handleResourceChangedZ(Lorg/eclipse/core/resources/IResourceChangeEvent;Lorg/eclipse/core/resources/IResource;)Vevent_p1Lorg/eclipse/core/resources/IResourceChangeEvent; 8:9/org/eclipse/core/resources/IResourceChangeEvent ;<getDelta-()Lorg/eclipse/core/resources/IResourceDelta; > /?T(Lorg/eclipse/core/resources/IResource;Lorg/eclipse/core/resources/IResourceDelta;)ZlookedForResource_p BDC)org/eclipse/core/resources/IResourceDelta EF getResource(()Lorg/eclipse/core/resources/IResource; HJI$org/eclipse/core/resources/IResource KLequals(Ljava/lang/Object;)Z BN OPgetAffectedChildren.()[Lorg/eclipse/core/resources/IResourceDelta;resourceDelta_p+Lorg/eclipse/core/resources/IResourceDelta;resourceresultchildren,[Lorg/eclipse/core/resources/IResourceDelta;iI SourceFileDefaultResourceListener.java!B   /*  _*+** *'( )*,&'  U***(*23 457 +, R**+- *+*1> ?A5634/0 \+,*+,7=RS U @56/? B,AN+-G6-,M:6*+2=6"_`acd#e/d?hHBB@BQR;S2T "UV WXYZ Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/misc Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/misc/Couple.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2148 Text-content-md5: 80cb77ec203f2a2323b7c3586e047350 Text-content-sha1: e27916c81dc1080195d33b4d3c3425ead7681f18 Content-length: 2207 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1O"org/eclipse/egf/common/misc/Couplejava/lang/Objectjava/lang/Cloneable_keyLjava/lang/Object; SignatureTK;_valueTV;'(Ljava/lang/Object;Ljava/lang/Object;)V (TK;TV;)VCode  ()V    LineNumberTableLocalVariableTablethis$Lorg/eclipse/egf/common/misc/Couple;key_pvalue_pLocalVariableTypeTable,Lorg/eclipse/egf/common/misc/Couple;getKey()Ljava/lang/Object;()TK;getValue()TV;setKey(Ljava/lang/Object;)V(TK;)VsetValue(TV;)Vclone&()Lorg/eclipse/egf/common/misc/Couple;.()Lorg/eclipse/egf/common/misc/Couple; . *!0$java/lang/CloneNotSupportedException exception_p&Ljava/lang/CloneNotSupportedException;toString()Ljava/lang/String; 6 348:java/lang/StringBuffer 9< =(Ljava/lang/String;)V 9? @Aappend(C)Ljava/lang/StringBuffer; 9C @D,(Ljava/lang/String;)Ljava/lang/StringBuffer; 96 keyStringLjava/lang/String; valueString Exceptions K *+ SourceFile Couple.javaQLjava/lang/Object;Ljava/lang/Cloneable;!       **+*, ! "#     ! "A**  #! $A*2  %& 'Z*+ :; (& )Z*+ BC *+ ,a *-L/LM N  12  34B* *57L* *57M9Y+;(>,B)>E"WX(Y0Z5[9\>]AY B.FG(HG BA*!I/%*JLM N Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/misc/ISelectionHandler.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 210 Text-content-md5: 442775548f25a8b0d1271aa257f71961 Text-content-sha1: 508c6f15c69b2c5313372a60ac6aae4da1bdccf1 Content-length: 269 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 -org/eclipse/egf/common/misc/ISelectionHandlerjava/lang/ObjecthandleSelection&(Ljava/lang/Object;)Ljava/lang/String; SourceFileISelectionHandler.java Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/misc/PlatformLocationType.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1322 Text-content-md5: 8f920143981cc5fbf55ff155753be94d Text-content-sha1: 090e590eb85bccc49e75dfe659e01c6af3d66862 Content-length: 1381 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 160org/eclipse/egf/common/misc/PlatformLocationTypejava/lang/EnumTARGET_PLATFORM_ONLY2Lorg/eclipse/egf/common/misc/PlatformLocationType;WORKSPACE_ONLYTARGET_PLATFORM_THEN_WORKSPACEWORKSPACE_THEN_TARGET_PLATFORM ENUM$VALUES3[Lorg/eclipse/egf/common/misc/PlatformLocationType;()VCode  (Ljava/lang/String;I)V          LineNumberTableLocalVariableTable thisvalues5()[Lorg/eclipse/egf/common/misc/PlatformLocationType; (*)java/lang/System +, arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)VvalueOfF(Ljava/lang/String;)Lorg/eclipse/egf/common/misc/PlatformLocationType; 0 -15(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; SourceFilePlatformLocationType.java SignatureDLjava/lang/Enum;@1@@@@   TYYYYYSYSYSYS!  '%4"1*+#!" $ %&6YK*Y<YM',!" -.* */!"2345 Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/progress Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/progress/IProgressRunnable.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 261 Text-content-md5: 52262b18e7462197a7d40c5865c2f519 Text-content-sha1: 12a8996e69fcd422f8497fe93afc0d82cf64e265 Content-length: 320 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 1org/eclipse/egf/common/progress/IProgressRunnablejava/lang/Objectrun.(Lorg/eclipse/core/runtime/IProgressMonitor;)ZgetReportingTitle()Ljava/lang/String; SourceFileIProgressRunnable.java  Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/progress/ProductionProgressMonitor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1152 Text-content-md5: be5a360674cf66f8a03941332cbca4f1 Text-content-sha1: 3f8e1a61125e54af9b147d070049b4c5e22f2268 Content-length: 1211 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 179org/eclipse/egf/common/progress/ProductionProgressMonitorjava/lang/Object _totalWorkI_monitor%Lorg/eclipse/core/runtime/SubMonitor; getMonitor'()Lorg/eclipse/core/runtime/SubMonitor;Code  LineNumberTableLocalVariableTablethis;Lorg/eclipse/egf/common/progress/ProductionProgressMonitor;;(Lorg/eclipse/core/runtime/SubMonitor;Ljava/lang/String;I)V  ()V   #org/eclipse/core/runtime/SubMonitor newChild((I)Lorg/eclipse/core/runtime/SubMonitor;  " #$ beginTask(Ljava/lang/String;I)V & '( setTaskName(Ljava/lang/String;)VparentMonitor_p taskName_pLjava/lang/String; totalWork_pend / 01worked(I)V 3 4setWorkRemaining SourceFileProductionProgressMonitor.java!  /* %  +***+* * *!* ,%./ 01"2*3*++)+*++,- G* *.* 2W9 :; 56 Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/progress/ProgressReporter$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1371 Text-content-md5: 8438fe4bde95d9ee5f339bf6e3371972 Text-content-sha1: fb38db128eeaf5f48e5d0ae2feaf1d84d89cd665 Content-length: 1430 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 142org/eclipse/egf/common/progress/ProgressReporter$1'org/eclipse/core/resources/WorkspaceJobval$runnable_p3Lorg/eclipse/egf/common/progress/IProgressRunnable;H(Ljava/lang/String;Lorg/eclipse/egf/common/progress/IProgressRunnable;)VCode    (Ljava/lang/String;)VLineNumberTableLocalVariableTablethis4Lorg/eclipse/egf/common/progress/ProgressReporter$1; $anonymous0Ljava/lang/String;runInWorkspaceO(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/IStatus; Exceptions&org/eclipse/core/runtime/CoreException 0org/eclipse/egf/common/progress/ProgressReporter syncExeca(Lorg/eclipse/egf/common/progress/IProgressRunnable;Lorg/eclipse/core/runtime/IProgressMonitor;)Z !#"org/eclipse/core/runtime/Status $% OK_STATUS"Lorg/eclipse/core/runtime/IStatus; !' (% CANCEL_STATUS monitor_p+Lorg/eclipse/core/runtime/IProgressMonitor;resultZ SourceFileProgressReporter.javaEnclosingMethod 12 asyncExec6(Lorg/eclipse/egf/common/progress/IProgressRunnable;)V InnerClasses  C *, *+  -   Y* += & 0 1 )* +,-./03  Node-path: plugins/org.eclipse.egf.common/bin/org/eclipse/egf/common/progress/ProgressReporter.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1471 Text-content-md5: 4bf61e4faa55d23be096bce354e5ffa1 Text-content-sha1: 8561dd4c2df89346e1bfa101fb01ba4a832917b6 Content-length: 1530 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 170org/eclipse/egf/common/progress/ProgressReporterjava/lang/ObjectTASK_DEFAULT_TICKS_COUNTI ConstantValue()VCode  LineNumberTableLocalVariableTablethis2Lorg/eclipse/egf/common/progress/ProgressReporter; asyncExec6(Lorg/eclipse/egf/common/progress/IProgressRunnable;)V2org/eclipse/egf/common/progress/ProgressReporter$1 1org/eclipse/egf/common/progress/IProgressRunnable getReportingTitle()Ljava/lang/String;  H(Ljava/lang/String;Lorg/eclipse/egf/common/progress/IProgressRunnable;)V "!!org/eclipse/core/runtime/jobs/Job # schedule runnable_p3Lorg/eclipse/egf/common/progress/IProgressRunnable;job#Lorg/eclipse/core/runtime/jobs/Job;syncExeca(Lorg/eclipse/egf/common/progress/IProgressRunnable;Lorg/eclipse/core/runtime/IProgressMonitor;)Z+,org/eclipse/core/runtime/NullProgressMonitor * . /0run.(Lorg/eclipse/core/runtime/IProgressMonitor;)ZprogressMonitor_p+Lorg/eclipse/core/runtime/IProgressMonitor;progressMonitor SourceFileProgressReporter.java InnerClasses!  /*    ]*Y**L+)*-45$%&' () n*+M, *Y,M*,-ABDF GJ $%1232456  Node-path: plugins/org.eclipse.egf.common/build.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 640 Text-content-md5: dea5a444dcd1890a64c20f3c8ff7ffee Text-content-sha1: df6180874da316490a8efaf6b300651b8154e8b8 Content-length: 685 K 13 svn:mime-type V 10 text/plain PROPS-END ## # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ## source.. = src/ output.. = bin/ bin.includes = META-INF/,\ .,\ plugin.properties,\ about.html,\ plugin.xml src.includes = about.html,\ schema/ Node-path: plugins/org.eclipse.egf.common/plugin.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 540 Text-content-md5: 3cce14a24f082a51c34eb70f62c219b0 Text-content-sha1: 6948efe8d9aff9d52690431c316b144f150f618e Content-length: 585 K 13 svn:mime-type V 10 text/plain PROPS-END ## # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ## pluginName=EGF Common (Incubation) providerName=Eclipse Modeling Project EGFUserHelperExtensionPoint=EGF User Enforced Helper Node-path: plugins/org.eclipse.egf.common/plugin.xml Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 651 Text-content-md5: fa6f99e5e14224ec5575cc2fcfe51c09 Text-content-sha1: 77ec3df085b0e1202dc152aeb081092eb3f889bd Content-length: 696 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/org.eclipse.egf.common/schema Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/schema/user_helper.exsd Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2909 Text-content-md5: 4046f4ead7b4059541630cf238517df0 Text-content-sha1: 6ea9cca95a77fb4af60cf1adc0e81a318594d132 Content-length: 2954 K 13 svn:mime-type V 10 text/plain PROPS-END Breaks the dependency towards UI for helper purposes (such as resource handling with configuration management, ...). The implementation of the expected services. Must implement IUserEnforced interface (either directly or not). 1.2.0_M3 [Enter extension point usage example here.] [Enter API information here.] [Enter information about supplied implementation of this extension point.] Node-path: plugins/org.eclipse.egf.common/src Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/activator Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/activator/AbstractActivator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 4228 Text-content-md5: e778bd5d3f8a202a2f8d6fde05d4e14c Text-content-sha1: db43d4d0765bee8e3ceaa78822becd544348429d Content-length: 4273 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.activator; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Status; import org.eclipse.osgi.util.NLS; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.helper.StatusHelper; /** * @author fournier */ public abstract class AbstractActivator extends Plugin { public void log(Throwable t) { log(newErrorStatus(t.getMessage(), t)); } /** * Returns a new error status for this plug-in with the given message * @param message the message to be included in the status * @param exception the exception to be included in the status or null if none * @return a new error status */ public IStatus newErrorStatus(String message, Throwable exception) { return new Status(IStatus.ERROR, getPluginID(), ICommonConstants.INTERNAL_ERROR, message, exception); } /** * Logs the given message to the platform log. * * If you have an exception in hand, call log(String, Throwable) instead. * * If you have a status object in hand call log(String, IStatus) instead. * * @param message A high level UI message describing when the problem happened. */ public void log(String message) { getLog().log(StatusHelper.newStatus(getPluginID(), IStatus.ERROR, message, null)); } /** * Logs the given message and throwable to the platform log. * * If you have a status object in hand call log(String, IStatus) instead. * * * @param message A high level UI message describing when the problem happened. * @param t The throwable from where the problem actually occurred. */ public void log(String message, Throwable t) { log(message, StatusHelper.newStatus(getPluginID(), IStatus.ERROR, message, t)); } /** * Logs the given throwable to the platform log, indicating the class and method from where it is being logged (this is not necessarily where it occurred). * * @param clazz The calling class. * @param methodName The calling method name. * @param t The throwable from where the problem actually occurred. */ public void log(Class clazz, String methodName, Throwable t) { log(NLS.bind("Exception in {0}.{1}: {2}", new Object []{ clazz.getName(), methodName, t }), t); //$NON-NLS-1$ } /** * Logs the given message and status to the platform log. * * @param status The status describing the problem. Must not be null. */ public void log(IStatus status) { log(null, status); } /** * Log the given exception along with the provided message and severity indicator */ public void log(int severity, String message, Throwable e) { log(new Status(severity, getPluginID(), 0, message, e)); } /** * Logs the given message and status to the platform log. * * @param message A high level UI message describing when the problem happened. May be null. * @param status The status describing the problem. Must not be null. */ public void log(String message, IStatus status) { // 1FTUHE0: ITPCORE:ALL - API - Status & logging - loss of semantic info if (message != null) { getLog().log(StatusHelper.newStatus(getPluginID(), IStatus.ERROR, message, null)); } getLog().log(status); } /** * Get the plug-in ID according to MANIFEST.MF definition. * * @return a String containing the plug-in ID. */ public String getPluginID() { return getBundle().getSymbolicName(); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/activator/CommonActivator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3080 Text-content-md5: 0f915d509adc5814b4d6db5a5e57999a Text-content-sha1: 639ad13bdcd5c413d97627daa9904b3e1936779c Content-length: 3125 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.activator; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.egf.common.helper.ExtensionPointHelper; import org.eclipse.egf.common.helper.IUserEnforcedHelper; import org.eclipse.egf.common.internal.helper.DefaultUserHelper; import org.osgi.framework.BundleContext; /** * Common plug-in activator. * @author Guillaume Brocard */ public class CommonActivator extends AbstractActivator { /** * Extension point "user_helper" short id. */ protected static final String EXTENSION_POINT_SHORT_ID_USER_HELPER = "user_helper"; //$NON-NLS-1$ /** * Shared instance. */ private static CommonActivator __plugin; /** * User enforced helper. */ private IUserEnforcedHelper _userHelper; /** * Get shared instance. * @return */ public static CommonActivator getDefault() { return __plugin; } /** * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ @Override public void start(BundleContext context_p) throws Exception { super.start(context_p); __plugin = this; } /** * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) */ @Override public void stop(BundleContext context_p) throws Exception { __plugin = null; super.stop(context_p); } /** * Get user enforced helper unique implementation. * @return null if none could be found. */ public IUserEnforcedHelper getUserEnforcedHelper() { // Lazy loading. Search for the implementation. if (_userHelper == null) { // Get extensions abiding to user helper extension point. IConfigurationElement[] configurationElements = ExtensionPointHelper.getConfigurationElements( getPluginID(), EXTENSION_POINT_SHORT_ID_USER_HELPER ); if (configurationElements != null && configurationElements.length > 0) { // There should be one implementation only ! // So take the first one, as expected. Object instantiatedClass = ExtensionPointHelper.createInstance( configurationElements[0], ExtensionPointHelper.ATT_CLASS ); // Make sure this is the correct resulting type. if (instantiatedClass instanceof IUserEnforcedHelper) { _userHelper = (IUserEnforcedHelper) instantiatedClass; } } // Could not find any user helper, use default one. if (_userHelper == null) { _userHelper = new DefaultUserHelper(); } } return _userHelper; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/adapter Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/adapter/AbstractAdapterFactory.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2921 Text-content-md5: fbec9737c9e495b096ab9bf08c66d861 Text-content-sha1: f948f2637f2f4a093c6de2668b0a22de1719b305 Content-length: 2966 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.adapter; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.core.runtime.Platform; /** * Base class to implement {@link IAdapterFactory} class. * @author fournier */ public abstract class AbstractAdapterFactory implements IAdapterFactory { /** * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) */ @SuppressWarnings("unchecked") public Object getAdapter(Object adaptableObject_p, Class adapterType_p) { Object adapter = null; // Looking for the related adapter for given model object. Iterator, AdapterDescriptor>> iterator = getAdapters().entrySet().iterator(); while (iterator.hasNext() && null == adapter) { Entry, AdapterDescriptor> entry = iterator.next(); Class modelObject = entry.getKey(); // Checking if the retrieved adaptable is a compatible type for given adaptable object. if (modelObject.isInstance(adaptableObject_p)) { AdapterDescriptor adapterDescriptor = entry.getValue(); adapter = adapterDescriptor.getAdapter(); } } return adapter; } /** * Return the map of registered adapters * @return */ protected abstract Map, AdapterDescriptor> getAdapters(); /** * Returns an object which is an instance of the given class associated with the given object. Returns null if no such object can be found. *

* Note that this method will never cause plug-ins to be loaded. If the only suitable factory is not yet loaded, this method will return null. * @param adaptable_p * the adaptable object being queried (usually an instance of IAdaptable) * @param adapterType_p * the type of adapter to look up * @return an object castable to the given adapter type, or null if the given adaptable object does not have an available adapter of the given * type */ public static Object getPlatformAdapter(Object adaptable_p, Class adapterType_p) { return Platform.getAdapterManager().getAdapter(adaptable_p, adapterType_p); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/adapter/AdapterDescriptor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2006 Text-content-md5: a20eabb0adbc84de7caf5264cc7ac1fc Text-content-sha1: f6fe75976017485ed31ce0395386dadaabbff28d Content-length: 2051 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.adapter; import org.apache.log4j.Logger; import org.eclipse.egf.common.misc.Couple; /** * Used to minimize memory consumption. (Flyweight pattern) * @author fournier */ public class AdapterDescriptor { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(AdapterDescriptor.class.getPackage().getName()); // Key is the type adaptable type, value is the adapter private Couple, Object> _couple; public AdapterDescriptor(Class objectClass_p) { _couple = new Couple, Object>(objectClass_p, null); } /** * Get the adapter for this descriptor. * @return a not null adapter */ public Object getAdapter() { Object adapter = _couple.getValue(); if (null == adapter) { try { adapter = _couple.getKey().newInstance(); _couple.setValue(adapter); } catch (InstantiationException exception_p) { StringBuilder loggerMessage = new StringBuilder("AdapterDescriptor.getAdapter(..) _ "); //$NON-NLS-1$ __logger.error(loggerMessage.toString(), exception_p); } catch (IllegalAccessException exception_p) { StringBuilder loggerMessage = new StringBuilder("AdapterDescriptor.getAdapter(..) _ "); //$NON-NLS-1$ __logger.error(loggerMessage.toString(), exception_p); } } return adapter; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/ant Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/ant/AbstractAntTask.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2760 Text-content-md5: 097ec1bd73899116fa093c51b63d1f14 Text-content-sha1: 1ed9e1c2fded586ea6b72929a07fd02abab79238 Content-length: 2805 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ant; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; import org.eclipse.ant.core.AntCorePlugin; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; /** * Base class for the tasks that are defined in this plug-in. Provides common behavior and facilities.
* Code was copied from EMFTask class provided by org.eclipse.emf.ant plug-in. * @author Guillaume Brocard */ public abstract class AbstractAntTask extends Task { /** * Throws a BuildException if expression_p is false. * @param message_p * @param expression_p * @throws BuildException */ public static void assertTrue(String message_p, boolean expression_p) throws BuildException { if (!expression_p) { throw new BuildException(message_p); } } /** * Get the ANT progress monitor. * @return a not null {@link IProgressMonitor} */ protected IProgressMonitor getProgressMonitor() { try { if (getProject() != null) { IProgressMonitor progressMonitor = (IProgressMonitor) getProject().getReferences().get(AntCorePlugin.ECLIPSE_PROGRESS_MONITOR); if (progressMonitor != null) { return progressMonitor; } } } catch (Exception exception_p) { // Ignore } return new NullProgressMonitor(); } /** * @see org.apache.tools.ant.Task#execute() */ @Override public final void execute() throws BuildException { checkAttributes(); try { doExecute(); } catch (Exception exception_p) { if (exception_p instanceof BuildException) { throw (BuildException) exception_p; } throw new BuildException(exception_p); } } /** * All the attribute checks should be performed in this method. * @throws BuildException */ protected void checkAttributes() throws BuildException { // Subclasses may override this method } /** * Performs the task specific code. * @throws Exception */ abstract protected void doExecute() throws Exception; } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/constant Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/constant/ICommonConstants.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3685 Text-content-md5: d271aaf24fc464498ed18ef3cd6b2743 Text-content-sha1: 5b5b07142d45031ce28e2bc37701899236de26fb Content-length: 3730 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.constant; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; /** * @author fournier */ public interface ICommonConstants { /** * Internal Error constant. */ public static final int INTERNAL_ERROR = 0; /** * Empty string constant. */ public static final String EMPTY_STRING = ""; //$NON-NLS-1$ /** * TAB character. */ public static final char TAB_CHARACTER = '\t'; /** * Slash character. */ public static final char SLASH_CHARACTER = '/'; /** * Dot character. */ public static final char DOT_CHARACTER = '.'; /** * Comma character. */ public static final char COMMA_CHARACTER = ','; /** * Semicolon character. */ public static final char SEMICOLON_CHARACTER = ';'; /** * Colon character. */ public static final char COLON_CHARACTER = ':'; /** * White space character. */ public static final char WHITE_SPACE_CHARACTER = ' '; /** * Define the platform resource path */ public static final String PLATFORM_RESOURCE = "platform:/resource/"; //$NON-NLS-1$ /** * End of line character. */ public static final char EOL_CHARACTER = '\n'; /** * Quote character. */ public static final char QUOTE_CHARACTER = '"'; /** * Call method prefix, that is go for the parameters (the real prefix being the method name). */ public static final char PARENTHESIS_OPEN_CHARACTER = '('; /** * Call method suffix, that is, close parameters list, but do not end call. */ public static final char PARENTHESIS_CLOSE_CHARACTER = ')'; /** * Underscore character. */ public static final char UNDERSCORE_CHARACTER = '_'; /** * Http URI prefix. */ public static final String HTTP_PREFIX = "http://"; //$NON-NLS-1$ /** * Ecore file extension. */ public static final String ECORE_FILE_EXTENSION = "ecore"; //$NON-NLS-1$ /** * GenModel file extension. */ public static final String GENMODEL_FILE_EXTENSION = "genmodel"; //$NON-NLS-1$ /** * Ecore diagram file extension. */ public static final String ECORE_DIAGRAM_FILE_EXTENSION = "ecorediag"; //$NON-NLS-1$ /** * Line separator. */ public static final String LINE_SEPARATOR = System.getProperty("line.separator"); //$NON-NLS-1$ /** * Generated folder path. */ public static final String GENERATED_FOLDER_PATH = "generated"; //$NON-NLS-1$ /** * Generated folder IPath. */ public static final IPath GENERATED_FOLDER_IPATH = new Path("generated"); //$NON-NLS-1$ /** * Model folder path. */ public static final String MODEL_FOLDER_PATH = "model"; //$NON-NLS-1$ /** * Model folder IPath. */ public static final IPath MODEL_FOLDER_IPATH = new Path("model"); //$NON-NLS-1$ /** * Templates folder path. */ public static final String TEMPLATES_FOLDER_PATH = "templates"; //$NON-NLS-1$ /** * Templates folder IPath. */ public static final IPath TEMPLATES_FOLDER_IPATH = new Path("templates"); //$NON-NLS-1$ } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/constant/IEMFConstants.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1766 Text-content-md5: 99a02cf4f74fd59d6646229eea7f6663 Text-content-sha1: ce63bfd92d48d36b9cc78570fb86e08fa641bc16 Content-length: 1811 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.constant; /** * Define constants related to EMF constants used in plugin.xml. * @author Guillaume Brocard */ public interface IEMFConstants { /** * Emf generated package extension-point package child genmodel attribute. */ static final String GENERATED_PACKAGE_EXTENSION_POINT_ATT_GEN_MODEL = "genModel"; //$NON-NLS-1$ /** * Emf generated package extension-point package child uri attribute. */ static final String GENERATED_PACKAGE_EXTENSION_POINT_ATT_URI = "uri"; //$NON-NLS-1$ /** * Emf generated package extension-point package child. */ static final String GENERATED_PACKAGE_EXTENSION_POINT_CHILD = "package"; //$NON-NLS-1$ /** * Emf generated package extension point plug-in id. */ static final String GENERATED_PACKAGE_EXTENSION_POINT_PLUGIN_ID = "org.eclipse.emf.ecore"; //$NON-NLS-1$ /** * Emf generated package extension point short id. */ static final String GENERATED_PACKAGE_EXTENSION_POINT_SHORT_ID = "generated_package"; //$NON-NLS-1$ /** * Emf generated package extension-point id. */ static final String GENERATED_PACKAGE_EXTENSION_POINT_FULL_ID = GENERATED_PACKAGE_EXTENSION_POINT_PLUGIN_ID + ICommonConstants.DOT_CHARACTER + GENERATED_PACKAGE_EXTENSION_POINT_SHORT_ID; } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/constant/IPatternConstants.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3359 Text-content-md5: d162f5a1adbfde34f6b6346c8aa146e6 Text-content-sha1: 84709d4160033ce536fcb3600103402bd7333c18 Content-length: 3404 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.constant; /** * @author Guillaume Brocard */ public interface IPatternConstants { /** * Pattern plug-in id. */ public static final String PATTERN_PLUGIN_ID = "org.eclipse.egf.pattern"; //$NON-NLS-1$ /** * Pattern extension point id, excluding plug-in id. */ public static final String PATTERN_EXTENSION_POINT_ID = "pattern"; //$NON-NLS-1$ /** * Pattern extension point full id, including plug-in id. */ public static final String PATTERN_EXTENSION_POINT_FULL_ID = PATTERN_PLUGIN_ID + ICommonConstants.DOT_CHARACTER + PATTERN_EXTENSION_POINT_ID; /** * Pattern extension point child type. */ public static final String PATTERN_EXTENSION_POINT_CHILD_TYPE = "patternExtType"; //$NON-NLS-1$ /** * Pattern extension containing plug-in id. */ public static final String PATTERN_EXTENSION_CONTAINING_PLUGIN_ID = "pluginId"; //$NON-NLS-1$ /** * Pattern extension containing factory component name. */ public static final String PATTERN_EXTENSION_CONTAINING_FC_NAME = "fcName"; //$NON-NLS-1$ /** * Pattern extension read from the workspace or from the target platform.
* Key for a boolean value.
* True means that the extension has been loaded from the workspace, false from the target platform. */ public static final String PATTERN_EXTENSION_FROM_WORKSPACE = "fromWorkspace"; //$NON-NLS-1$ /** * Workspace project containing the pattern being described.
* Key for an IProject value. */ public static final String PATTERN_EXTENSION_WORKSPACE_PROJECT = "wsProject"; //$NON-NLS-1$ /** * Pattern extension point child 'library'. */ public static final String PATTERN_EXTENSION_POINT_CHILD_LIBRARY = "library"; //$NON-NLS-1$ /** * Pattern extension point child 'pattern'. */ public static final String PATTERN_EXTENSION_POINT_CHILD_PATTERN = "pattern"; //$NON-NLS-1$ /** * Library production orchestration attribute name as defined by the pattern extension point. */ public static final String LIBRARY_PRODUCTION_ORCHESTRATION_ATTRIBUTE_NAME = "productionOrchestration"; //$NON-NLS-1$ /** * Library runtime orchestration attribute name as defined by the pattern extension point. */ public static final String LIBRARY_RUNTIME_ORCHESTRATION_ATTRIBUTE_NAME = "runtimeOrchestration"; //$NON-NLS-1$ /** * Pattern model attribute name as defined by the pattern extension point. */ public static final String PATTERN_MODEL_ATTRIBUTE_NAME = "model"; //$NON-NLS-1$ /** * Library/Pattern separator in a library/pattern id. */ public static final char LIBRARY_PATTERN_ID_SEPARATOR = '/'; /** * Java source file extension. */ public static final String JAVA_SOURCE_FILE_EXTENSION = "java"; //$NON-NLS-1$ } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/constant/IPatternTemplateConstants.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2087 Text-content-md5: 6d7c612da8bc17ebde266afc2c9f63f8 Text-content-sha1: 36bce5a1e27e4e95fa9871d3cf22dbea041a693a Content-length: 2132 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.constant; /** * @author Guillaume Brocard */ public interface IPatternTemplateConstants { /** * Pattern plug-in id. */ static final String PATTERN_PLUGIN_ID = "org.eclipse.egf.pattern"; //$NON-NLS-1$ /** * Pattern Template extension point id. */ static final String PATTERN_TEMPLATE_EXTENSION_POINT_ID = "patternTemplate"; //$NON-NLS-1$ /** * Generated Pattern extension point full id. */ static final String PATTERN_TEMPLATE_EXTENSION_POINT_FULL_ID = PATTERN_PLUGIN_ID + ICommonConstants.DOT_CHARACTER + PATTERN_TEMPLATE_EXTENSION_POINT_ID; /** * Pattern extension point child type. */ public static final String PATTERN_TEMPLATE_EXTENSION_POINT_CHILD_TYPE = "patternTemplateExtType"; //$NON-NLS-1$ /** * Generated Pattern extension point child generatedPattern. */ static final String PATTERN_TEMPLATE_EXTENSION_POINT_CHILD_PATTERN_TEMPLATE = PATTERN_TEMPLATE_EXTENSION_POINT_ID; /** * Define a constant for the class attribute. */ static final String PATTERN_TEMPLATE_ATT_CLASS = "class"; //$NON-NLS-1$ /** * Define a constant for the type attribute. */ static final String PATTERN_TEMPLATE_ATT_TYPE = "type"; //$NON-NLS-1$ /** * Define a constant for the path attribute. */ static final String PATTERN_TEMPLATE_ATT_PATH = "path"; //$NON-NLS-1$ } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/descriptor Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/descriptor/GenericDescriptor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2709 Text-content-md5: 8f5c354192eea3bc6e3207ae7686f650 Text-content-sha1: 5da7f206d1adfe866df663254e1b5df012fd08d5 Content-length: 2754 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.descriptor; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Generic implementation of the {@link IDescriptor} object. * @author Guillaume Brocard */ public class GenericDescriptor implements IDescriptor { /** * Properties container. */ private Map _properties; /** * Children descriptors. */ private List _children; /** * Parent descriptor. */ private IDescriptor _parent; /** * Constructor. */ public GenericDescriptor() { _properties = new HashMap(0); _children = new ArrayList(0); } /** * @see org.eclipse.egf.common.descriptor.IDescriptor#getValue(java.lang.String) */ public Object getValue(String propertyName_p) { return _properties.get(propertyName_p); } /** * Set the specified value for the given property name in this descriptor. * @param propertyName_p * @param value_p */ public void setValue(String propertyName_p, Object value_p) { _properties.put(propertyName_p, value_p); } /** * @see org.eclipse.egf.common.descriptor.IDescriptor#getChildren() */ public List getChildren() { return _children; } /** * Add all given children. * @param descriptors_p */ public void addChildren(List descriptors_p) { // Declare through addChild, so as to set parent link properly. for (IDescriptor descriptor : descriptors_p) { addChild(descriptor); } } /** * Add a child descriptor. * @param descriptor_p */ public void addChild(IDescriptor descriptor_p) { _children.add(descriptor_p); // Set parent reference. if (descriptor_p instanceof GenericDescriptor) { ((GenericDescriptor) descriptor_p).setParent(this); } } /** * @see org.eclipse.egf.common.descriptor.IDescriptor#getParent() */ public IDescriptor getParent() { return _parent; } /** * Set parent descriptor. * @param parent_p the parent to set */ public void setParent(IDescriptor parent_p) { _parent = parent_p; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/descriptor/IDescriptor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1277 Text-content-md5: 614cdf70e7eeb2e33d0a5bb5838f8592 Text-content-sha1: 58560bc6bce2a36ad2dadfdff8cb7d6ac1e739ee Content-length: 1322 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.descriptor; import java.util.List; /** * Base interface to implement a model object descriptor.
* Each model object property can be get through {@link #getValue(String)} method. * @author Guillaume Brocard */ public interface IDescriptor { /** * Return the value set for the specified property name. * @param propertyName_p the property name must be unique. * @return the object value or null if not found. */ public Object getValue(String propertyName_p); /** * Get parent descriptor, if it was set by the reading algorithm. * @return null if this information is not available, or if it has none. */ public IDescriptor getParent(); /** * Get children descriptors, if any. * @return */ public List getChildren(); } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/descriptor/pattern Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/descriptor/pattern/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/descriptor/pattern/helper/IPatternDescriptorHandler.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1333 Text-content-md5: 5a1b1d312e5cdc042ee4a1bee80226bd Text-content-sha1: 61a5d0cdb0484a787c5f2987f81b041a92433c5c Content-length: 1378 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.descriptor.pattern.helper; import org.eclipse.egf.common.descriptor.IDescriptor; /** * Pattern descriptor handler while parsing using the pattern descriptor strategy. * @author Guillaume Brocard */ public interface IPatternDescriptorHandler { /** * Handle a library descriptor. * @param descriptor_p * @param parentLibraryId_p The full id of the library. */ public void handleLibraryDescriptor(IDescriptor descriptor_p, String parentLibraryId_p); /** * Handle a pattern descriptor. * @param descriptor_p * @param patternFullId_p The pattern full id. */ public void handlePatternDescriptor(IDescriptor descriptor_p, String patternFullId_p); /** * Handle a descriptor that is neither a library nor a pattern one. * @param descriptor_p */ public void handleDescriptor(IDescriptor descriptor_p); } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/descriptor/pattern/helper/PatternDescriptorStrategy.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 5804 Text-content-md5: 9f8f95947e48fb2ef86ae26c3d9a381e Text-content-sha1: 3c3ca13c591831baae047c45b7aa1f8924009ab9 Content-length: 5849 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.descriptor.pattern.helper; import java.util.List; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.constant.IPatternConstants; import org.eclipse.egf.common.descriptor.GenericDescriptor; import org.eclipse.egf.common.descriptor.IDescriptor; import org.eclipse.egf.common.helper.ExtensionPointHelper; /** * Pattern descriptor various strategies implementation. * @author Guillaume Brocard */ public class PatternDescriptorStrategy { /** * Iterate through descriptors starting from given parent one. * @param handler_p * @param descriptor_p */ public void iterateThroughPatternExtensionDescriptor(IPatternDescriptorHandler handler_p, IDescriptor descriptor_p) { // Preconditions. if (handler_p == null || descriptor_p == null) { return; } // Handle pattern extension descriptor. handlePatternExtensionDescriptor(handler_p, descriptor_p, null); } /** * Handler descriptor for a pattern extension (extension point patternExtension). * @param handler_p * @param descriptor_p * @param idPrefix_p */ protected void handlePatternExtensionDescriptor( IPatternDescriptorHandler handler_p, IDescriptor descriptor_p, String idPrefix_p ) { // Get descriptor type... Object descriptorType = descriptor_p.getValue(IPatternConstants.PATTERN_EXTENSION_POINT_CHILD_TYPE); // ... children... List children = descriptor_p.getChildren(); // ... and id. String currentId = (String) descriptor_p.getValue(ExtensionPointHelper.ATT_ID); StringBuilder idPrefix = new StringBuilder(); // Library case. if (IPatternConstants.PATTERN_EXTENSION_POINT_CHILD_LIBRARY.equals(descriptorType)) { if (idPrefix_p == null || idPrefix_p.trim().length() == 0) { idPrefix.append(currentId); } else { idPrefix .append(idPrefix_p) .append(IPatternConstants.LIBRARY_PATTERN_ID_SEPARATOR) .append(currentId); } handler_p.handleLibraryDescriptor(descriptor_p, idPrefix.toString()); } else if (IPatternConstants.PATTERN_EXTENSION_POINT_CHILD_PATTERN.equals(descriptorType)) { // Pattern case. children = null; idPrefix .append(idPrefix_p) .append(IPatternConstants.LIBRARY_PATTERN_ID_SEPARATOR) .append(currentId); handler_p.handlePatternDescriptor(descriptor_p, idPrefix.toString()); } else { // Unknown case. handler_p.handleDescriptor(descriptor_p); } // Should search be stopped for current branch ? if (children != null && stopSearch(descriptor_p)) { children = null; } // Go for the children. if (children != null) { for (IDescriptor descriptor : children) { handlePatternExtensionDescriptor(handler_p, descriptor, idPrefix.toString()); } } } /** * Should search be stopped for potential children of given descriptor ? * @param parentDescriptor_p * @return true if search should be interrupted, false if it should continue. * Default implementation does return false, that is, search is never interrupted for given branch. */ protected boolean stopSearch(IDescriptor parentDescriptor_p) { return false; } /** * Handle root descriptor content by retaining only root libraries. * @param rootDescriptor_p * @param childContainer_p */ public static void retainRootOnly(GenericDescriptor rootDescriptor_p, IDescriptor childContainer_p) { // Precondition. if (childContainer_p == null) { return; } // This descriptor is not a root library one, since it does not have any type. if (childContainer_p.getValue(IPatternConstants.PATTERN_EXTENSION_POINT_CHILD_TYPE) == null) { List children = childContainer_p.getChildren(); // Iterate through container children. for (IDescriptor descriptor : children) { retainRootOnly(rootDescriptor_p, descriptor); } } else { // First adding value descriptor reached, add it to root descriptor. rootDescriptor_p.addChild(childContainer_p); } } /** * Get full id for given library/pattern descriptor. * @param descriptor_p * @return */ public static String getDescriptorFullId(IDescriptor descriptor_p) { String result = null; // Precondition. if (descriptor_p == null) { return result; } // Initialize result to empty string. result = ICommonConstants.EMPTY_STRING; // Let takes into account the whole description chain. IDescriptor currentParent = descriptor_p; while (currentParent != null) { String parentId = (String) currentParent.getValue(ExtensionPointHelper.ATT_ID); if (parentId != null && parentId.trim().length() > 0) { if (result.length() > 0) { result = new StringBuilder(parentId) .append(IPatternConstants.LIBRARY_PATTERN_ID_SEPARATOR) .append(result) .toString(); } else { // Do not add library/pattern separator for trailing id. result = parentId; } } currentParent = currentParent.getParent(); } return result; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/generator Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/generator/EmfProjectGenerator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 6179 Text-content-md5: cc98cd06af26eb0423230bd56577222a Text-content-sha1: 31edfe6035b72a78918b9b3a96441da38a6896f7 Content-length: 6224 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.generator; import static org.eclipse.egf.common.constant.ICommonConstants.EMPTY_STRING; import static org.eclipse.egf.common.constant.ICommonConstants.TAB_CHARACTER; import java.util.Map; import org.apache.log4j.Logger; import org.eclipse.egf.common.internal.generator.emf.CustomizedGenerator; import org.eclipse.emf.codegen.ecore.generator.Generator; import org.eclipse.emf.codegen.ecore.generator.GeneratorAdapterFactory; import org.eclipse.emf.codegen.ecore.genmodel.GenModel; import org.eclipse.emf.codegen.merge.java.JControlModel; import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.common.util.Monitor; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants; /** * Helps to deal with EMF project generation. * @author Guillaume Brocard */ public class EmfProjectGenerator { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(EmfProjectGenerator.class.getPackage().getName()); /** * Code generator. */ private Generator _generator; /** * Generator adapter factory. */ private GeneratorAdapterFactory _generatorAdapterFactory; /** * Project type. */ private EmfProjectType _projectType; /** * Constructor. * @param generatorAdapterFactory_p * @param projectType_p */ public EmfProjectGenerator(GeneratorAdapterFactory generatorAdapterFactory_p, EmfProjectType projectType_p) { _generatorAdapterFactory = generatorAdapterFactory_p; _projectType = projectType_p; } /** * Initialize the genModel * @param genModel_p * @return false if an error occurs; false otherwise. */ protected boolean initialize(GenModel genModel_p) { // Initialize given genmodel. genModel_p.reconcile(); genModel_p.setCanGenerate(true); boolean result = validate(genModel_p); // Check Preconditions if (!result) { return result; } // Initialize the code _generator. _generator = new CustomizedGenerator(_generatorAdapterFactory); _generator.setInput(genModel_p); JControlModel jControlModel = _generator.getJControlModel(); // Handle code formatting if (genModel_p.isCodeFormatting()) { jControlModel.setLeadingTabReplacement(null); jControlModel.setConvertToStandardBraceStyle(false); } else { Map options = JavaCore.getOptions(); String tabSize = (String) options.get(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE); String braceStyle = (String) options.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION); String tabCharacter = (String) options.get(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR); if (JavaCore.TAB.equals(tabCharacter)) { jControlModel.setLeadingTabReplacement(String.valueOf(TAB_CHARACTER)); } else { StringBuffer spaces = new StringBuffer(EMPTY_STRING); for (int i = Integer.parseInt(tabSize); i > 0; --i) { spaces.append(EMPTY_STRING); } jControlModel.setLeadingTabReplacement(spaces.toString()); } jControlModel.setConvertToStandardBraceStyle(DefaultCodeFormatterConstants.END_OF_LINE.equals(braceStyle)); } return result; } /** * Generate required project type for given genModel. * @param monitor_p * @param genModel_p */ public boolean generate(Monitor monitor_p, GenModel genModel_p) { // Is the generation possible ? String projectTypeValue = _projectType.getValue(); boolean isCorrect = initialize(genModel_p) && _generator.canGenerate(genModel_p, projectTypeValue); if (isCorrect) { Diagnostic diagnostic = _generator.generate(genModel_p, projectTypeValue, null, monitor_p); isCorrect = handleDiagnostic(diagnostic, "Java Code generation failed for: " + genModel_p.toString()); //$NON-NLS-1$ } return isCorrect; } /** * Validate given genModel. * @param genModel_p */ protected boolean validate(GenModel genModel_p) { boolean result = true; // TODO Stephane: revoir en juillet le post titr� "EcoreImporterWizard can use invalid genModel ?" sur le forum EMF. // genModel_p.setValidateModel(true); // Diagnostic diagnostic = genModel_p.diagnose(); // StringBuffer loggerMessage = new StringBuffer("GenModel is invalid to generate java code:"); //$NON-NLS-1$ // loggerMessage.append(genModel_p.toString()); // result = handleDiagnostic(diagnostic, loggerMessage.toString()); return result; } /** * Handle a diagnostic. * @param diagnostic_p * @param message_p the displayed message if an error occurs. * @return false if an error occurs; true otherwise. */ protected boolean handleDiagnostic(Diagnostic diagnostic_p, String message_p) { boolean result = true; if (Diagnostic.OK != diagnostic_p.getSeverity()) { StringBuffer loggerMessage = new StringBuffer("AbstractGenerator.handleDiagnostic(..) _ "); //$NON-NLS-1$ loggerMessage.append(message_p); loggerMessage.append(' '); loggerMessage.append(diagnostic_p.getMessage()); for (Diagnostic diagnostic : diagnostic_p.getChildren()) { handleDiagnostic(diagnostic, message_p); } Throwable exception = diagnostic_p.getException(); if (null != exception) { loggerMessage.append(exception.getMessage()); __logger.fatal(loggerMessage.toString(), exception); } else { __logger.fatal(loggerMessage.toString()); } result = false; } return result; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/generator/EmfProjectType.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1967 Text-content-md5: 34e60c7837d9019d8fcc32f09abd4e78 Text-content-sha1: e499175c6b0af2ae8e1657ac7a88be79c8e7fbeb Content-length: 2012 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.generator; import org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter; /** * @author Guillaume Brocard */ public enum EmfProjectType { /** * The project type constant representing a model project.
* This is the string "org.eclipse.emf.codegen.ecore.genmodel.generator.ModelProject". */ MODEL_PROJECT_TYPE(GenBaseGeneratorAdapter.MODEL_PROJECT_TYPE), /** * The project type constant representing an edit project.
* This is the string "org.eclipse.emf.codegen.ecore.genmodel.generator.EditProject". */ EDIT_PROJECT_TYPE(GenBaseGeneratorAdapter.EDIT_PROJECT_TYPE), /** * The project type constant representing an editor project.
* This is the string "org.eclipse.emf.codegen.ecore.genmodel.generator.EditorProject". */ EDITOR_PROJECT_TYPE(GenBaseGeneratorAdapter.EDITOR_PROJECT_TYPE), /** * The project type constant representing a tests project.
* This is the string "org.eclipse.emf.codegen.ecore.genmodel.generator.TestsProject". */ TESTS_PROJECT_TYPE(GenBaseGeneratorAdapter.TESTS_PROJECT_TYPE); /** * Value defined by the enumeration. */ private String _value; /** * Constructor. * @param description_p * @param id_p */ private EmfProjectType(String value_p) { _value = value_p; } /** * Return the value for the current enumeration instance. * @return */ public String getValue() { return _value; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/generator/IEgfGeneratorConstants.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1170 Text-content-md5: 28470eca82d7bf1ed6651575ed412db9 Text-content-sha1: 929e3d365aa737fe1fe50365366545d4a556a5eb Content-length: 1215 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.generator; /** * @author fournier */ public interface IEgfGeneratorConstants { /** * Define source folder where model API are produced. */ public static final String SRC_FOLDER = "src"; //$NON-NLS-1$ /** * A path to a file that should exist in every hosting project. */ public static final String PROJECT_ROOT_FILE = "/META-INF/MANIFEST.MF"; //$NON-NLS-1$ /** * Generated util Java packages prefix. */ public static final String GENERATED_UTIL_JAVA_PACKAGE_SUFFIX = ".util"; //$NON-NLS-1$ /** * Generated implementation Java packages prefix. */ public static final String GENERATED_IMPL_JAVA_PACKAGE_SUFFIX = ".impl"; //$NON-NLS-1$ } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/BundleHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2306 Text-content-md5: 5165a216a8d5fe9c314c506c5e5f840b Text-content-sha1: 89174ae28dc4ff47c626fef5e8c56db63e3b1765 Content-length: 2351 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; import org.osgi.framework.Bundle; /** * This helper provides high-level services to deal with class loading. * @author Xavier Maysonnave */ public class BundleHelper { /** * Instantiate given fully qualified class name using given bundle. * @param fullyQualifiedClassName_p the class name with its package name (dot separated syntax). * @param bundle_p which can load given class name. * @return an instance of given class name or null if instantiation failed. */ public static Object instantiate(String fullyQualifiedClassName_p, Bundle bundle_p) { Object result = null; // Precondition. if (bundle_p == null) { return result; } try { // Try loading a class according to the class name. Class class_ = loadClass(fullyQualifiedClassName_p, bundle_p); // Try instantiating an object of loaded class. if (null != class_) { result = class_.newInstance(); } } catch (Throwable exception_p) { // Failed silently. } return result; } /** * Load given fully qualified class name using given bundle. * @param fullyQualifiedClassName_p the class name with its package name (dot separated syntax). * @param bundle_p bundle which can load given class name. * @return loaded Class according to given class name or null if loading failed. */ public static Class loadClass(String fullyQualifiedClassName_p, Bundle bundle_p) { Class class_ = null; // Precondition. if (bundle_p == null) { return class_; } try { // Try loading a class according to the class name. class_ = bundle_p.loadClass(fullyQualifiedClassName_p); } catch (Throwable exception_p) { // Failed silently. } return class_; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/ClassLoadingHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2345 Text-content-md5: d92e358115be186da3b7276dce99db15 Text-content-sha1: 4270ced489ef49ac280ac3e06b24438dd695579f Content-length: 2390 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; /** * This helper provides high-level services to deal with class loading. * @author fournier */ public class ClassLoadingHelper { /** * Instantiate given fully qualified class name using given class loader. * @param fullyQualifiedClassName_p the class name with its package name (dot separated syntax). * @param classLoader_p class loader which can load given class name. * @return an instance of given class name or null if instantiation failed. */ public static Object instantiate(String fullyQualifiedClassName_p, ClassLoader classLoader_p) { Object result = null; // Precondition. if (classLoader_p == null) { return result; } try { // Try loading a class according to the class name. Class class_ = loadClass(fullyQualifiedClassName_p, classLoader_p); // Try instantiating an object of loaded class. if (null != class_) { result = class_.newInstance(); } } catch (Throwable exception_p) { // Failed silently. } return result; } /** * Load given fully qualified class name using given class loader. * @param fullyQualifiedClassName_p the class name with its package name (dot separated syntax). * @param classLoader_p class loader which can load given class name. * @return loaded Class according to given class name or null if loading failed. */ public static Class loadClass(String fullyQualifiedClassName_p, ClassLoader classLoader_p) { Class class_ = null; // Precondition. if (classLoader_p == null) { return class_; } try { // Try loading a class according to the class name. class_ = classLoader_p.loadClass(fullyQualifiedClassName_p); } catch (Throwable exception_p) { // Failed silently. } return class_; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/EcoreHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 10710 Text-content-md5: 5f4654b4cb81c499b2b04d7d7080904d Text-content-sha1: 2be767a3b8464c6773f62d0f51726df0715cdcde Content-length: 10755 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.helper; import java.util.Collection; import java.util.Iterator; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.egf.common.constant.IEMFConstants; import org.eclipse.emf.codegen.ecore.genmodel.GenModel; import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; import org.eclipse.emf.ecore.EAnnotation; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; import org.eclipse.emf.ecore.ENamedElement; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.util.EcoreUtil; /** * Ecore helper that enhances the {@link EcoreUtil} class. * @author Guillaume Brocard */ public class EcoreHelper { /** * Returns true if eObject1_p and eObject2_p are through {@link EcoreUtil#equals(Object)}.
* If not, an ultimate check is performed for {@link EClassifier} and {@link EAnnotation}.
* For {@link EClassifier}, classifier names and parent package name-space URIs are tested.
* For {@link EPackage}, name-space URIs are tested.
* For {@link EAnnotation}, annotation sources are tested. * @param eObject1_p * @param eObject2_p * @param compareWholeStructure_p Should both objects be compared as tree roots ? true if so.
* This comparison takes significantly more time than the other one. * @return true means equals. */ public static boolean equals(EObject eObject1_p, EObject eObject2_p, boolean compareWholeStructure_p) { boolean result = compareWholeStructure_p && EcoreUtil.equals(eObject1_p, eObject2_p); // If meta-models for given eObjects are not generated, the EcoreUtil.equals() method fails. // Give an ultimate chance to get the right result. if (!result) { if ((eObject1_p instanceof EPackage) && (eObject2_p instanceof EPackage)) { // Try to check packages based on name-space URIs. result = ((EPackage) eObject1_p).getNsURI().equals(((EPackage) eObject2_p).getNsURI()); } else if ((eObject1_p instanceof ENamedElement) && (eObject2_p instanceof ENamedElement)) { // Try to check the named element names and the container values. ENamedElement eObject1 = (ENamedElement) eObject1_p; ENamedElement eObject2 = (ENamedElement) eObject2_p; if (eObject1.getName().equals(eObject2.getName())) { // If names are equals, check also containers. EObject eObject1Container = eObject1.eContainer(); EObject eObject2Container = eObject2.eContainer(); result = equals(eObject1Container, eObject2Container, compareWholeStructure_p); } } else if ((eObject1_p instanceof EAnnotation) && (eObject2_p instanceof EAnnotation)) { // Try to check annotation sources. EAnnotation eAnnotation1 = (EAnnotation) eObject1_p; EAnnotation eAnnotation2 = (EAnnotation) eObject2_p; result = eAnnotation1.getSource().equals(eAnnotation2.getSource()); } } return result; } /** * Compare both objects for equality.
* Equivalent to calling {@link #equals(EObject, EObject, boolean)} with boolean value set to true. * @param eObject1_p * @param eObject2_p * @return */ public static boolean equals(EObject eObject1_p, EObject eObject2_p) { return equals(eObject1_p, eObject2_p, true); } /** * Get static ecore package from serialized one.
* That implies that the corresponding ecore model has been generated once. * @param serializedPackage_p * @return null if no generated package could be found. */ public static EPackage getStaticPackage(EPackage serializedPackage_p) { EPackage staticPackageInstance = null; // Get the equivalent from the Global EPackage registry. Object staticPackage = EPackage.Registry.INSTANCE.get(serializedPackage_p.getNsURI()); if (null != staticPackage) { if (staticPackage instanceof EPackage) { staticPackageInstance = (EPackage) staticPackage; } else if (staticPackage instanceof EPackage.Descriptor) { staticPackageInstance = ((EPackage.Descriptor) staticPackage).getEPackage(); } } return staticPackageInstance; } /** * Get static class from serialized one. * @param serializedClass_p * @return null if static class could not be found. */ public static EClass getStaticClass(EClass serializedClass_p) { return getStaticClass(getStaticPackage(getRootPackage(serializedClass_p.getEPackage())), serializedClass_p); } /** * Get static class from given containing static package and given serialized form. * @param staticPackage_p * @param serializedClass_p * @return null if no corresponding static class could be found. */ private static EClass getStaticClass(EPackage staticPackage_p, EClass serializedClass_p) { EClass result = null; // Search for classifiers. for (Iterator classifiers = staticPackage_p.getEClassifiers().iterator(); classifiers.hasNext() && (null == result);) { EClassifier classifier = classifiers.next(); if (equals(classifier, serializedClass_p)) { result = (EClass) classifier; } } // Search in sub-packages. if (null == result) { for (Iterator subpackages = staticPackage_p.getESubpackages().iterator(); subpackages.hasNext() && (null == result);) { result = getStaticClass(subpackages.next(), serializedClass_p); } } return result; } /** * Get root package for given one.
* Root package being the eldest parent package. * @param package_p * @return */ public static EPackage getRootPackage(EPackage package_p) { EPackage result = null; EPackage rootPackage = package_p; while (null != rootPackage) { result = rootPackage; rootPackage = result.getESuperPackage(); } return result; } /** * Get root package for specified element.
* Root package being the eldest parent package. * @param element_p * @return */ public static EPackage getRootPackage(ENamedElement element_p) { EPackage ownerPackage = getContainingPackage(element_p); // Precondition. if (null == ownerPackage) { return null; } return EcoreHelper.getRootPackage(ownerPackage); } /** * Get containing package for specified element. * @param element_p * @return */ public static EPackage getContainingPackage(ENamedElement element_p) { EPackage ownerPackage = null; // Precondition. if (null == element_p) { return ownerPackage; } // Get owner package of specified element. if (element_p instanceof EClassifier) { ownerPackage = ((EClassifier) element_p).getEPackage(); } else { ownerPackage = ((EClassifier) element_p.eContainer()).getEPackage(); } return ownerPackage; } /** * Get generated package Java name for given package. * @param genModelRelativePath_p * @param package_p * @return */ public static String getImportedPackageName(EPackage package_p) { String result = null; // Load generation model. GenModel genModel = loadGenModel(package_p); // Precondition. if (null == genModel) { return result; } // Filter to genPackages. Collection genPackages = genModel.getAllGenPackagesWithClassifiers(); for (GenPackage genPackage : genPackages) { // Found corresponding genPackage, get its Java interface name. if (equals(package_p, genPackage.getEcorePackage(), false)) { result = genPackage.getQualifiedPackageName(); break; } } return result; } /** * Get the generation model for specified element. * @param element_p * @return null if no generation model found for specified element.
* That means the plug-in that hosts the specified element is not installed or 'generated_package' extension is missing. */ public static GenModel loadGenModel(EPackage package_p) { GenModel result = null; // Precondition. if (null == package_p) { return result; } EPackage rootPackage = getRootPackage(package_p); String rootPackageNsUri = rootPackage.getNsURI(); IConfigurationElement configurationElement = ExtensionPointHelper.getConfigurationElement(IEMFConstants.GENERATED_PACKAGE_EXTENSION_POINT_PLUGIN_ID, IEMFConstants.GENERATED_PACKAGE_EXTENSION_POINT_SHORT_ID, IEMFConstants.GENERATED_PACKAGE_EXTENSION_POINT_ATT_URI, rootPackageNsUri); // Could not find the extension in target platform. if (null == configurationElement) { return result; } // Load root package generation model. IPath genModelRelativePath = new Path(configurationElement.getContributor().getName()); genModelRelativePath = genModelRelativePath.append(configurationElement.getAttribute(IEMFConstants.GENERATED_PACKAGE_EXTENSION_POINT_ATT_GEN_MODEL)); ResourceSet resourceSet = new ResourceSetImpl(); Resource resource = resourceSet.getResource(FileHelper.getFileFullUri(genModelRelativePath.toString()), true); if (null != resource) { result = (GenModel) resource.getContents().get(0); } return result; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/ExtensionPointHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 11982 Text-content-md5: 2a4e7d0d08af7e52384db725b7305103 Text-content-sha1: 2619e09b091db05f331f9ef1488e69d1257ad230 Content-length: 12027 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ /** * */ package org.eclipse.egf.common.helper; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.Platform; import org.eclipse.egf.common.constant.ICommonConstants; /** * @author fournier */ public class ExtensionPointHelper { /** * Log4j reference logger. */ private static final Logger _logger = Logger.getLogger(ExtensionPointHelper.class.getPackage().getName()); /** * Define a constant for the attribute named class in ExtensionPoint tab of plug-in xml files. */ public static final String ATT_CLASS = "class"; //$NON-NLS-1$ /** * Define a constant for the attribute named name in ExtensionPoint tab of plug-in xml files. */ public static final String ATT_NAME = "name"; //$NON-NLS-1$ /** * Define a constant for the attribute named id in ExtensionPoint tab of plug-in xml files. */ public static final String ATT_ID = "id"; //$NON-NLS-1$ /** * Define a constant for the element named description in ExtensionPoint tab of plug-in xml files. */ public static final String ELEMENT_DESCRIPTION = "description"; //$NON-NLS-1$ /** * Get the configuration elements for a specified plugin id & extension point id. * @param pluginId_p the identifier of the plugin. * @param extensionPointId_p the simple identifier of the extension point. * @return an array of {@link IConfigurationElement} or an empty array if the extension point does not exist,has no extensions configured, or none of the * extensions contain configuration elements. */ public static IConfigurationElement[] getConfigurationElements(String pluginId_p, String extensionPointId_p) { IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry(); IConfigurationElement[] configElements = extensionRegistry.getConfigurationElementsFor(pluginId_p, extensionPointId_p); return configElements; } /** * Get the extensions for identified plug-in extension point coming from an identified plug-in. * @param pluginId_p The identifier of the plug-in declaring the extension point. * @param extensionPointId_p The extension point id. * @param extensionDeclaringPluginId_p The identifier of the plug-in potentially declaring extensions for this extension point. * @return an array of {@link IConfigurationElement}. Empty if no extension could be found with given criteria. */ public static IConfigurationElement[] getConfigurationElements(String pluginId_p, String extensionPointId_p, String extensionDeclaringPluginId_p) { List resultingElements = new ArrayList(0); IConfigurationElement[] allElements = getConfigurationElements(pluginId_p, extensionPointId_p); for (IConfigurationElement configurationElement : allElements) { if (isDeclaredBy(configurationElement, extensionDeclaringPluginId_p)) { resultingElements.add(configurationElement); } } return resultingElements.toArray(new IConfigurationElement[resultingElements.size()]); } /** * Is given configuration element declared by identified plug-in ?
* That is, is it read from the plugin.xml coming with identified plug-in ? * @param configurationElement_p * @param pluginId_p * @return */ public static boolean isDeclaredBy(IConfigurationElement configurationElement_p, String pluginId_p) { return (null != configurationElement_p) && (null != pluginId_p) && pluginId_p.equals(configurationElement_p.getContributor().getName()); } /** * Get the configuration element for specified parameters. * @param pluginId_p the identifier of the plugin. * @param extensionId_p the short identifier of the extension point. * @param idValue_p the value of the 'id' attribute declared into the extension point. * @return a {@link IConfigurationElement} instance or null if the specified extension is not found. */ public static IConfigurationElement getConfigurationElement(String pluginId_p, String extensionId_p, String idValue_p) { return getConfigurationElement(pluginId_p, extensionId_p, ATT_ID, idValue_p); } /** * Get the configuration element for specified parameters. * @param pluginId_p the identifier of the plugin. * @param extensionId_p the short identifier of the extension point. * @param attName_p the attribute name. * @param attValue_p the attribute value. * @return a {@link IConfigurationElement} instance or null if the specified extension is not found. */ public static IConfigurationElement getConfigurationElement(String pluginId_p, String extensionId_p, String attName_p, String attValue_p) { IConfigurationElement[] configElements = getConfigurationElements(pluginId_p, extensionId_p); IConfigurationElement result = null; for (int i = 0; i < configElements.length && (null == result); i++) { IConfigurationElement configElement = configElements[i]; // Check if attribute value is the expected one. if (hasValue(configElement, attName_p, attValue_p)) { result = configElement; } } return result; } /** * Is given configuration element containing an attribute named attName_p with value set to given one ? * @param configurationElement_p * @param attName_p * @param attValue_p * @return */ public static boolean hasValue(IConfigurationElement configurationElement_p, String attName_p, String attValue_p) { boolean result = false; // Preconditions. if ((null == configurationElement_p) || (null == attName_p) || (null == attValue_p)) { return result; } // Get attribute value for the configuration element. String attValue = configurationElement_p.getAttribute(attName_p); // Compare it with given one. result = attValue_p.equals(attValue); return result; } /** * Return the value of the "id" attribute for given configuration element. * @param configurationElement_p * @return null if given element is null, or has no attribute named "id". */ public static String getId(IConfigurationElement configurationElement_p) { String result = null; if (null != configurationElement_p) { result = configurationElement_p.getAttribute(ATT_ID); } return result; } /** * Create an executable extension for a specified plugin's id & extension point id, matching an attribute's value.
* The extension point must define an attribute 'class'. * @param pluginId_p the identifier of the plugin. * @param extensionPointId_p the simple identifier of the extension point. * @param attributeId_p the identifier of the attribute used into the comparison. If null, matching is not performed. * @param attributeValue_p the value of the attribute used for comparison matching. If null, matching is not performed. * @return an instance of the interface regarding the attribute 'class' * @see ATT_CLASS */ public static Object createExecutableExtension(String pluginId_p, String extensionPointId_p, String attributeId_p, String attributeValue_p) { Object object = null; IConfigurationElement[] configElements = getConfigurationElements(pluginId_p, extensionPointId_p); if (configElements.length == 0) { StringBuffer loggerMessage = new StringBuffer("ExtensionPointHelper.createExecutableExtension(..) _ "); //$NON-NLS-1$ loggerMessage.append("extensionPointId:"); //$NON-NLS-1$ loggerMessage.append(extensionPointId_p); loggerMessage.append(", must exist!"); //$NON-NLS-1$ _logger.error(loggerMessage.toString()); } else { boolean isMatchingImperative = false; // Test if matching is imperative if (null != attributeId_p && null != attributeValue_p) { isMatchingImperative = true; } // Loop over configuration until object is created. for (int i = 0; i < configElements.length && (null == object); i++) { IConfigurationElement configElement = configElements[i]; boolean isExecutableExtensionCreatable = true; if (isMatchingImperative) { // Perform matching on the attribute defined by an identifier String attributeValue = configElement.getAttribute(attributeId_p); // If different, do not instantiate the object. if (!attributeValue_p.equals(attributeValue)) { isExecutableExtensionCreatable = false; } } if (isExecutableExtensionCreatable) { object = createInstance(configElement, ATT_CLASS); } } } return object; } /** * Create an executable extension for given parameters.
* The extension point must define an attribute 'class'. * @param pluginId_p the plug-in that exposes the extension point. * @param extensionPointId_p the extension point containing an attribute 'class' to instantiate. * @param idValue_p the extension id value (attribute 'id') that matches the extension point estensionPointId_p.
* If null, comparison is not performed. * @return an Object instance if instantiation is successful; null otherwise. */ public static Object createExecutableExtension(String pluginId_p, String extensionPointId_p, String idValue_p) { return createExecutableExtension(pluginId_p, extensionPointId_p, ATT_ID, idValue_p); } /** * Create an object instance for specified parameters. * @param configurationElement_p a configuration element loaded from an extension point. * @param attributeName_p the attribute that hosts the java type. * @return an Object instance if instantiation is successful; null otherwise. */ public static Object createInstance(IConfigurationElement configurationElement_p, String attributeName_p) { Object typeInstance = null; try { typeInstance = configurationElement_p.createExecutableExtension(attributeName_p); } catch (CoreException exception_p) { StringBuffer loggerMessage = new StringBuffer("ExtensionPointHelper.createTypeInstance(..) _ "); //$NON-NLS-1$ loggerMessage.append("Unable to instantiate class type:"); //$NON-NLS-1$ loggerMessage.append(configurationElement_p.getAttribute(attributeName_p)); _logger.error(loggerMessage.toString(), exception_p); } return typeInstance; } /** * Return the fully qualified extension-point id from given parameters. * @param hostingPluginId_p the id of the plug-in that defines the extension-point. * @param extensionPointId_p the short id of the extension-point. * @return the fully qualified extension-point id : 'plug-in id.'extension-point id'. */ public static String getExtensionPointId(String hostingPluginId_p, String extensionPointId_p) { StringBuilder result = new StringBuilder(hostingPluginId_p); result.append(ICommonConstants.DOT_CHARACTER).append(extensionPointId_p); return result.toString(); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/FileHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 21354 Text-content-md5: 3832a2f92a0b14b795f054a47f7f2beb Text-content-sha1: be2fc7dd5e00ec85707db6ae74e673729a2023fa Content-length: 21399 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import org.apache.log4j.Logger; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.pde.core.plugin.IPluginModelBase; import org.eclipse.pde.core.plugin.PluginRegistry; import org.eclipse.emf.common.util.URI; import org.eclipse.egf.common.activator.CommonActivator; import org.eclipse.egf.common.constant.ICommonConstants; /** * @author brocard */ public class FileHelper { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(FileHelper.class.getPackage().getName()); /** * Get file full url from relative one. * @param fileRelativePath_p File path relative to workspace.
* It must start with pluginId. It is also recommended that both plug-in id and plug-in project names are the same.
* As a convenience, the full path will refer to the plug-in id.
* Example : com.thalesgroup.mde.mdsofa/model/example.ecore is a path relative to the workspace that refers to the * com.thalesgroup.mde.mdsofa plug-in, having a model/example.ecore file in its project.
* In Eclipse resource system, such a path is considered as an absolute one against the workspace root.
* It's still referred to as a relative path, since the returned URL is absolute in the file system. * @return */ public static URL getFileFullUrl(String fileRelativePath_p) { // Get the URI for given relative path. return getFileFullUrl(getFileFullUri(fileRelativePath_p)); } /** * Get file full url from its full uri.
* See {@link #getFileFullUri(String)} method. * @param fileFullUri_p * @return */ public static URL getFileFullUrl(URI fileFullUri_p) { URL result = null; // Resolve url from returned uri. try { result = FileLocator.resolve(new URL(fileFullUri_p.toString())); } catch (Exception exception_p) { StringBuilder loggerMessage = new StringBuilder("FileHelper.getFileFullPath(..) _ "); //$NON-NLS-1$ loggerMessage.append("Unable to resolve the url for ").append(fileFullUri_p.toString()); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } return result; } /** * Get a file uri from relative one which is not resolved against the eclipse platform.
* The returned uri starts with either 'platform:/plug-in/' or 'platform:/resource/'. * @param fileRelativePath_p File path relative to workspace.
* It must start with pluginId. It is also recommended that both plug-in id and plug-in project names are the same.
* As a convenience, the full path will refer to the plug-in id.
* Example : com.thalesgroup.mde.mdsofa/model/example.ecore is a path relative to the workspace that refers to the * com.thalesgroup.mde.mdsofa plug-in, having a model/example.ecore file in its project. * @return an {@link URI} not resolved against the eclipse platform.
*/ public static URI getFileFullUri(String fileRelativePath_p) { URI fileUri = null; // Precondition. if (fileRelativePath_p == null) { return fileUri; } // Find plug-in model base from relative first segment. IPath path = new Path(fileRelativePath_p); IPluginModelBase modelBase = PluginRegistry.findModel(path.segment(0)); // Get underlying resource. IResource resource = modelBase != null ? modelBase.getUnderlyingResource() : null; if (resource != null) { // Resource found, the file is in the workspace. fileUri = URI.createPlatformResourceURI(fileRelativePath_p, true); } else { // Resource not found, the file is deployed elsewhere. fileUri = URI.createPlatformPluginURI(fileRelativePath_p, true); } return fileUri; } /** * Convert package name to a correct java folder path. * @param packageName_p * @return */ public static String convertPackageNameToFolderPath(String packageName_p) { return packageName_p != null ? packageName_p.replace(ICommonConstants.DOT_CHARACTER, ICommonConstants.SLASH_CHARACTER) : null; } /** * Read given input stream as an array of bytes. * @param inputStream_p * @return a not null array. */ public static byte[] readFile(InputStream inputStream_p) { byte[] data = null; try { data = new byte[inputStream_p.available()]; inputStream_p.read(data); } catch (Exception exception_p) { StringBuilder loggerMessage = new StringBuilder("FileHelper.readFile(..) _ "); //$NON-NLS-1$ loggerMessage.append("Failed to read the input stream ! "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString()); } finally { if (inputStream_p != null) { try { inputStream_p.close(); } catch (IOException exception_p) { StringBuilder loggerMessage = new StringBuilder("FileHelper.readFile(..) _ "); //$NON-NLS-1$ loggerMessage.append("Failed to close input stream ! "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } } } // Ensure to return a not null array. return (null == data) ? new byte[0] : data; } /** * Read file as a string. * @param filePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @return If an error occurred {@link ICommonConstants#EMPTY_STRING} is returned. */ public static String readFile(String filePath_p) { byte[] rawContent = readRawFile(filePath_p); return rawContent.length == 0 ? ICommonConstants.EMPTY_STRING : new String(rawContent); } /** * Get file as a stream. * @param filePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @return If an error occurred null is returned. */ public static InputStream readFileAsStream(String filePath_p) { InputStream result = null; // Get input stream and copy its content to resulting string. URL fileURL = getFileFullUrl(filePath_p); try { result = fileURL.openStream(); } catch (Exception exception_p) { StringBuilder loggerMessage = new StringBuilder("FileHelper.readFileAsStream(..) _ "); //$NON-NLS-1$ loggerMessage.append("Failed to load ").append(filePath_p); //$NON-NLS-1$ __logger.warn(loggerMessage.toString()); } return result; } /** * Read file as an array of bytes. * @param filePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @return a not null array. */ public static byte[] readRawFile(String filePath_p) { byte[] result = null; // Get stream from file. InputStream inputStream = readFileAsStream(filePath_p); // Ensure the input stream got from the file path is not null. if (inputStream != null) { result = readFile(inputStream); } return (null == result) ? new byte[0] : result; } /** * Copy given source file content in given target file. * @param sourceFileRelativePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @param targetFileRelativePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. */ public static void copyFile(String sourceFileRelativePath_p, String targetFileRelativePath_p) { writeFile(targetFileRelativePath_p, true, readRawFile(sourceFileRelativePath_p)); } /** * Write given string contents at specified path. * @param filePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @param ensureFolders_p Make sure all parent folders exist by creating all necessary ones. * @param contents_p Contents that should be written to pointed file. * @return */ public static boolean writeFile(String filePath_p, boolean ensureFolders_p, String contents_p) { return writeFile(filePath_p, ensureFolders_p, contents_p.getBytes()); } /** * Write given contents of bytes at specified path. * @param filePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @param ensureFolders_p Make sure all parent folders exist by creating all necessary ones. * @param contents_p Contents that should be written to pointed file. * @return */ public static boolean writeFile(String filePath_p, boolean ensureFolders_p, byte[] contents_p) { boolean result = false; FileChannel channel = null; try { // Get file full path from its relative one. String fileFullPath = getFileFullUrl(filePath_p).getFile(); // Should path be enforced ? if (ensureFolders_p) { ensurePathAvailability(fileFullPath); } // Make sure file is writable. boolean fileWritable = makeFileWritable(filePath_p); // Write content. if (fileWritable) { // Try and open the resulting file. channel = new FileOutputStream(fileFullPath).getChannel(); // Write contents. channel.write(ByteBuffer.wrap(contents_p)); result = true; } } catch (Exception exception_p) { result = false; StringBuilder loggerMessage = new StringBuilder("FileHelper.writeFile(..) _ "); //$NON-NLS-1$ loggerMessage.append("Failed to open channel in write mode for "); //$NON-NLS-1$ loggerMessage.append(filePath_p).append(" !"); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } finally { if (channel != null && channel.isOpen()) { try { // Close the channel. channel.close(); } catch (IOException exception_p) { result = false; StringBuilder loggerMessage = new StringBuilder("FileHelper.writeFile(..) _ "); //$NON-NLS-1$ loggerMessage.append("Failed to close opened channel in write mode ! "); //$NON-NLS-1$ loggerMessage.append(filePath_p).append(" may no longer be usable."); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } } } return result; } /** * Rename file from source file relative path to destination relative path. * @param sourceFileRelativePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @param destinationFileRelativePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @return */ public static boolean renameFile(String sourceFileRelativePath_p, String destinationFileRelativePath_p) { // Preconditions. if (sourceFileRelativePath_p == null || destinationFileRelativePath_p == null) { return false; } IFile sourceFile = getPlatformFile(sourceFileRelativePath_p); IPath destinationPath = getPlatformFile(destinationFileRelativePath_p).getFullPath(); return moveResource(sourceFile, destinationPath); } /** * Rename folder from source folder relative path to destination relative path. * @param sourceFolderRelativePath_p Folder path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @param destinationFolderRelativePath_p Folder path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @return */ public static boolean renameFolder(String sourceFolderRelativePath_p, String destinationFolderRelativePath_p) { // Preconditions. if (sourceFolderRelativePath_p == null || destinationFolderRelativePath_p == null) { return false; } IFolder sourceFolder = getPlatformFolder(sourceFolderRelativePath_p); IPath destinationPath = getPlatformFolder(destinationFolderRelativePath_p).getFullPath(); return moveResource(sourceFolder, destinationPath); } /** * Move resource to given destination path. * @param resource_p * @param destinationPath_p * @return true if move occurred with no exception, false otherwise. */ public static boolean moveResource(IResource resource_p, IPath destinationPath_p) { boolean result = false; try { resource_p.move(destinationPath_p, true, new NullProgressMonitor()); result = true; } catch (Exception e_p) { StringBuilder loggerMessage = new StringBuilder("FileHelper.moveResource(..) _ "); //$NON-NLS-1$ loggerMessage.append("Could not move ").append(resource_p.getFullPath()); //$NON-NLS-1$ loggerMessage.append(" to ").append(destinationPath_p); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), e_p); } return result; } /** * Is given file relative path pointing to an existing file ? * @param fileRelativePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @return */ public static boolean exists(String fileRelativePath_p) { IFile file = getPlatformFile(fileRelativePath_p); return file != null ? file.exists() : false; } /** * Make sure that given path is safe to use, ie ensure that all parent folders exist. * @param fileFullPath_p */ public static void ensurePathAvailability(String fileFullPath_p) { // Get rid of file extension and file name, for this has no meaning in the parent folders chain. IPath parentFolderPath = new Path(fileFullPath_p).removeFileExtension().removeLastSegments(1); // If it still makes sense to create a folder, go for it. if (parentFolderPath.isEmpty() == false) { File parentFolder = parentFolderPath.toFile(); // Create the chain of parent folders. parentFolder.mkdirs(); } } /** * Delete a workspace Resource. * Optionally delete its parent folder if they are empty. * Root folder is never deleted. * @param javaProject_p * @param resourcePath_p */ public static boolean deleteResource(IFolder root_p, IResource resource_p, boolean deleteParent_p) { if (resource_p == null) { return false; } // Delete found resource member if (FileHelper.deleteResource(resource_p) == false) { return false; } // Delete children container if they are empty if (root_p != null && deleteParent_p) { IContainer container = resource_p.getParent(); while (container.equals(root_p) == false) { try { IResource[] members = container.members(); if (members == null || members.length == 0) { if (FileHelper.deleteResource(container)) { container = container.getParent(); } else { break; } } else { break; } } catch(CoreException ce) { break; } } } return true; } /** * Delete given relative resource in the workspace. * @param fileRelativePath_p */ public static boolean deleteFile(String fileRelativePath_p) { if (fileRelativePath_p == null || fileRelativePath_p.trim().length() == 0) { return false; } return deleteResource(getPlatformFile(fileRelativePath_p)); } /** * Delete given relative folder in the workspace. * @param workspaceRelativePath_p * @return true if successfully deleted, false otherwise. */ public static boolean deleteFolder(String folderRelativePath_p) { if (folderRelativePath_p == null || folderRelativePath_p.trim().length() == 0) { return false; } return deleteResource(getPlatformFolder(folderRelativePath_p)); } /** * Delete given relative resource in the workspace. * @param resource_p */ public static boolean deleteResource(IResource resource_p) { if (resource_p == null || resource_p.exists() == false) { return false; } try { resource_p.delete(true, new NullProgressMonitor()); return true; } catch (CoreException exception_p) { StringBuilder loggerMessage = new StringBuilder("FileHelper.deleteFile(..) _ "); //$NON-NLS-1$ loggerMessage.append("Unable to delete file:").append(resource_p.getFullPath()); //$NON-NLS-1$ __logger.warn(loggerMessage.toString()); } return false; } /** * Get platform IResource as an {@link IResource} from its relative IPath. * @param path_p IPath relative to workspace.
* @return */ public static IResource getPlatformResource(IPath path_p) { // Precondition. if (path_p == null) { return null; } return ResourcesPlugin.getWorkspace().getRoot().findMember(path_p); } /** * Get platform file as an {@link IResource} from its relative path. * @param fileRelativePath_p File path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @return */ public static IFile getPlatformFile(String fileRelativePath_p) { // Precondition. if (fileRelativePath_p == null) { return null; } return ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fileRelativePath_p)); } /** * Get platform folder as an {@link IResource} from its relative path. * @param folderRelativePath_p Folder path relative to the plug-in, plug-in id included.
* See {@link #getFileFullUrl(String)} documentation. * @return */ public static IFolder getPlatformFolder(String folderRelativePath_p) { // Precondition. if (folderRelativePath_p == null) { return null; } return ResourcesPlugin.getWorkspace().getRoot().getFolder(new Path(folderRelativePath_p)); } /** * Returns the file extension portion for given file path,
* or null if there is none.
*

* The file extension portion is defined as the string
* following the last period (".") character in the last segment.
* If there is no period in the last segment, the path has no
* file extension portion. If the last segment ends in a period,
* the file extension portion is the empty string.
*

* @param filePath_p * @return the file extension or null */ public static String getFileExtension(String filePath_p) { // Precondition. if (filePath_p == null) { return null; } return new Path(filePath_p).getFileExtension(); } /** * Make file writable.
* That is, make sure file is modifiable after this call.
* The user may be asked to take a decision if the file is held by the configuration management system.
* Nevertheless, if no UI is reachable, then the system is urged into making the file writable. * @param filePath_p File path relative to the plug-in, plug-in id included. * See {@link #getFileFullUrl(String)} documentation. * @return false if file could not be made writable or user denied rights to (in case of a configuration management). * true if it does not exist (then it is writable) or permission was granted (either by the system or by the user). */ public static boolean makeFileWritable(String filePath_p) { // Get user helper. IUserEnforcedHelper helper = CommonActivator.getDefault().getUserEnforcedHelper(); // Delegate to it. IStatus status = helper.makeFileWritable(getPlatformFile(filePath_p)); return status.isOK(); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/IDGeneratorHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1728 Text-content-md5: 1664f4d7dcab74f1ee6f0014b64b8510 Text-content-sha1: 6fe627885ebc3e8e48699fbc2f2fa9871d02833b Content-length: 1773 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; import org.eclipse.egf.common.constant.ICommonConstants; /** * Helper to generate object unique id. * @author fournier */ public class IDGeneratorHelper { /** * Id suffix. */ private volatile static int __idSuffix = 0; /** * Generate unique id for given object. * @param object_p * @return the not null generated unique id. */ public static String generateUID(Object object_p) { String prefix = null; // If given object is not null, use it to create a prefix. if (object_p != null) { // Create prefix. prefix = object_p.getClass().getSimpleName(); } return generatePrefixUID(prefix); } /** * Generate unique id using given prefix. * @param prefix_p * @return the not null generated unique id. */ public static String generatePrefixUID(String prefix_p) { String prefix = prefix_p; if (prefix == null) { prefix = ICommonConstants.EMPTY_STRING; } return new StringBuilder(StringHelper.replaceNonWordCharactersWithDot(prefix)) .append(ICommonConstants.DOT_CHARACTER) .append(System.currentTimeMillis()) .append(ICommonConstants.DOT_CHARACTER) .append(__idSuffix++) .toString(); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/IUserEnforcedHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1844 Text-content-md5: f4c38c721e61a4dbdc5ee92ee1f69b81 Text-content-sha1: ac6f77f69861a63d3259e8f4f8a78da6356a04af Content-length: 1889 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IStatus; /** * User enforced helper.
* Handles user interactions when automatic ones are no longer sufficient.
* Allows the user to be warned about specific changes (sometimes through a user confirmation request). * @author Guillaume Brocard */ public interface IUserEnforcedHelper { /** * Make given file writable.
* Such an implementation deals with the UI issues spawn by the act of asking the user (if needed).
* That includes executing the enforcement in the UI thread. * @param file_p The file that should be made writable. * @return {@link Status#OK_STATUS} if file was made writable or doesn't exist. {@link Status#CANCEL_STATUS} otherwise. */ public IStatus makeFileWritable(IFile file_p); /** * Make given file writable.
* The caller is responsible for making sure it is executed in the UI thread.
* Otherwise an invalid thread access exception might be thrown by the platform. * @param file_p The file that should be made writable. * @param display_p Used to ask the user permission, if needed. * @return {@link Status#OK_STATUS} if file was made writable or doesn't exist. {@link Status#CANCEL_STATUS} otherwise. */ public IStatus makeFileWritable(IFile file_p, Object display_p); } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/JavaHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 5076 Text-content-md5: 8d27834792f2090f5d1805feac6efd23 Text-content-sha1: f15af94a0eeca92ba08baf86cc32f9cedb7b1387 Content-length: 5121 K 13 svn:mime-type V 10 text/plain PROPS-END /** * * * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation * * * */ package org.eclipse.egf.common.helper; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaModelException; public class JavaHelper { /** * Locate in source folders and Delete a java class file. * Optionally delete its parent folder if they are empty. * Source folder is never deleted. * @param javaProject_p * @param resourcePath_p */ public static boolean deleteJavaClass(IJavaProject javaProject_p, IPath resourcePath_p, boolean deleteParent_p) { if (javaProject_p == null || resourcePath_p == null) { return false; } // Retrieve the java source folder who contain the resource path IFolder sourceFolder = JavaHelper.getJavaSourceFolder( javaProject_p, resourcePath_p ); if (sourceFolder == null) { return false; } // Locate the resource path member IResource resource = sourceFolder.findMember(resourcePath_p); if (resource == null || resource instanceof IFile == false) { return false; } // Delete found resource member if (FileHelper.deleteResource(resource) == false) { return false; } // Delete children container if they are empty if (deleteParent_p) { IContainer container = (IContainer) sourceFolder.findMember(resourcePath_p.removeLastSegments(1)); while (container.equals(sourceFolder) == false) { try { IResource[] members = container.members(); if (members == null || members.length == 0) { if (FileHelper.deleteResource(container)) { container = container.getParent(); } else { break; } } else { break; } } catch(CoreException ce) { break; } } } return true; } /** * Get a java source IFile within a IJavaProject.
* @param javaProject_p * @param name_p * @return null if it could not be found. */ public static IFile getJavaSourceFile(IJavaProject javaProject_p, IPath path_p) { if (javaProject_p == null || path_p == null) { return null; } // Lookup in source folders try { for (IClasspathEntry classpathEntry : javaProject_p.getRawClasspath()) { if (classpathEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IResource sourceFolder = ResourcesPlugin.getWorkspace().getRoot().findMember(classpathEntry.getPath()); if (sourceFolder == null || sourceFolder instanceof IFolder == false) { continue; } // Check if a resource exist in this folder IResource resource = ((IFolder) sourceFolder).findMember(path_p); if (resource != null && resource instanceof IFile) { // We got it, we return the current java source folder return (IFile) resource; } } } } catch (JavaModelException jme) { // Just ignore } return null; } /** * Get a java source folder who contain an IPath.
* @param javaProject_p * @param name_p * @return null if it could not be found. */ public static IFolder getJavaSourceFolder(IJavaProject javaProject_p, IPath path_p) { if (javaProject_p == null || path_p == null) { return null; } // Lookup in source folders try { for (IClasspathEntry classpathEntry : javaProject_p.getRawClasspath()) { if (classpathEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IResource sourceFolder = ResourcesPlugin.getWorkspace().getRoot().findMember(classpathEntry.getPath()); if (sourceFolder == null || sourceFolder instanceof IFolder == false) { continue; } // Check if a resource exist in this folder IResource resource = ((IFolder) sourceFolder).findMember(path_p); if (resource != null) { // We got it, we return the current java source folder return (IFolder) sourceFolder; } } } } catch (JavaModelException jme) { // Just ignore } return null; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/MathHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2953 Text-content-md5: 2b9cb65140b5ca04fe045ff51b717b8c Text-content-sha1: c6efcc7c2fc11588d7d8b66d23dcf1381be5b112 Content-length: 2998 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; /** * Extra mathematical functions. * * @author brocard */ public class MathHelper { public final static long SECOND = 1000; public final static long MINUTE = SECOND * 60; public final static long HOUR = MINUTE * 60; public final static long DAY = HOUR * 24; public static String formatAsDuration(long duration) { long temp = 0; StringBuilder formatted = new StringBuilder(); // Days temp = duration / DAY; if (temp > 0) { formatted .append(temp) .append(" day"); //$NON-NLS-1$ if (temp > 1) { formatted.append("s"); //$NON-NLS-1$ } duration = duration - (temp * DAY); } // Hours temp = duration / HOUR; if (temp > 0) { if (formatted.length() > 0) { formatted.append(" "); //$NON-NLS-1$ } formatted .append(temp) .append(" hr"); //$NON-NLS-1$ if (temp > 1) { formatted.append("s"); //$NON-NLS-1$ } duration = duration - (temp * HOUR); } // Minutes temp = duration / MINUTE; if (temp > 0) { if (formatted.length() > 0) { formatted.append(" "); //$NON-NLS-1$ } formatted .append(temp) .append(" min"); //$NON-NLS-1$ if (temp > 1) { formatted.append("s"); //$NON-NLS-1$ } duration = duration - (temp * MINUTE); } // Seconds if (duration >= SECOND) { temp = duration / SECOND; if (temp > 0) { if (formatted.length() > 0) { formatted.append(" "); //$NON-NLS-1$ } formatted .append(temp) .append(" sec"); //$NON-NLS-1$ if (temp > 1) { formatted.append("s"); //$NON-NLS-1$ } duration = duration - (temp * SECOND); } } // Millisecond if (duration > 0) { if (formatted.length() > 0) { formatted.append(" "); //$NON-NLS-1$ } formatted .append(duration) .append(" ms"); //$NON-NLS-1$ } return formatted.toString(); } /** * Multiply given integer and float value, and return result as an int. * @param sourceValue_p * @param multiplier_p * @return */ public static int multiply(int sourceValue_p, float multiplier_p) { return (int) (sourceValue_p * multiplier_p); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/MiscHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 999 Text-content-md5: dde0efae26f3b16444e48ad71575cd94 Text-content-sha1: 83e4d178507817c63657b87bbe694d453cf8c52e Content-length: 1044 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; import java.util.ArrayList; import java.util.List; /** * Miscellaneous helper. * @author Guillaume Brocard */ public class MiscHelper { /** * Returns a list backed by the specified array. * @param elements_p the array by which the list will be backed. * @return a not null list. */ public static List asList(T[] elements_p) { ArrayList result = new ArrayList(elements_p.length); for (T element : elements_p) { result.add(element); } return result; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/PatternHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3656 Text-content-md5: 3cf472c62aa2cafb5b2703e47b72b3b3 Text-content-sha1: 2d751721f67158715e58b15e64b8ab0985f024a6 Content-length: 3701 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; import org.eclipse.core.runtime.Path; import org.eclipse.egf.common.constant.IPatternConstants; import org.eclipse.egf.common.misc.Couple; /** * Helper for pattern handling. * @author Guillaume Brocard */ public class PatternHelper { /** * Pattern id prefix. */ private static final String PATTERN_ID_PREFIX = "Pattern"; //$NON-NLS-1$ /** * Get library/pattern full id from parent library full id and pattern/library id local to this library.
* @param parentLibraryFullId_p The parent library full id.
For instance root/library1/libraryEmf/subLibrary1, or null if none. * @param patternLocalId_p The pattern or library id local to the parent full id.
For instance patternClass, or library2/library3. * @return null if local id is null, local id if parent library full id is null.
For instance root/library1/libraryEmf/subLibrary1/patternClass, or root/library1/libraryEmf/subLibrary1/library2/library3. */ public static String getFullId(String parentLibraryFullId_p, String localId_p) { String result = null; if (localId_p == null) { return result; } if (parentLibraryFullId_p != null) { result = new StringBuilder(parentLibraryFullId_p) .append(IPatternConstants.LIBRARY_PATTERN_ID_SEPARATOR) .append(localId_p) .toString(); } else { result = localId_p; } return result; } /** * Create a new pattern unique id. * @return */ public static String generatePatternUID() { return IDGeneratorHelper.generatePrefixUID(PATTERN_ID_PREFIX); } /** * Get parent library id and local pattern/library id from given full id. * @param fullId_p a pattern or library full id.
For instance root/library1/libraryEmf/subLibrary1 or root/library1/libraryEmf/subLibrary1/patternClass. * @return null if given id is null.
* For instance Couple(root/library1/libraryEmf, subLibrary1) or Couple(root/library1/libraryEmf/subLibrary1, patternClass). */ public static Couple deresolveId(String fullId_p) { if (fullId_p == null) { return null; } String parentLibraryFullId = StringHelper.substringBefore( IPatternConstants.LIBRARY_PATTERN_ID_SEPARATOR, fullId_p ); String localId = StringHelper.substringAfter( IPatternConstants.LIBRARY_PATTERN_ID_SEPARATOR, fullId_p ); return new Couple(parentLibraryFullId, localId); } /** * Get root library id from given full id. * @param fullId_p a pattern or library full id.
For instance root/library1/libraryEmf/subLibrary1 or root/library1/libraryEmf/subLibrary1/patternClass. * @return null if given id is null.
* For instance root in case of given entry root/library1/libraryEmf/subLibrary1 or root/library1/libraryEmf/subLibrary1/patternClass. */ public static String getRootLibraryId(String fullId_p) { if (fullId_p == null) { return null; } return new Path(fullId_p).segment(0); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/PatternLibrarySequenceHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2886 Text-content-md5: 42b75a3490a12a13a03c02f52e2f64f8 Text-content-sha1: 98561f26a712f782c370eb30193fd752d38e12a5 Content-length: 2931 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.helper; import java.util.Collections; import java.util.Iterator; import java.util.List; import org.eclipse.egf.common.constant.ICommonConstants; /** * @author Guillaume Brocard */ public class PatternLibrarySequenceHelper { /** * Pattern library sequence separators. */ public static final String SEQUENCE_SEPARATORS = ICommonConstants.EMPTY_STRING + ICommonConstants.WHITE_SPACE_CHARACTER + ICommonConstants.COMMA_CHARACTER; /** * Get full sequence from composing ids. * @param ids_p * @return empty string if provided list is null or empty. */ public static String getFullSequence(List ids_p) { if ((null == ids_p) || ids_p.isEmpty()) { return ICommonConstants.EMPTY_STRING; } StringBuilder result = new StringBuilder(); for (Iterator idIterator = ids_p.iterator(); idIterator.hasNext();) { String id = idIterator.next(); result.append(id); if (idIterator.hasNext()) { result.append(SEQUENCE_SEPARATORS); } } return result.toString(); } /** * Extract sequence ids from sequence serialized form (also called a full sequence). * @param fullSequence_p * @return Empty list if given sequence is null or a singleton list with given full sequence if it is not a valid one. */ public static List extractSequenceIds(String fullSequence_p) { if (null == fullSequence_p) { return Collections.emptyList(); } return MiscHelper.asList(StringHelper.getTokens(fullSequence_p, SEQUENCE_SEPARATORS)); } /** * Remove all given id occurrences in given sequence. * @param fullSequence_p * @param id_p * @return Given sequence if it does not contain any id, or id could not be found, or it is not a valid sequence. */ public static String removeIdFromSequence(String fullSequence_p, String id_p) { // Extract ids. List ids = extractSequenceIds(fullSequence_p); // Precondition. if (ids.isEmpty()) { return fullSequence_p; } // Remove all occurrences of id in the sequence. while (ids.contains(id_p)) { ids.remove(id_p); } // Return reconstructed sequence. return getFullSequence(ids); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/ProjectHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 18671 Text-content-md5: 56453b8a1c6dfbf790046aee2c9333c8 Text-content-sha1: e91d8499d16ea698b74ee2975c11449edc32e527 Content-length: 18716 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.apache.log4j.Logger; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.generator.IEgfGeneratorConstants; import org.eclipse.emf.codegen.ecore.Generator; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.pde.core.plugin.IPluginModelBase; import org.eclipse.pde.core.plugin.PluginRegistry; /** * Workspace projects helper. * @author brocard */ public class ProjectHelper { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(ProjectHelper.class.getPackage().getName()); /** * Required plug-ins class path entry path identifier. */ protected static final String CLASS_PATH_ENTRY_REQUIRED_PLUGINS_PATH_ID = "requiredPlugins"; //$NON-NLS-1$ /** * Project existence status after check.
* The project already exists (including default structure), or it has just been created, or creation process failed.
* Internal purpose only. */ public enum ProjectExistenceStatus { ALREADY_EXISTS, CREATED, CREATION_FAILED } /** * Get project from its name.
* It is assumed that this project name refers to a plug-in.
* If not, the method ResourcesPlugin.getWorkspace().getRoot().getProject(projectName_p) is invoked as result. * @param projectName_p A project name that points to a plug-in in the workspace. * @return */ public static IProject getProject(String projectName_p) { // Precondition. if (projectName_p == null) { return null; } // Get model base from project name. IPluginModelBase modelBase = PluginRegistry.findModel(projectName_p); // Precondition. // Warning : fix for the Eclipse platform bug that consists in having PDE in a weird state // regarding in-development plug-ins from launching platform as deployed ones in current one. if (modelBase == null) { return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName_p); } return getProject(modelBase); } /** * Get the IProject for specified plug-in model. * @param pluginModelBase_p * @return null if the plug-in is not in the workspace. */ public static IProject getProject(IPluginModelBase pluginModelBase_p) { // Precondition. if (pluginModelBase_p == null) { return null; } IResource underlyingResource = pluginModelBase_p.getUnderlyingResource(); if (underlyingResource != null) { // Retrieve project from the model. return underlyingResource.getProject(); } return null; } /** * Can identified project element be converted to a factory component ? * @param elementId_p The chosen project element id. Can either be the project name or the plug-in id. * @return false if no project can be found, or it is not a plug-in, or its id does not match its name. true if it can be converted * to a FC. */ public static boolean canBeConvertedToFC(String elementId_p) { boolean result = false; IProject project = getProject(elementId_p); if (project == null) { StringBuilder loggerMessage = new StringBuilder("ProjectHelper.canBeConvertedToFC(..) _ "); //$NON-NLS-1$ loggerMessage.append("Unable to locate a project with element id ").append(elementId_p); //$NON-NLS-1$ __logger.error(loggerMessage.toString()); } else { IPluginModelBase model = PluginRegistry.findModel(project); if (model != null) { String modelId = model.getPluginBase().getId(); result = project.getName().equals(modelId); if (result == false) { StringBuilder loggerMessage = new StringBuilder("ProjectHelper.canBeConvertedToFC(..) _ "); //$NON-NLS-1$ loggerMessage.append("To convert an exisiting plug-in into a FC, its related project name must be equal to the plug-in id."); //$NON-NLS-1$ __logger.error(loggerMessage.toString()); } } else { StringBuilder loggerMessage = new StringBuilder("ProjectHelper.canBeConvertedToFC(..) _ "); //$NON-NLS-1$ loggerMessage.append("Element ").append(elementId_p).append(" is not a valid plug-in project."); //$NON-NLS-1$ //$NON-NLS-2$ loggerMessage.append("Only plug-in projects can be converted to FCs."); //$NON-NLS-1$ __logger.error(loggerMessage.toString()); } } return result; } /** * Get java project in the workspace from its project name. * @param projectName_p It is assumed given project name points to a plug-in project. If not, use {@link #getJavaProject(IProject)} instead. * @return null if it could not be found. Either the given name is null, or there is no java project in the workspace with this name (maybe then the project * is deployed instead). */ public static IJavaProject getJavaProject(String projectName_p) { return getJavaProject(getProject(projectName_p)); } /** * Get java project from workspace project. * @param project_p * @return null if it could not be found. The given project is not a Java one, or JDT has not been initialized correctly. */ public static IJavaProject getJavaProject(IProject project_p) { IJavaProject result = null; // Precondition. if (project_p == null) { return result; } // Get java project from project. IJavaElement javaElement = (IJavaElement) ((IAdaptable) project_p).getAdapter(IJavaElement.class); // Only JDT UI initializes adapter mechanism. // If this method is called from a non UI application (e.g antRunner) uses the JavaCore API instead. if (javaElement == null) { javaElement = JavaCore.create(project_p); } result = javaElement.getJavaProject(); return result; } /** * Create a new class loader for a java project, son of specified parent class loader. * @param javaProject_p * @param parentClassLoader_p * @return null if one of the parameter is null or no extra dependency was found in the java project * @throws Exception */ public static ClassLoader getClassLoaderFor(IJavaProject javaProject_p, ClassLoader parentClassLoader_p) throws Exception { URLClassLoader result = null; // Preconditions. if (javaProject_p == null || parentClassLoader_p == null) { return result; } // Create the class loader. URL[] classPathEntries = getProjectDependencies(javaProject_p); // No dependency available, it is likely nothing is to be done. // Should an error have happened, it would have been thrown as an exception. if (classPathEntries.length == 0) { return result; } // Use pattern plugin classloader as parent one. result = new URLClassLoader(classPathEntries, parentClassLoader_p); return result; } /** * Get given java project dependencies in terms of compilation.
* The resulting array can be used to feed a specific class loader. * @param javaProject_p * @return An array of URL.
* Not null, but possibly empty. * @throws Exception */ protected static URL[] getProjectDependencies(IJavaProject javaProject_p) throws Exception { // Retrieve its dependencies. IClasspathEntry[] classpathEntries = javaProject_p.getResolvedClasspath(true); List classpathUrls = new ArrayList(classpathEntries.length); // Create urls out of them. for (IClasspathEntry classpathEntry : classpathEntries) { IPath urlPath = classpathEntry.getPath(); switch (classpathEntry.getEntryKind()) { // For source project or projects, look for the output folder... case IClasspathEntry.CPE_SOURCE: case IClasspathEntry.CPE_PROJECT: IJavaProject localProject = ProjectHelper.getJavaProject(urlPath.segment(0)); urlPath = localProject.getProject().getLocation().append(localProject.getOutputLocation().removeFirstSegments(1)); break; // For libraries and installed plug-ins, simply retain the class-path entry path. default: break; } classpathUrls.add(urlPath.toFile().toURI().toURL()); } return classpathUrls.toArray(new URL[classpathUrls.size()]); } /** * Refresh given project in the workspace. * @param project_p * @param monitor_p */ public static void refreshProject(IProject project_p, IProgressMonitor monitor_p) { refreshProject(project_p, IResource.DEPTH_INFINITE, monitor_p); } /** * Refresh a project in the workspace. * @param projectToRefresh_p * @param depth_p * @param monitor_p * @see {@link IResource#refreshLocal(int, IProgressMonitor)} */ public static void refreshProject(IProject projectToRefresh_p, int depth_p, IProgressMonitor monitor_p) { try { projectToRefresh_p.refreshLocal(depth_p, monitor_p); } catch (CoreException exception_p) { StringBuilder loggerMessage = new StringBuilder("ProjectHelper.refreshProject(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } } /** * Create a source folder in given project. * @param sourceFolderName_p the name of the source folder. * @param project_p the hosting project. * @param monitor_p progress monitor. * @return true means the creation is successful. */ public static boolean createSourceFolder(String sourceFolderName_p, IProject project_p, IProgressMonitor monitor_p) { boolean successful = false; // Preconditions if (sourceFolderName_p == null || project_p == null || monitor_p == null) { return successful; } try { // Get the related java project. IJavaProject javaProject = JavaCore.create(project_p); // Get all source entries. IClasspathEntry[] sourceEntries = javaProject.getRawClasspath(); // Add a generated source folder. IPath generatedSourceFolderPath = project_p.getFullPath().append(sourceFolderName_p); createFolder(sourceFolderName_p, project_p, new SubProgressMonitor(monitor_p, 1)); // Create a new source entry for the 'generated' source folder. IClasspathEntry generatedSourceEntry = JavaCore.newSourceEntry(generatedSourceFolderPath); IClasspathEntry[] newEntries = new IClasspathEntry[sourceEntries.length + 1]; // Copy the 'src' source entry. newEntries[0] = sourceEntries[0]; // Add the 'generated' entry. newEntries[1] = generatedSourceEntry; // Copy the remaining entries. System.arraycopy(sourceEntries, 1, newEntries, 2, sourceEntries.length - 1); // Set the new entries on the java project. javaProject.setRawClasspath(newEntries, new SubProgressMonitor(monitor_p, 1)); successful = true; } catch (Exception exception_p) { successful = false; StringBuilder loggerMessage = new StringBuilder("ProjectHelper.createSourceFolder(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } return successful; } /** * Create a folder with given name in given project. * @param folderName_p * @param project_p * @param monitor_p * @return null if creation failed. */ public static IFolder createFolder(String folderName_p, IProject project_p, IProgressMonitor monitor_p) { IFolder folder = project_p.getFolder(folderName_p); // Create the physical resource. if (folder.exists() == false) { // Get parent path. IPath parentPath = new Path(folderName_p); if (parentPath.segmentCount() > 1) { parentPath = parentPath.removeLastSegments(1); // Make sure parent exists first. createFolder(parentPath.toString(), project_p, monitor_p); } // Then try and create given folder. try { folder.create(true, true, monitor_p); } catch (CoreException exception_p) { folder = null; StringBuilder loggerMessage = new StringBuilder("ProjectHelper.createFolder(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } } return folder; } /** * Make sure named project exists.
* If not try and create a new one with given name. * @param projectName_p The expected project name. * @param cleanProject_p true to clean project structure after creation, false otherwise. * @param projectType_p {@link Generator#EMF_EMPTY_PROJECT_STYLE} see other values. * @return {@link ProjectExistenceStatus} value. */ private static ProjectExistenceStatus ensureProjectExists(String projectName_p, boolean cleanProject_p, int projectType_p) { ProjectExistenceStatus result = ProjectExistenceStatus.CREATION_FAILED; // Precondition. if (projectName_p == null) { return result; } IFile file = FileHelper.getPlatformFile(projectName_p + IEgfGeneratorConstants.PROJECT_ROOT_FILE); // Project already exists, stop here. if (file.exists()) { return ProjectExistenceStatus.ALREADY_EXISTS; } // Else, try and create an EMF project. IPath projectLocationPath = new Path(ICommonConstants.SLASH_CHARACTER + projectName_p); IProject resultingProject = Generator.createEMFProject( projectLocationPath.append(ICommonConstants.SLASH_CHARACTER + IEgfGeneratorConstants.SRC_FOLDER), null, new ArrayList(0), new NullProgressMonitor(), projectType_p, Collections.EMPTY_LIST ); if (resultingProject != null && resultingProject.exists()) { result = ProjectExistenceStatus.CREATED; // If project should be cleaned, do it. if (cleanProject_p) { cleanProjectStructure(resultingProject); } } else { result = ProjectExistenceStatus.CREATION_FAILED; } return result; } /** * Clean newly created project structure.
* Remove plug-in dependencies class path container from given project (if applicable).
* Also set nature back to Java one. * @param project_p */ private static void cleanProjectStructure(IProject project_p) { IJavaProject javaProject = getJavaProject(project_p); // Precondition. if (javaProject == null) { return; } // Restore Java nature only. String natureIds[] = new String[] { JavaCore.NATURE_ID }; try { IProjectDescription description = project_p.getDescription(); description.setNatureIds(natureIds); project_p.setDescription(description, new NullProgressMonitor()); } catch (CoreException exception_p1) { StringBuilder loggerMessage = new StringBuilder("ProjectHelper.cleanProjectStructure(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p1); } // Get raw class path. IClasspathEntry[] rawClasspath = null; try { rawClasspath = javaProject.getRawClasspath(); } catch (JavaModelException exception_p) { StringBuilder loggerMessage = new StringBuilder("ProjectHelper.cleanProjectStructure(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } // Iterate over class path elements. if (rawClasspath != null && rawClasspath.length != 0) { List newRawClasspath = new ArrayList(rawClasspath.length); for (IClasspathEntry classpathEntry : rawClasspath) { if (classpathEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) { // Do not retain required plug-ins container. IPath path = classpathEntry.getPath(); if (CLASS_PATH_ENTRY_REQUIRED_PLUGINS_PATH_ID.equals(path.getFileExtension()) == false) { newRawClasspath.add(classpathEntry); } } else { newRawClasspath.add(classpathEntry); } } // Set new raw class path. try { javaProject.setRawClasspath(newRawClasspath.toArray(new IClasspathEntry[newRawClasspath.size()]), new NullProgressMonitor()); } catch (JavaModelException exception_p) { StringBuilder loggerMessage = new StringBuilder("ProjectHelper.cleanProjectStructure(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } } } /** * Make sure named plug-in project exists.
* If not try and create a new one with given name. * @param projectName_p The expected project name. * @return */ public static ProjectExistenceStatus ensurePluginProjectExists(String projectName_p) { return ensureProjectExists(projectName_p, false, Generator.EMF_PLUGIN_PROJECT_STYLE); } /** * Make sure named project exists.
* If not try and create a new one with given name. * @param projectName_p The expected project name. * @return */ public static ProjectExistenceStatus ensureProjectExists(String projectName_p) { return ensureProjectExists(projectName_p, true, Generator.EMF_EMPTY_PROJECT_STYLE); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/StatusHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3592 Text-content-md5: cb234a49d81a5dc77fd4cf6bcaf902e8 Text-content-sha1: 593c71c81d13bf4fe31e9fbdc46b0a86018d7b16 Content-length: 3637 K 13 svn:mime-type V 10 text/plain PROPS-END /** * * * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation * * * */ package org.eclipse.egf.common.helper; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.Status; import org.eclipse.egf.common.activator.CommonActivator; public class StatusHelper { /** * * Utility method for creating status. */ protected static IStatus newStatus(String pluginID, IStatus[] stati, String message, Throwable exception) { if (message == null || message.trim().length() == 0) { throw new IllegalArgumentException(); } return new MultiStatus( pluginID != null && pluginID.trim().length() > 0 ? pluginID : CommonActivator.getDefault().getPluginID(), IStatus.ERROR, stati, message, exception ); } /** * * Utility method for creating status. */ public static IStatus newStatus(String pluginID, int severity, String message, Throwable exception) { String statusMessage = message; if (message == null || message.trim().length() == 0) { if (exception == null) { throw new IllegalArgumentException(); } else if (exception.getMessage() == null) { statusMessage = exception.toString(); } else { statusMessage = exception.getMessage(); } } return new Status( severity, pluginID != null && pluginID.trim().length() > 0 ? pluginID : CommonActivator.getDefault().getPluginID(), severity, statusMessage, exception ); } /** * * Utility method for creating status. */ public static IStatus newStatus(String pluginID, List children, String message, Throwable exception) { List flatStatusCollection = new ArrayList(); Iterator iter = children.iterator(); while (iter.hasNext()) { IStatus currentStatus = iter.next(); Iterator childrenIter = flatten(currentStatus).iterator(); while (childrenIter.hasNext()) { flatStatusCollection.add(childrenIter.next()); } } IStatus[] stati = new IStatus [flatStatusCollection.size()]; flatStatusCollection.toArray(stati); return newStatus(pluginID, stati, message, exception); } /** * Answer a flat collection of the passed status and its recursive children */ protected static List flatten(IStatus aStatus) { List result = new ArrayList(); if (aStatus.isMultiStatus()) { IStatus[] children = aStatus.getChildren(); for (int i = 0; i < children.length; i++) { IStatus currentChild = children[i]; if (currentChild.isMultiStatus()) { Iterator childStatiiEnum = flatten(currentChild).iterator(); while (childStatiiEnum.hasNext()) { result.add(childStatiiEnum.next()); } } else { result.add(currentChild); } } } else { result.add(aStatus); } return result; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/helper/StringHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 8756 Text-content-md5: cf4241a674ffe8c68e37fffe7e703f5a Text-content-sha1: c4c8ead6746b2f2c57d1c15bcfce5e7a0ed3c3e4 Content-length: 8801 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.helper; import java.text.MessageFormat; import java.util.StringTokenizer; import org.eclipse.egf.common.constant.ICommonConstants; /** * String helper. * @author brocard */ public class StringHelper { /** * Non word characters regular expression. */ private static final String REGEXP_NON_WORD_CHARACTERS = "[^a-zA-Z0-9]"; //$NON-NLS-1$ /** * Format given message with given arguments.
* See {@link MessageFormat} for the acceptable form of the given message and the arguments. * @param message_p * @param arguments_p * @return */ public static String formatMessage(String message_p, Object[] arguments_p) { MessageFormat formatter = new MessageFormat(message_p); return formatter.format(arguments_p); } /** * Convert first character of given string to lower case. * @param source_p * @return new String with first character converted. */ public static String toLowerFirst(String source_p) { StringBuffer result = new StringBuffer(source_p); String firstCharacter = source_p.substring(0, 1).toLowerCase(); result.setCharAt(0, firstCharacter.charAt(0)); return result.toString(); } /** * Convert first character of given string to upper case. * @param source_p * @return new String with first character converted. */ public static String toUpperFirst(String source_p) { StringBuffer result = new StringBuffer(source_p); String firstCharacter = source_p.substring(0, 1).toUpperCase(); result.setCharAt(0, firstCharacter.charAt(0)); return result.toString(); } /** * Get tokens from given source string using given separators. * @param source_p * @param separators_p a string of separators to use while searching for tokens. * @return null if source string is null, source string if no token could be found.
* Otherwise return tokenized source string, separators excluded. */ public static String[] getTokens(String source_p, String separators_p) { String[] result = null; // Preconditions. // Do nothing if given source string is null. if (source_p == null || source_p.trim().length() == 0) { return result; } // Return source string if no separator was provided. if (separators_p == null || separators_p.trim().length() == 0) { result = new String[] { source_p }; return result; } // Create a new tokenizer. StringTokenizer tokenizer = new StringTokenizer(source_p, separators_p); // Add its result to the returned array. int tokensCount = tokenizer.countTokens(); if (tokensCount > 0) { result = new String[tokensCount]; for (int i = 0; i < tokensCount; i++) { result[i] = tokenizer.nextToken(); } } else { // Could not find any token, return source string. result = new String[] { source_p }; } return result; } /** * Get the substring from given source string before given separator. * @param separator_p * @param source_p * @return null if source string is null, source string itself if no substring could be found.
* Otherwise return the substring from source string from the beginning to the separator position (separator excluded). */ public static String substringBefore(char separator_p, String source_p) { String result = null; // Precondition. if (source_p == null || source_p.trim().length() == 0) { return result; } // Search for the last index of given separator. int separatorPosition = source_p.lastIndexOf(separator_p); if (separatorPosition >= 0) { result = source_p.substring(0, separatorPosition); } else { // No separator found, return the source itself. result = source_p; } return result; } /** * Get the substring from given source string after given separator. * @param separator_p * @param source_p * @return null if source string is null, source string itself if no substring could be found.
* Otherwise return the substring from the separator position (separator excluded) to the end of source string. */ public static String substringAfter(char separator_p, String source_p) { String result = null; // Precondition. if (source_p == null || source_p.trim().length() == 0) { return result; } // Search for the last index of given separator. int separatorPosition = source_p.lastIndexOf(separator_p); if (separatorPosition >= 0) { result = source_p.substring(separatorPosition + 1); // separator excluded. } else { // No separator found, return the source itself. result = source_p; } return result; } /** * Create http prefixed uri from given one. * @param relativeUri_p * @return */ public static String createHttpUri(String relativeUri_p) { return new StringBuilder(ICommonConstants.HTTP_PREFIX).append(relativeUri_p).toString(); } /** * Returns a new string that is a substring of this string for specified parameters.
* The substring begins at the index of beginningDelimiter_p and extends to the character at index of endingDelimiter_p.
* Delimiters can be included in the returned substring depending on includeDelimiters_p value. * @param beginningDelimiter_p the delimiter used as beginning delimiter. * @param endingDelimiter_p the delimiter used as ending delimiter. * @param content_p the source that the substring is extracted from. * @param includeDelimiters_p true means the delimiters are included in the returned string. * @return null if no substring found for given delimiters. */ public static String substring(String beginningDelimiter_p, String endingDelimiter_p, String content_p, boolean includeDelimiters_p) { String result = null; // Get the index of beginning delimiter. int indexBeginningDelimiter = content_p.indexOf(beginningDelimiter_p); // If the beginning delimiter is found, locates the index of ending delimiter. if (indexBeginningDelimiter >= 0) { int indexEndingDelimiter = content_p.indexOf(endingDelimiter_p, indexBeginningDelimiter); // If the ending delimiter is found, extract the substring. if (indexEndingDelimiter >= 0) { if (includeDelimiters_p) { // Extract the substring including the delimiters, result = content_p.substring(indexBeginningDelimiter, indexEndingDelimiter + endingDelimiter_p.length()); } else { // Extract the substring contained between delimiters result = content_p.substring(indexBeginningDelimiter + beginningDelimiter_p.length(), indexEndingDelimiter); } } } return result; } /** * Replace non word characters with dot characters * @param originalString_p * @return Each non-conforming character in given string is replaced by a dot character. */ public static String replaceNonWordCharactersWithDot(String originalString_p) { return replaceNonWordCharacters( originalString_p, String.valueOf(ICommonConstants.DOT_CHARACTER) ); } /** * Replace non word characters with underscore characters * @param originalString_p * @return Each non-conforming character in given string is replaced by an underscore character. */ public static String replaceNonWordCharactersWithUnderscore(String originalString_p) { return replaceNonWordCharacters( originalString_p, String.valueOf(ICommonConstants.UNDERSCORE_CHARACTER) ); } /** * Replace non word characters with a replacement String * @param originalString_p * @param replacementString_p each non word character is replaced by given string. * @return */ public static String replaceNonWordCharacters(String originalString_p, String replacementString_p) { return originalString_p.replaceAll( REGEXP_NON_WORD_CHARACTERS, replacementString_p != null ? replacementString_p : ICommonConstants.EMPTY_STRING ); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/internal Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/internal/generator Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/internal/generator/emf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/internal/generator/emf/CustomizedGenerator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2274 Text-content-md5: ffe08f24891887091dc31362e5b161ef Text-content-sha1: 15da92b2bf264880b1ac52036c2a0d6c22bc02c7 Content-length: 2319 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.internal.generator.emf; import java.util.ArrayList; import java.util.Collection; import org.eclipse.emf.codegen.ecore.generator.Generator; import org.eclipse.emf.codegen.ecore.generator.GeneratorAdapterFactory; /** * Customized EMF generator. This generator only uses the provided generator adapter factory if any.
* If not provided, extension-point mechanism is used to retrieve all generator adapter factories. * @author Guillaume Brocard */ public class CustomizedGenerator extends Generator { /** * Java generator adapter factory. */ private GeneratorAdapterFactory _generatorAdapterFactory; /** * Constructor. * @param generatorAdapterFactory_p customized generator that overrides EMF default one. */ public CustomizedGenerator(GeneratorAdapterFactory generatorAdapterFactory_p) { _generatorAdapterFactory = generatorAdapterFactory_p; if (null != _generatorAdapterFactory) { _generatorAdapterFactory.setGenerator(this); } } /** * @see org.eclipse.emf.codegen.ecore.generator.Generator#getAdapterFactories(java.lang.Object) */ @Override protected Collection getAdapterFactories(Object object_p) { Collection result = null; // If a customized generator is provided, use this one instead. if (null != _generatorAdapterFactory) { result = new ArrayList(1); result.add(_generatorAdapterFactory); } else { // None is provided, let's use the ones returned by EMF. result = super.getAdapterFactories(object_p); } return result; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/internal/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/internal/helper/DefaultUserHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1372 Text-content-md5: d03ee399035559a366f9631fdf6da60e Text-content-sha1: 73691753e4505d88c732e80f818e3d4fc1c11ae5 Content-length: 1417 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.internal.helper; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.egf.common.helper.IUserEnforcedHelper; /** * A default {@link IUserEnforcedHelper} implementation.
* Leaves files untouched, considering it's always possible to write them. * @author Guillaume Brocard */ public class DefaultUserHelper implements IUserEnforcedHelper { /** * @see org.eclipse.egf.common.helper.IUserEnforcedHelper#makeFileWritable(org.eclipse.core.resources.IFile) */ public IStatus makeFileWritable(IFile file_p) { return Status.OK_STATUS; } /** * @see org.eclipse.egf.common.helper.IUserEnforcedHelper#makeFileWritable(org.eclipse.core.resources.IFile, java.lang.Object) */ public IStatus makeFileWritable(IFile file_p, Object display_p) { return Status.OK_STATUS; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/listener Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/listener/AbstractProjectListener.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 4531 Text-content-md5: bdf06b10495264564896d401f960c6f6 Text-content-sha1: 9e2414df0d2721fdc802a12ca225ca96de3ea62b Content-length: 4576 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.listener; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IWorkspaceRoot; /** * Base class to implement a listener which is notified when projects are added, changed or removed from the workspace. * @author Guillaume Brocard */ public abstract class AbstractProjectListener implements IResourceChangeListener { /** * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent) */ public void resourceChanged(IResourceChangeEvent event_p) { IResourceDelta resourceDelta = event_p.getDelta(); // Precondition. if (null == resourceDelta) { return; } IResource resource = resourceDelta.getResource(); // Select only changes performed on the workspace. if ((IResourceDelta.CHANGED == resourceDelta.getKind()) && (resource instanceof IWorkspaceRoot)) { IResourceDelta[] childrenResourceDeltas = resourceDelta.getAffectedChildren(); // Loop over modified resources within the workspace. for (IResourceDelta currentChildResourceDelta : childrenResourceDeltas) { // Get the modification kind. int kind = currentChildResourceDelta.getKind(); // Get the modified resource. IResource childResource = currentChildResourceDelta.getResource(); // Get from it an IProject. IProject project = getProject(childResource); // If it is a project, interesting in removed or changed operation. if (null != project) { switch (kind) { case IResourceDelta.ADDED: handleProjectAdded(project, currentChildResourceDelta); break; case IResourceDelta.CHANGED: // A change can be a close event. int flags = currentChildResourceDelta.getFlags(); boolean isProjectOpened = project.isOpen(); // Detailed flag must be the OPEN event. if ((IResourceDelta.OPEN == flags)) { if (isProjectOpened) { handleProjectAdded(project, currentChildResourceDelta); } else { handleProjectClosed(project, currentChildResourceDelta); } } else { handleProjectChanged(project, currentChildResourceDelta); } break; case IResourceDelta.REMOVED: handleProjectRemoved(project, currentChildResourceDelta); break; } } } } } /** * Handle project added. * @param project_p * @param resourceDelta_p */ protected abstract void handleProjectAdded(IProject project_p, IResourceDelta resourceDelta_p); /** * Handle project changed. * @param project_p * @param resourceDelta_p */ protected abstract void handleProjectChanged(IProject project_p, IResourceDelta resourceDelta_p); /** * Handle project removed. * @param project_p * @param resourceDelta_p */ protected abstract void handleProjectRemoved(IProject project_p, IResourceDelta resourceDelta_p); /** * Handle project closed. * @param project_p * @param resourceDelta_p */ protected abstract void handleProjectClosed(IProject project_p, IResourceDelta resourceDelta_p); /** * Get the IProject for given resource. * @param resource_p * @return */ protected IProject getProject(IResource resource_p) { IProject result = null; if ((null != resource_p) && (resource_p instanceof IProject)) { result = (IProject) resource_p; } return result; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/listener/DefaultResourceListener.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3648 Text-content-md5: 0deaeb05a799583e5faf1bc3036d951d Text-content-sha1: b074297a8c19d8a636c6fc5846c9b997728bd2c8 Content-length: 3693 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.listener; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.ResourcesPlugin; /** * A default resource change listener that watches changes on a given resource. * @author Guillaume Brocard */ public abstract class DefaultResourceListener implements IResourceChangeListener { /** * Resource that should be watched. */ private IResource _resourceToWatch; /** * Is listener already registered (true) or not (false) ? */ private volatile boolean _alreadyRegistered; /** * Set resource to watch.
* Also register listener, if needed. * @param resource_p */ public void setResourceToWatch(IResource resource_p) { _resourceToWatch = resource_p; if (!_alreadyRegistered) { ResourcesPlugin.getWorkspace().addResourceChangeListener(this); _alreadyRegistered = true; } } /** * Free resources and unregister the listener. */ public void dispose() { _resourceToWatch = null; if (_alreadyRegistered) { ResourcesPlugin.getWorkspace().removeResourceChangeListener(this); _alreadyRegistered = false; } } /** * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent) */ public void resourceChanged(IResourceChangeEvent event_p) { // Watched resource has changed, do something ! if (refersToResource(_resourceToWatch, event_p)) { handleResourceChanged(event_p, _resourceToWatch); } } /** * Handle a change for watched resource. * @param event_p * @param watchedResource_p */ protected abstract void handleResourceChanged(IResourceChangeEvent event_p, IResource watchedResource_p); /** * Does given resource event refer to given resource ? * @param lookedForResource_p * @param event_p * @return */ protected boolean refersToResource(IResource lookedForResource_p, IResourceChangeEvent event_p) { // Precondition. if ((null == lookedForResource_p) || (null == event_p)) { return false; } return refersToResource(lookedForResource_p, event_p.getDelta()); } /** * Does given resource delta refer to given resource ? * @param lookedForResource_p * @param resourceDelta_p * @return */ private boolean refersToResource(IResource lookedForResource_p, IResourceDelta resourceDelta_p) { IResource resource = resourceDelta_p.getResource(); boolean result = lookedForResource_p.equals(resource); if (!result) { // Iterate over children. IResourceDelta[] children = resourceDelta_p.getAffectedChildren(); for (int i = 0; (i < children.length) && !result; i++) { result = refersToResource(lookedForResource_p, children[i]); } } return result; } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/misc Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/misc/Couple.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2138 Text-content-md5: c4115e7538be1c761116cf3bb9a3be4f Text-content-sha1: 1df78846bb46e071ef0c2ce9b691686e4562b94b Content-length: 2183 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.misc; import org.eclipse.egf.common.constant.ICommonConstants; /** * Key, value object. * @author brocard */ public class Couple implements Cloneable { // Key reference. private K _key; // Value reference. private V _value; /** * Constructor. * @param key_p * @param value_p */ public Couple(K key_p, V value_p) { _key = key_p; _value = value_p; } /** * Get key. * @return K */ public K getKey() { return _key; } /** * Get value. * @return V */ public V getValue() { return _value; } /** * Set key with given value. * @param key_p key to set. void */ public void setKey(K key_p) { _key = key_p; } /** * Set value with given value. * @param value_p the value to set */ public void setValue(V value_p) { _value = value_p; } /** * @see java.lang.Object#clone() */ @SuppressWarnings("unchecked") @Override public Couple clone() { try { return (Couple) super.clone(); } catch (CloneNotSupportedException exception_p) { return null; } } /** * @see java.lang.Object#toString() */ @Override public String toString() { String keyString = _key != null ? _key.toString() : ICommonConstants.EMPTY_STRING; String valueString = _value != null ? _value.toString() : ICommonConstants.EMPTY_STRING; return new StringBuffer(keyString) .append(ICommonConstants.PARENTHESIS_OPEN_CHARACTER) .append(valueString) .append(ICommonConstants.PARENTHESIS_CLOSE_CHARACTER) .toString(); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/misc/ISelectionHandler.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 903 Text-content-md5: 69c6ee2b888d2e56b1589bb131a80b13 Text-content-sha1: c5f5485863a7b3995cbdec73bacd56d8b2783824 Content-length: 948 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.misc; /** * Handle selected object to get their string representation.
* Implementors must provide a default constructor (i.e the one without argument). * @author Guillaume Brocard */ public interface ISelectionHandler { /** * Handle given selected object. * @param selectedObject_p * @return a string representation for given selected object. */ public String handleSelection(Object selectedObject_p); } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/misc/PlatformLocationType.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1494 Text-content-md5: 94b7f35f4dc6a8eb2aeb563d7c0cb4e9 Text-content-sha1: 41b6f5b5b9a3a556115b7a3912c8b517b09f2d9d Content-length: 1539 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.misc; /** * This enumeration offers 4 types to identify platform locations. * @author Guillaume Brocard */ public enum PlatformLocationType { /** * Define the target platform.
* Process handlers that use this type, will only perform against the target platform. */ TARGET_PLATFORM_ONLY, /** * Define the workspace.
* Process handlers that use this type, will only perform against the workspace. */ WORKSPACE_ONLY, /** * Define the target platform then the workspace.
* Process handlers that use this type will only perform against the target platform then workspace. */ TARGET_PLATFORM_THEN_WORKSPACE, /** * Define the workspace then the target platform.
* Process handlers that use this type will only perform against the workspace then target platform. */ WORKSPACE_THEN_TARGET_PLATFORM } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/progress Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/progress/IProgressRunnable.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1146 Text-content-md5: d4cf2a57226871a779077329d68b4fca Text-content-sha1: 68a12d73ff35ea7db5d83f62da0d426630e7bfb5 Content-length: 1191 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.progress; import org.eclipse.core.runtime.IProgressMonitor; /** * Runnable that is reporting its progress through a {@link IProgressMonitor}. * @author brocard */ public interface IProgressRunnable { /** * A run method, that can take any action.
* * @param progressMonitor_p * @return true if runnable ended successfully, false otherwise. */ public boolean run(IProgressMonitor progressMonitor_p); /** * Get reporting title. * @return */ public String getReportingTitle(); } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/progress/ProductionProgressMonitor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2037 Text-content-md5: 02976c4bd59919f3976aaad877834f64 Text-content-sha1: 8d916e0a1a0d780cd5ba89d0d95ab692aa8791f7 Content-length: 2082 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.progress; import org.eclipse.core.runtime.SubMonitor; import org.eclipse.egf.common.constant.ICommonConstants; /** * Production progress monitor eases the usage of {@link SubMonitor} in patterns production or execution.
* Have a look at {@link SubMonitor}, {@link IProgressMonitor} documentation. * @author Guillaume Brocard */ public class ProductionProgressMonitor { /** * Number of ticks to allocate to this progress monitor. */ private int _totalWork; /** * Internal Sub monitor. */ private SubMonitor _monitor; /** * Return the underlying monitor. * @return the monitor */ public SubMonitor getMonitor() { return _monitor; } /** * Create a progress monitor for given parameters. * @param parentMonitor_p the parent monitor for this progress monitor. * @param taskName_p the end-user task name displayed in progress reporter. * @param totalWork_p number of ticks to allocate */ public ProductionProgressMonitor(SubMonitor parentMonitor_p, String taskName_p, int totalWork_p) { _totalWork = totalWork_p; _monitor = parentMonitor_p.newChild(_totalWork); _monitor.beginTask(ICommonConstants.EMPTY_STRING, _totalWork); _monitor.setTaskName(taskName_p); } /** * End this progress monitor. */ public void end() { _monitor.worked(_totalWork); _monitor.setWorkRemaining(0); } } Node-path: plugins/org.eclipse.egf.common/src/org/eclipse/egf/common/progress/ProgressReporter.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3145 Text-content-md5: d3af78be37cecb9db433652474f9d435 Text-content-sha1: fd0ad0e2bbf3d6668597446d56fb60c5ba644ccb Content-length: 3190 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.progress; import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; /** * A runner that executes runnable with progress reporting support. * @author brocard */ public class ProgressReporter { /** * An executed task default ticks count (in terms of reporting). */ public static final int TASK_DEFAULT_TICKS_COUNT = 1000; /** * Causes the {@link IProgressRunnable#run(IProgressMonitor)} method of the given runnable to be invoked * by an eclipse job at the next reasonable opportunity. The caller continues to run in parallel, * and is not notified when the runnable has completed.
* The progress reporting is done through the progress monitor of the executing job (non-user one). * @param runnable_p * @see #syncExec(IProgressRunnable, IProgressMonitor) */ public static void asyncExec(final IProgressRunnable runnable_p) { // Do nothing if there is nothing to do. if (null == runnable_p) { return; } // Create a new job. Job job = new WorkspaceJob(runnable_p.getReportingTitle()) { @Override public IStatus runInWorkspace(IProgressMonitor monitor_p) throws CoreException { boolean result = syncExec(runnable_p, monitor_p); return result ? Status.OK_STATUS : Status.CANCEL_STATUS; } }; job.schedule(); } /** * Causes the {@link IProgressRunnable#run(IProgressMonitor)} method of the given runnable to be invoked * by the calling thread. This one is suspended until the runnable completes.
* The progress reporting is done through the given progress monitor. * @param runnable_p * @param progressMonitor_p null to disable progress reporting. * @see #asyncExec(IProgressRunnable) */ public static boolean syncExec(IProgressRunnable runnable_p, IProgressMonitor progressMonitor_p) { // Do nothing if there is nothing to do. if (null == runnable_p) { return true; } IProgressMonitor progressMonitor = progressMonitor_p; // If no progress monitor is provided, use null one. if (null == progressMonitor) { progressMonitor = new NullProgressMonitor(); } // Invoke the run method. return runnable_p.run(progressMonitor); } } Node-path: plugins/org.eclipse.egf.common.ui/.classpath Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 587 Text-content-md5: a06ad971889e8772980d8f22a2d25130 Text-content-sha1: 44b4a10ef1ff9202bb183ab564c441ac99648585 Content-length: 632 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/.project Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 686 Text-content-md5: fd394656221f2e61a874bc96ab07504b Text-content-sha1: a420d0de96a68a10e9d52088cc22416614852cd0 Content-length: 731 K 13 svn:mime-type V 10 text/plain PROPS-END org.eclipse.egf.common.ui org.eclipse.jdt.core.javabuilder org.eclipse.pde.ManifestBuilder org.eclipse.pde.SchemaBuilder org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature Node-path: plugins/org.eclipse.egf.common.ui/.settings Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/.settings/org.eclipse.jdt.core.prefs Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 395 Text-content-md5: a4e6115c8dcdb4a8fbf0b3308e69c2e2 Text-content-sha1: 7bc6e403012bc1194d12e508b65f294c03b07542 Content-length: 440 K 13 svn:mime-type V 10 text/plain PROPS-END #Mon Mar 09 16:03:57 CET 2009 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.5 Node-path: plugins/org.eclipse.egf.common.ui/META-INF Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/META-INF/MANIFEST.MF Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1304 Text-content-md5: 99b6ea64beb4bfb50b3904c72241944c Text-content-sha1: d01ea37b67f60bfe6a3d0711167552bbc84d9e83 Content-length: 1349 K 13 svn:mime-type V 10 text/plain PROPS-END Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.egf.common.ui; singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-ClassPath: . Bundle-Vendor: %providerName Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 Require-Bundle: org.eclipse.egf.common;visibility:=reexport, org.eclipse.core.databinding;visibility:=reexport, org.eclipse.core.databinding.beans;visibility:=reexport, org.eclipse.jdt.ui;visibility:=reexport, org.eclipse.jface.databinding;visibility:=reexport, org.eclipse.ui;visibility:=reexport, org.eclipse.ui.ide;visibility:=reexport, org.eclipse.ui.forms;visibility:=reexport, org.eclipse.jface.text;visibility:=reexport, org.eclipse.help;visibility:=reexport Export-Package: org.eclipse.egf.common.ui.activator, org.eclipse.egf.common.ui.constant, org.eclipse.egf.common.ui.field, org.eclipse.egf.common.ui.helper, org.eclipse.egf.common.ui.resource, org.eclipse.egf.common.ui.toolkit.adapters, org.eclipse.egf.common.ui.toolkit.fields, org.eclipse.egf.common.ui.toolkit.validators, org.eclipse.egf.common.ui.toolkit.viewers, org.eclipse.egf.common.ui.toolkit.widgets.handler, org.eclipse.egf.common.ui.viewers, org.eclipse.egf.common.ui.wizard.page Bundle-ActivationPolicy: lazy Node-path: plugins/org.eclipse.egf.common.ui/about.html Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1411 Text-content-md5: a22a0b7b424620ca13d874789b551ca9 Text-content-sha1: 34826d06eba323d8b47f57e9d407c699ed8c1b7c Content-length: 1456 K 13 svn:mime-type V 10 text/plain PROPS-END About

About This Content

June 5, 2007

License

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" will mean the Content.

If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party ("Redistributor") and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at http://www.eclipse.org.

Node-path: plugins/org.eclipse.egf.common.ui/bin Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/activator Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/activator/AbstractUIActivator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 4368 Text-content-md5: ef4de4ed7aeb45e420aeab7bdaa86fa1 Text-content-sha1: 462e69f5a925cdbe85f3c2b2813033efd35e15ed Content-length: 4427 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 17org/eclipse/egf/common/ui/activator/AbstractUIActivator&org/eclipse/ui/plugin/AbstractUIPlugin ICONS_PATHLjava/lang/String; ConstantValue  $nl$/icons/()VCode  LineNumberTableLocalVariableTablethis9Lorg/eclipse/egf/common/ui/activator/AbstractUIActivator;getWorkbenchDisplay#()Lorg/eclipse/swt/widgets/Display; org/eclipse/ui/PlatformUI  getWorkbench()Lorg/eclipse/ui/IWorkbench; org/eclipse/ui/IWorkbench  getDisplaylog(Ljava/lang/Throwable;)V #%$java/lang/Throwable &' getMessage()Ljava/lang/String; ) *+newErrorStatusK(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/eclipse/core/runtime/IStatus; - .%(Lorg/eclipse/core/runtime/IStatus;)VtLjava/lang/Throwable;2org/eclipse/core/runtime/Status 4 5' getPluginID 17 8>(ILjava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)Vmessage exception(Ljava/lang/String;)V = >?getLog!()Lorg/eclipse/core/runtime/ILog; ACB*org/eclipse/egf/common/helper/StatusHelper DE newStatus^(Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)Lorg/eclipse/core/runtime/IStatus; G-Horg/eclipse/core/runtime/ILog*(Ljava/lang/String;Ljava/lang/Throwable;)V K L7(Ljava/lang/String;Lorg/eclipse/core/runtime/IStatus;)V;(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V Signature>(Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Throwable;)VQException in {0}.{1}: {2}Sjava/lang/Object UWVjava/lang/Class X'getName Z\[org/eclipse/osgi/util/NLS ]^bind9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; ` IclazzLjava/lang/Class; methodNameLocalVariableTypeTableLjava/lang/Class<*>;status"Lorg/eclipse/core/runtime/IStatus;+(ILjava/lang/String;Ljava/lang/Throwable;)VseverityIegetImageDescriptor@(Ljava/lang/String;)Lorg/eclipse/jface/resource/ImageDescriptor; o pqgetImageRegistry,()Lorg/eclipse/jface/resource/ImageRegistry; sut(org/eclipse/jface/resource/ImageRegistry vm getDescriptor x ymcreateImageDescriptor s{ |}putA(Ljava/lang/String;Lorg/eclipse/jface/resource/ImageDescriptor;)Vkey_p imageRegistry*Lorg/eclipse/jface/resource/ImageRegistry;imageDescriptor,Lorg/eclipse/jface/resource/ImageDescriptor;getImage4(Ljava/lang/String;)Lorg/eclipse/swt/graphics/Image; s getimage Lorg/eclipse/swt/graphics/Image;java/lang/StringBuilder ; append-(Ljava/lang/String;)Ljava/lang/StringBuilder; 'toString  imageDescriptorFromPluginR(Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/jface/resource/ImageDescriptor;   getBundle()Lorg/osgi/framework/Bundle; org/osgi/framework/Bundle 'getSymbolicName SourceFileAbstractUIActivator.java!  /*    ) ' ! F**+"+(, + ,/0*+ N1Y*3+,65 9:0 ; L*<*3+@F BC9 I R*+*3+,@J OP 9/0 MNO |*PRY+TSY,SY-SY-_ Z[*abc/0d ae . ?*+J cdfg h `*1Y*3,-6, jk*ij9k0 L l"+*<*3+@F*<,Fuvx!y ""9"fglm y*nM,+rN-*+wN,+-z- *~  %*nM,+N-*+w:,+z,+N- #4%%~   ym \*3Y+M,  ~5' 4 *   Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/constant Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/constant/IUiCommonConstants.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 326 Text-content-md5: f049ab56da16a8c2d1442a240f02db01 Text-content-sha1: 34ded94685525cc7cea907900d341ee529ef559e Content-length: 385 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 15org/eclipse/egf/common/ui/constant/IUiCommonConstantsjava/lang/Object NO_ELEMENT[Ljava/lang/Object;()VCode  LineNumberTableLocalVariableTable SourceFileIUiCommonConstants.java ,    Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/ContextElementFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1638 Text-content-md5: ab33baef716e11bb7e1760d1337622e3 Text-content-sha1: 3de3b077ecdbe694a38e6088ffeac5b0de8548e5 Content-length: 1697 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 129org/eclipse/egf/common/ui/field/ContextElementFieldEditor4org/eclipse/egf/common/ui/field/JavaClassFieldEditor_selectionHandler/Lorg/eclipse/egf/common/misc/ISelectionHandler;[(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class;)V Signature^(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class<*>;)VCode  LineNumberTableLocalVariableTablethis;Lorg/eclipse/egf/common/ui/field/ContextElementFieldEditor;title_pLjava/lang/String;openTypeDialogTitle_pparent_p#Lorg/eclipse/swt/widgets/Composite;classTypeFilter_pLjava/lang/Class;LocalVariableTypeTableLjava/lang/Class<*>;handleSelection&(Ljava/lang/Object;)Ljava/lang/String;   "!-org/eclipse/egf/common/misc/ISelectionHandler  "selectedObject_pLjava/lang/Object;resultsetDialogToOpen+(Lorg/eclipse/ui/dialogs/SelectionDialog;)V * '(dialogToOpen_p(Lorg/eclipse/ui/dialogs/SelectionDialog;setSelectionHandler2(Lorg/eclipse/egf/common/misc/ISelectionHandler;)V handler_p SourceFileContextElementFieldEditor.java!   *+,- *+,-. 04        mM**+M *+#M,78 9;= $%&'( >*+) EF+,-. >*+ MN/01 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/DomainFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1286 Text-content-md5: 98aa2bd7b32986547b1daa31c678c9e1 Text-content-sha1: d5cb26ceb44424e67b67aaeb6b89e1d962a7fb5a Content-length: 1345 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1.1org/eclipse/egf/common/ui/field/DomainFieldEditor8org/eclipse/egf/common/ui/field/WorkspaceFileFieldEditor(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethis3Lorg/eclipse/egf/common/ui/field/DomainFieldEditor;title_pLjava/lang/String;openResourceDialogTitle_pparent_p#Lorg/eclipse/swt/widgets/Composite; container_p'Lorg/eclipse/core/resources/IContainer;filterExtension_phandleFilePath6(Lorg/eclipse/core/resources/IFile;)Ljava/lang/String;  org/eclipse/core/resources/IFile  getFullPath"()Lorg/eclipse/core/runtime/IPath; ! org/eclipse/core/runtime/IPath "#removeFirstSegments#(I)Lorg/eclipse/core/runtime/IPath; % &'toString()Ljava/lang/String;file_p"Lorg/eclipse/core/resources/IFile;result Lorg/eclipse/core/runtime/IPath; SourceFileDomainFieldEditor.java! *+,- '()*+, . >     V+M,$ 6 7  () *+,- Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/JavaClassFieldEditor$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 887 Text-content-md5: d8190e01fe90db5afa3b8bc47aa8b4da Text-content-sha1: d1e9068cd30ab51e4094215ee4902d6c13389266 Content-length: 946 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1$6org/eclipse/egf/common/ui/field/JavaClassFieldEditor$1java/lang/Object%org/eclipse/swt/events/ModifyListenerthis$06Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;9(Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;)VCode    ()VLineNumberTableLocalVariableTablethis8Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor$1; modifyText'(Lorg/eclipse/swt/events/ModifyEvent;)V 4org/eclipse/egf/common/ui/field/JavaClassFieldEditor  access$0e_p$Lorg/eclipse/swt/events/ModifyEvent; SourceFileJavaClassFieldEditor.javaEnclosingMethod " addListeners InnerClasses   8 *+ *    @*   !#  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/JavaClassFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 4142 Text-content-md5: 35bf9f2249c71d9330daa9d02e567803 Text-content-sha1: b610be54e9bd574e471bab305200fc0722e674f6 Content-length: 4201 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 14org/eclipse/egf/common/ui/field/JavaClassFieldEditorAorg/eclipse/egf/common/ui/field/ValidatingStringButtonFieldEditor_openTypeDialogTitleLjava/lang/String;_classTypeFilterLjava/lang/Class; SignatureLjava/lang/Class<*>;[(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class;)V^(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class<*>;)VCode  `(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Lorg/eclipse/ui/dialogs/SelectionDialog;)V       addListeners()VLineNumberTableLocalVariableTablethis6Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;title_popenTypeDialogTitle_pparent_p#Lorg/eclipse/swt/widgets/Composite;classTypeFilter_pLocalVariableTypeTablehandleSelection&(Ljava/lang/Object;)Ljava/lang/String;'org/eclipse/jdt/core/IType &) *+getFullyQualifiedName()Ljava/lang/String;selectedObject_pLjava/lang/Object;typeLorg/eclipse/jdt/core/IType; createDialog*()Lorg/eclipse/ui/dialogs/SelectionDialog;3;org/eclipse/jdt/internal/ui/dialogs/OpenTypeSelectionDialog 5 67getShell!()Lorg/eclipse/swt/widgets/Shell; 9;:org/eclipse/ui/PlatformUI <= getWorkbench()Lorg/eclipse/ui/IWorkbench; ?A@org/eclipse/ui/IWorkbench BCgetProgressService,()Lorg/eclipse/ui/progress/IProgressService; 2E F(Lorg/eclipse/swt/widgets/Shell;ZLorg/eclipse/jface/operation/IRunnableContext;Lorg/eclipse/jdt/core/search/IJavaSearchScope;ILorg/eclipse/jdt/ui/dialogs/TypeSelectionExtension;)V HJIjava/lang/Class K+getName M NOgetFormattedOpenTypeDialogTitle&(Ljava/lang/String;)Ljava/lang/String; QSR&org/eclipse/ui/dialogs/SelectionDialog TUsetTitle(Ljava/lang/String;)V WYX*org/eclipse/jdt/internal/ui/JavaUIMessages ZOpenTypeAction_dialogMessage Q\ ]U setMessagedialog(Lorg/eclipse/ui/dialogs/SelectionDialog; dialogTitlefullyQualifiedFilteredClassNamesetClassTypeFilter(Ljava/lang/Class;)V(Ljava/lang/Class<*>;)V f gh getValidator;()Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;j@org/eclipse/egf/common/ui/internal/validators/JavaClassValidator il mcsetExpectedClassType validator9Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;javaClassValidatorBLorg/eclipse/egf/common/ui/internal/validators/JavaClassValidator; sutjava/lang/String vw lastIndexOf(I)I sy z{ substring(I)Ljava/lang/String; }~4org/eclipse/egf/common/ui/helper/MessageFormatHelper  formatMessage9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;!fullyQualifiedFilteredClassName_p lastDotIndexI  getTextControl ()Lorg/eclipse/swt/widgets/Text;6org/eclipse/egf/common/ui/field/JavaClassFieldEditor$1 9(Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;)V org/eclipse/swt/widgets/Text addModifyListener*(Lorg/eclipse/swt/events/ModifyListener;)Vaccess$0  refreshValidState SourceFileJavaClassFieldEditor.java InnerClasses!     *-+*,**:; <=>4 !"# " $%N +&M,( EF   ,-./01A2Y*48> DL*M**GN*-LM+,P+V[+>PQR STUVPYZ%\-]3`8a?b*A(^_#`-abc d#*+*eM,,i,iN-*kjk mno"q*##" nopq# #" NOk+.r=*sY+`xS|y{ |}z F*Y*  %*  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 917 Text-content-md5: 9d310e55b355a76a542172e4fa07ac69 Text-content-sha1: 5487625ecc7aaa6a1aa44468281e1ab2bf89c5b5 Content-length: 976 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1$;org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor$1java/lang/Object%org/eclipse/swt/events/ModifyListenerthis$0;Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor;>(Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor;)VCode    ()VLineNumberTableLocalVariableTablethis=Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor$1; modifyText'(Lorg/eclipse/swt/events/ModifyEvent;)V 9org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor  access$0e_p$Lorg/eclipse/swt/events/ModifyEvent; SourceFileJavaScopeClassFieldEditor.javaEnclosingMethod " addListeners InnerClasses   8 *+ * j   @*  pq !#  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3201 Text-content-md5: b44697c48e97263f6d40e49d664cbe4d Text-content-sha1: 993d3461a3397ee7c2c40027b1017ac383f9a7b9 Content-length: 3260 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1r9org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditorAorg/eclipse/egf/common/ui/field/ValidatingStringButtonFieldEditor_openTypeDialogTitleLjava/lang/String; _javaProject#Lorg/eclipse/jdt/core/IJavaProject;_classTypeFilterLjava/lang/Class; SignatureLjava/lang/Class<*>;~(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class;)V(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class<*>;)VCode  `(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Lorg/eclipse/ui/dialogs/SelectionDialog;)V        addListeners()VLineNumberTableLocalVariableTablethis;Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor;title_popenTypeDialogTitle_pparent_p#Lorg/eclipse/swt/widgets/Composite; javaProject_pclassTypeFilter_pLocalVariableTypeTablehandleSelection&(Ljava/lang/Object;)Ljava/lang/String;,org/eclipse/jdt/core/IType +. /0getFullyQualifiedName()Ljava/lang/String;selectedObject_pLjava/lang/Object;typeLorg/eclipse/jdt/core/IType; createDialog*()Lorg/eclipse/ui/dialogs/SelectionDialog;8@org/eclipse/jdt/internal/ui/dialogs/FilteredTypesSelectionDialog : ;<getShell!()Lorg/eclipse/swt/widgets/Shell;>/org/eclipse/jface/dialogs/ProgressMonitorDialog =@ A"(Lorg/eclipse/swt/widgets/Shell;)VCKorg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension BE F7(Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class;)V 7H I(Lorg/eclipse/swt/widgets/Shell;ZLorg/eclipse/jface/operation/IRunnableContext;Lorg/eclipse/jdt/core/search/IJavaSearchScope;ILorg/eclipse/jdt/ui/dialogs/TypeSelectionExtension;)V 7K LMsetTitle(Ljava/lang/String;)V OQP*org/eclipse/jdt/internal/ui/JavaUIMessages ROpenTypeAction_dialogMessage 7T UM setMessage 7W XYsetBlockOnOpen(Z)VdialogBLorg/eclipse/jdt/internal/ui/dialogs/FilteredTypesSelectionDialog; ] ^_getTextControl ()Lorg/eclipse/swt/widgets/Text;a;org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor$1 `c d>(Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor;)V fhgorg/eclipse/swt/widgets/Text ijaddModifyListener*(Lorg/eclipse/swt/events/ModifyListener;)Vaccess$0 m nrefreshValidState SourceFileJavaScopeClassFieldEditor.java InnerClasses!     *-+*,***AB CDEF> !"#$%&' ( ' )*N ++M,- MN  ! 123456 ?7Y*9=Y*9?BY**DGL+*J+NS+V+2 WXY Z[\]%W)_1`8a=b? !)Z[F*\`Y*beij it  !kd%*lopq ` Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/LabelFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1828 Text-content-md5: 9f516620bbbbcf883bc708639ff33eea Text-content-sha1: 91beba8f84f1188543a2f82cc52bf9a203415d8a Content-length: 1887 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1K0org/eclipse/egf/common/ui/field/LabelFieldEditor(org/eclipse/jface/preference/FieldEditor_labelLorg/eclipse/swt/widgets/Label;8(Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)VCode label  J(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)VLineNumberTableLocalVariableTablethis2Lorg/eclipse/egf/common/ui/field/LabelFieldEditor; labelText_pLjava/lang/String;parent_p#Lorg/eclipse/swt/widgets/Composite;adjustForNumColumns(I)V   org/eclipse/swt/widgets/Label   getLayoutData()Ljava/lang/Object;"org/eclipse/swt/layout/GridData !$ %&horizontalSpanI numColumns_pdoFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V + ,-getLabelControlD(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Label; !/ 0()V !2 3&horizontalAlignment !5 67grabExcessHorizontalSpaceZ !9 :&verticalAlignment !< =7grabExcessVerticalSpace ? @A setLayoutData(Ljava/lang/Object;)VgridData!Lorg/eclipse/swt/layout/GridData;doLoad doLoadDefaultdoStoregetNumberOfControls()I SourceFileLabelFieldEditor.java! K * +,       G*!# #$'&() 3**+*!Y.N-#-1-4-8-;*->& + ,-./ 0%1*223*333'&"BCD0 +; E0 +C F0 +K GH ,R IJ Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/SpacerFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 538 Text-content-md5: 828997685dda3fc56431987727a1fe63 Text-content-sha1: fa32b2e1e3f81db8e514948dea3dc9fa072888a2 Content-length: 597 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 11org/eclipse/egf/common/ui/field/SpacerFieldEditor0org/eclipse/egf/common/ui/field/LabelFieldEditor&(Lorg/eclipse/swt/widgets/Composite;)VCode    8(Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)VLineNumberTableLocalVariableTablethis3Lorg/eclipse/egf/common/ui/field/SpacerFieldEditor;parent_p#Lorg/eclipse/swt/widgets/Composite; SourceFileSpacerFieldEditor.java!@*+   Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/ValidatingStringButtonFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1996 Text-content-md5: 1f39148bfeb320bcd4029045a36dd03d Text-content-sha1: 2ab159847abb8b0a0f9f5963d95d268f5cad9928 Content-length: 2055 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1HAorg/eclipse/egf/common/ui/field/ValidatingStringButtonFieldEditorAorg/eclipse/egf/common/ui/toolkit/fields/StringBrowserFieldEditor _dialogToOpen(Lorg/eclipse/ui/dialogs/SelectionDialog;`(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Lorg/eclipse/ui/dialogs/SelectionDialog;)VCode   t(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/viewers/ILabelProvider;)V  LineNumberTableLocalVariableTablethisCLorg/eclipse/egf/common/ui/field/ValidatingStringButtonFieldEditor;parent_p#Lorg/eclipse/swt/widgets/Composite;label_pLjava/lang/String;dialogToOpen_pisValid(Z)Z  refreshValidState()V ! "()Zforce_pZ changePressed()Ljava/lang/String; ( )*getDialogToOpen*()Lorg/eclipse/ui/dialogs/SelectionDialog; , -* createDialog /10&org/eclipse/ui/dialogs/SelectionDialog 23open()I /5 67 getResult()[Ljava/lang/Object; 9 :;handleSelection&(Ljava/lang/Object;)Ljava/lang/String; selectedValue dialogToOpen selection[Ljava/lang/Object;Ajava/lang/StringselectedObject_pLjava/lang/Object;setDialogToOpen+(Lorg/eclipse/ui/dialogs/SelectionDialog;)V SourceFile&ValidatingStringButtonFieldEditor.java! _* ,+ *-, -.* I ** 78:  #$%& 3L*'M,*+M, ,.,4N-- *-28L+* BCE FHIK L)N1R*31<,= >?-* ,[ :; 9+@fBCDE >*+ no)* /*v FG Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/field/WorkspaceFileFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2343 Text-content-md5: 75ed052aa92e5a80e3bd168670e2b04f Text-content-sha1: 011d797958947c621f88cab2aa3b41fc19c70dbe Content-length: 2402 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1b8org/eclipse/egf/common/ui/field/WorkspaceFileFieldEditorAorg/eclipse/egf/common/ui/toolkit/fields/StringBrowserFieldEditor _container'Lorg/eclipse/core/resources/IContainer;_openResourceDialogTitleLjava/lang/String;_filterExtension(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;)VCode  t(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/viewers/ILabelProvider;)V      LineNumberTableLocalVariableTablethis:Lorg/eclipse/egf/common/ui/field/WorkspaceFileFieldEditor;title_popenResourceDialogTitle_pparent_p#Lorg/eclipse/swt/widgets/Composite; container_pfilterExtension_p changePressed()Ljava/lang/String;%7org/eclipse/ui/dialogs/FilteredResourcesSelectionDialog ' ()getShell!()Lorg/eclipse/swt/widgets/Shell; $+ ,K(Lorg/eclipse/swt/widgets/Shell;ZLorg/eclipse/core/resources/IContainer;I)V $. /0setTitle(Ljava/lang/String;)V $2 30setInitialPattern $5 67open()I $9 :; getResult()[Ljava/lang/Object;= org/eclipse/core/resources/IFile ? @AhandleFilePath6(Lorg/eclipse/core/resources/IFile;)Ljava/lang/String;fileNamedialog9Lorg/eclipse/ui/dialogs/FilteredResourcesSelectionDialog;resultIfiles[Ljava/lang/Object;file"Lorg/eclipse/core/resources/IFile; <L MN getFullPath"()Lorg/eclipse/core/runtime/IPath; PRQorg/eclipse/core/runtime/IPath S#toStringfile_pisValid(Z)Z X YZrefreshValidState()V \ U]()Zforce_pZ SourceFileWorkspaceFileFieldEditor.java!   * +-*,**& ;<=>? ABCD> !"# PL$Y*&**M,*-,*1,4>$,8:2<:*>L+. KMOQ$T)V-X3Y>[G\N_>PNB<CD)'EF3GHGIJ@A @ +KOi  TJUV I *W*[rsu  ^_`a Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/DataBindingHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2380 Text-content-md5: 9b17dc7bb418e664bd9473253aee41a9 Text-content-sha1: bd233cd221b5249c61b13f669835696a95bc696c Content-length: 2439 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1?2org/eclipse/egf/common/ui/helper/DataBindingHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis4Lorg/eclipse/egf/common/ui/helper/DataBindingHelper;bindTextToProperty(Lorg/eclipse/swt/widgets/Control;Ljava/lang/String;Ljava/lang/Object;Lorg/eclipse/core/databinding/observable/value/IValueChangeListener;)V/org/eclipse/core/databinding/DataBindingContext  3org/eclipse/core/databinding/beans/BeansObservables  observeValuef(Ljava/lang/Object;Ljava/lang/String;)Lorg/eclipse/core/databinding/observable/value/IObservableValue; >org/eclipse/core/databinding/observable/value/IObservableValue addValueChangeListenerG(Lorg/eclipse/core/databinding/observable/value/IValueChangeListener;)V "!0org/eclipse/jface/databinding/swt/SWTObservables #$ observeText[(Lorg/eclipse/swt/widgets/Control;I)Lorg/eclipse/jface/databinding/swt/ISWTObservableValue; & '( bindValue (Lorg/eclipse/core/databinding/observable/value/IObservableValue;Lorg/eclipse/core/databinding/observable/value/IObservableValue;Lorg/eclipse/core/databinding/UpdateValueStrategy;Lorg/eclipse/core/databinding/UpdateValueStrategy;)Lorg/eclipse/core/databinding/Binding; control_p!Lorg/eclipse/swt/widgets/Control;propertyName_pLjava/lang/String;propertyHolder_pLjava/lang/Object; listener_pDLorg/eclipse/core/databinding/observable/value/IValueChangeListener;bindingContext1Lorg/eclipse/core/databinding/DataBindingContext;observedProperty@Lorg/eclipse/core/databinding/observable/value/IObservableValue; observedText7Lorg/eclipse/jface/databinding/swt/ISWTObservableValue;bindControlSelectionToProperty 9 :;observeSelectionZ(Lorg/eclipse/swt/widgets/Control;)Lorg/eclipse/jface/databinding/swt/ISWTObservableValue;observedControl SourceFileDataBindingHelper.java!/*   1Y:,+:- -*:%W % &(),$-0. H1)*1+,1-.1/0 (12!34$ 56 7/Y:,+:- -*8:%W : ;=>A"B.C H/)*/+,/-.//0 &1234" <6=> Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/DialogHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1290 Text-content-md5: da1df3774058b5f6801c1379ec9d5806 Text-content-sha1: a0bd9d5ce3780a3b6095709221c7f1a874a2eb22 Content-length: 1349 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 12-org/eclipse/egf/common/ui/helper/DialogHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis/Lorg/eclipse/egf/common/ui/helper/DialogHelper;openDeleteConfirmationDialog5(Lorg/eclipse/swt/widgets/Shell;[Ljava/lang/Object;)Z )org/eclipse/egf/common/ui/helper/Messages (DeleteElementActionConfirmDialog_MessageLjava/lang/String;  G(Lorg/eclipse/swt/widgets/Shell;Ljava/lang/String;[Ljava/lang/Object;)Zparent_pLorg/eclipse/swt/widgets/Shell; arguments_p[Ljava/lang/Object;  4org/eclipse/egf/common/ui/helper/MessageFormatHelper !" formatMessage9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; $ %&DeleteElementActionConfirmDialog_Title ')('org/eclipse/jface/dialogs/MessageDialog *+ openQuestionF(Lorg/eclipse/swt/widgets/Shell;Ljava/lang/String;Ljava/lang/String;)ZmessageToFormat_pformatedMessage confirmedZ SourceFileDialogHelper.java!/*   = *+     m+,N*#-&6 %&' 4, -./01 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FieldEditorHelper$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1864 Text-content-md5: 4e0faa308e941edac5c44adbf87430cf Text-content-sha1: 8aa83b1919ab8c1947116d2cb6f65ffb660447a9 Content-length: 1923 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1I4org/eclipse/egf/common/ui/helper/FieldEditorHelper$1Dorg/eclipse/egf/common/ui/toolkit/adapters/BooleanFieldEditorAdapterval$readOnly_pZval$horizintalIndent_pIval$verticalIndent_pN(Ljava/lang/String;Ljava/lang/String;ILorg/eclipse/swt/widgets/Composite;ZII)VCode        K(Ljava/lang/String;Ljava/lang/String;ILorg/eclipse/swt/widgets/Composite;)VLineNumberTableLocalVariableTablethis6Lorg/eclipse/egf/common/ui/helper/FieldEditorHelper$1; $anonymous0Ljava/lang/String; $anonymous1 $anonymous2 $anonymous3#Lorg/eclipse/swt/widgets/Composite;doFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V # ! % &'getChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button; )+*org/eclipse/swt/widgets/Button ,- setEnabled(Z)V )/ 01 getLayoutData()Ljava/lang/Object;3org/eclipse/swt/layout/GridData 25 6horizontalIndent 28 9verticalIndent parent__p numColumns_pcheckBox Lorg/eclipse/swt/widgets/Button;gd!Lorg/eclipse/swt/layout/GridData; SourceFileFieldEditorHelper.javaEnclosingMethodD2org/eclipse/egf/common/ui/helper/FieldEditorHelper FGcreateCheckBoxFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;ZIIZ)Lorg/eclipse/egf/common/ui/toolkit/adapters/BooleanFieldEditorAdapter; InnerClasses    r* ***+, 4 ! 8*+"*+$N-* (-.2:*4*7 %.7488:8; ,<=%>?@ABCEH  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FieldEditorHelper$2.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1757 Text-content-md5: f97d3bb79fffc58bef7f74ccd23c164b Text-content-sha1: fa6ae770ab36ba67bad9e832b0e7b5c23fd898ce Content-length: 1816 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 184org/eclipse/egf/common/ui/helper/FieldEditorHelper$29org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditorval$readOnly_pZ(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class;Z)VCode    ~(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class;)VLineNumberTableLocalVariableTablethis6Lorg/eclipse/egf/common/ui/helper/FieldEditorHelper$2; $anonymous0Ljava/lang/String; $anonymous1 $anonymous2#Lorg/eclipse/swt/widgets/Composite; $anonymous3#Lorg/eclipse/jdt/core/IJavaProject; $anonymous4Ljava/lang/Class;LocalVariableTypeTableLjava/lang/Class<*>;doFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V !  # $%getChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button; ')(org/eclipse/swt/widgets/Button *+ setEnabled(Z)V parent__p numColumns_pI SourceFileFieldEditorHelper.javaEnclosingMethod32org/eclipse/egf/common/ui/helper/FieldEditorHelper 56createJavaScopeClassFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class;Z)Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor; InnerClasses  * *+,-  .>  a*+ *+"* &789 ,-./01247  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FieldEditorHelper$3.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1623 Text-content-md5: d647d2a7b7b999631797b8c841211971 Text-content-sha1: 28f3942d58d8f29d503b2c3f14aa62415bd837f2 Content-length: 1682 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 164org/eclipse/egf/common/ui/helper/FieldEditorHelper$34org/eclipse/egf/common/ui/field/JavaClassFieldEditorval$readOnly_pZ\(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class;Z)VCode    [(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class;)VLineNumberTableLocalVariableTablethis6Lorg/eclipse/egf/common/ui/helper/FieldEditorHelper$3; $anonymous0Ljava/lang/String; $anonymous1 $anonymous2#Lorg/eclipse/swt/widgets/Composite; $anonymous3Ljava/lang/Class;LocalVariableTypeTableLjava/lang/Class<*>;doFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V   ! "#getChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button; %'&org/eclipse/swt/widgets/Button () setEnabled(Z)V parent__p numColumns_pI SourceFileFieldEditorHelper.javaEnclosingMethod12org/eclipse/egf/common/ui/helper/FieldEditorHelper 34createJavaClassFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class;Z)Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor; InnerClasses  x* *+,-  X4  a*+*+ * $`ab *+,-./025  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FieldEditorHelper$4.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1638 Text-content-md5: 297695c5bfd68950d83ef5394af9997a Text-content-sha1: 69e11cbb3136a1be0ad2f9dac8acec0a38ee5a42 Content-length: 1697 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 164org/eclipse/egf/common/ui/helper/FieldEditorHelper$49org/eclipse/egf/common/ui/field/ContextElementFieldEditorval$readOnly_pZ\(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class;Z)VCode    [(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class;)VLineNumberTableLocalVariableTablethis6Lorg/eclipse/egf/common/ui/helper/FieldEditorHelper$4; $anonymous0Ljava/lang/String; $anonymous1 $anonymous2#Lorg/eclipse/swt/widgets/Composite; $anonymous3Ljava/lang/Class;LocalVariableTypeTableLjava/lang/Class<*>;doFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V   ! "#getChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button; %'&org/eclipse/swt/widgets/Button () setEnabled(Z)V parent__p numColumns_pI SourceFileFieldEditorHelper.javaEnclosingMethod12org/eclipse/egf/common/ui/helper/FieldEditorHelper 34createContextElementFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class;Z)Lorg/eclipse/egf/common/ui/field/ContextElementFieldEditor; InnerClasses  x* *+,-  4  a*+*+ * $ *+,-./025  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FieldEditorHelper$5.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1644 Text-content-md5: e31e0ac8dbe6c415542d21d384c8aeca Text-content-sha1: 85a68beee121fbeeed14ba5350037c05209bc14f Content-length: 1703 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 154org/eclipse/egf/common/ui/helper/FieldEditorHelper$58org/eclipse/egf/common/ui/field/WorkspaceFileFieldEditorval$readOnly_pZ(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;Z)VCode    (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;)VLineNumberTableLocalVariableTablethis6Lorg/eclipse/egf/common/ui/helper/FieldEditorHelper$5; $anonymous0Ljava/lang/String; $anonymous1 $anonymous2#Lorg/eclipse/swt/widgets/Composite; $anonymous3'Lorg/eclipse/core/resources/IContainer; $anonymous4doFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V    !"getChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button; $&%org/eclipse/swt/widgets/Button '( setEnabled(Z)V parent__p numColumns_pI SourceFileFieldEditorHelper.javaEnclosingMethod02org/eclipse/egf/common/ui/helper/FieldEditorHelper 23createWorkspaceFileEditor(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;Z)Lorg/eclipse/egf/common/ui/field/WorkspaceFileFieldEditor; InnerClasses  r* *+,-  > a*+*+* # )*+,-./14  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FieldEditorHelper$6.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1628 Text-content-md5: 75a988a05ffddbb731e6b72266ba80c3 Text-content-sha1: c49e12187e752e83b719a9d72f1abb964daf117f Content-length: 1687 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 154org/eclipse/egf/common/ui/helper/FieldEditorHelper$61org/eclipse/egf/common/ui/field/DomainFieldEditorval$readOnly_pZ(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;Z)VCode    (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;)VLineNumberTableLocalVariableTablethis6Lorg/eclipse/egf/common/ui/helper/FieldEditorHelper$6; $anonymous0Ljava/lang/String; $anonymous1 $anonymous2#Lorg/eclipse/swt/widgets/Composite; $anonymous3'Lorg/eclipse/core/resources/IContainer; $anonymous4doFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V    !"getChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button; $&%org/eclipse/swt/widgets/Button '( setEnabled(Z)V parent__p numColumns_pI SourceFileFieldEditorHelper.javaEnclosingMethod02org/eclipse/egf/common/ui/helper/FieldEditorHelper 23createDomainFieldEditor(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;Z)Lorg/eclipse/egf/common/ui/field/DomainFieldEditor; InnerClasses  r* *+,-  > a*+*+* # )*+,-./14  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FieldEditorHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 12650 Text-content-md5: 397b708d90e8614356a49adde1bd422c Text-content-sha1: 16aca9181c85ac47671dd13b439b808e7b72a2d5 Content-length: 12709 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Z2org/eclipse/egf/common/ui/helper/FieldEditorHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis4Lorg/eclipse/egf/common/ui/helper/FieldEditorHelper;createDescriptionFieldEditor(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILorg/eclipse/jface/text/IDocumentListener;Z)Lorg/eclipse/swt/custom/StyledText;!org/eclipse/swt/widgets/Composite  '(Lorg/eclipse/swt/widgets/Composite;I)V!org/eclipse/swt/layout/GridLayout    numColumnsI   marginWidth  ! marginHeight # $% setLayout#(Lorg/eclipse/swt/widgets/Layout;)V'org/eclipse/swt/layout/GridData &) *(IIZZ)V , -. setLayoutData(Ljava/lang/Object;)V &0 1horizontalSpan3org/eclipse/swt/widgets/Label 2 26 78setText(Ljava/lang/String;)V:org/eclipse/jface/text/Document 9 =?> org/eclipse/jface/text/IDocument @8set =B CDaddDocumentListener-(Lorg/eclipse/jface/text/IDocumentListener;)VF*org/eclipse/jface/text/source/SourceViewer EH IU(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/text/source/IVerticalRuler;I)V EK LM setDocument%(Lorg/eclipse/jface/text/IDocument;)V EO PQ getTextWidget%()Lorg/eclipse/swt/custom/StyledText; S TUgetFont!()Lorg/eclipse/swt/graphics/Font; WYX!org/eclipse/swt/custom/StyledText Z[setFont"(Lorg/eclipse/swt/graphics/Font;)V W, ^`_+org/eclipse/egf/common/ui/helper/FormHelper abforceControlSize&(Lorg/eclipse/swt/widgets/Control;II)Vparent_p#Lorg/eclipse/swt/widgets/Composite;label_pLjava/lang/String; tooltip_p initialText_p numColumns_ptextModificationListener_p*Lorg/eclipse/jface/text/IDocumentListener; readOnly_pZ textComposite gridLayout#Lorg/eclipse/swt/layout/GridLayout;textCompositeLayoutData!Lorg/eclipse/swt/layout/GridData;descriptionLabelLorg/eclipse/swt/widgets/Label;document"Lorg/eclipse/jface/text/IDocument;textViewerStyle textViewer,Lorg/eclipse/jface/text/source/SourceViewer; styledText#Lorg/eclipse/swt/custom/StyledText;styledTextLayoutDatacreateCheckBoxFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;ZIIZ)Lorg/eclipse/egf/common/ui/toolkit/adapters/BooleanFieldEditorAdapter;4org/eclipse/egf/common/ui/helper/FieldEditorHelper$1  N(Ljava/lang/String;Ljava/lang/String;ILorg/eclipse/swt/widgets/Composite;ZII)V Dorg/eclipse/egf/common/ui/toolkit/adapters/BooleanFieldEditorAdapter setPage)(Lorg/eclipse/jface/dialogs/DialogPage;)V getValueControl#()Lorg/eclipse/swt/widgets/Control;org/eclipse/swt/widgets/Button 8setToolTipText  setSelection(Z)Vpage_p&Lorg/eclipse/jface/dialogs/DialogPage;labelTooltip_pinitialValue_phorizintalIndent_pverticalIndent_pcheckBoxFieldEditorFLorg/eclipse/egf/common/ui/toolkit/adapters/BooleanFieldEditorAdapter;checkbox Lorg/eclipse/swt/widgets/Button; createGroupX(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;II)Lorg/eclipse/swt/widgets/Group;org/eclipse/swt/widgets/Group  6 Y  horizontalSpacing # & (I)V ,style_pgroupLorg/eclipse/swt/widgets/Group;layoutgdcreateStringFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILorg/eclipse/egf/common/ui/toolkit/validators/IValidator;Z)Lorg/eclipse/egf/common/ui/toolkit/fields/ValidatingStringFieldEditor;Dorg/eclipse/egf/common/ui/toolkit/fields/ValidatingStringFieldEditor ;org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor  UNLIMITED M(Ljava/lang/String;Ljava/lang/String;IILorg/eclipse/swt/widgets/Composite;I)V  setValidator<(Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;)V getLabel!()Lorg/eclipse/swt/widgets/Label; 2 getTextControl ()Lorg/eclipse/swt/widgets/Text; org/eclipse/swt/widgets/Text  setTextLimit textTooltip_p textLimit_pfieldEditorValidator_p9Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator; fieldEditorFLorg/eclipse/egf/common/ui/toolkit/fields/ValidatingStringFieldEditor;labeltextLorg/eclipse/swt/widgets/Text;createRadioGroupFieldEditor(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;I[[Ljava/lang/String;Z)Lorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor;?org/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor `(Ljava/lang/String;Ljava/lang/String;I[[Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Z)V getRadioBoxControlH(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Composite;   setEnabledtitle_plabelAndValues_p[[Ljava/lang/String;ALorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor;createJavaScopeClassFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class;Z)Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor; Signature(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class<*>;Z)Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor;4org/eclipse/egf/common/ui/helper/FieldEditorHelper$2 (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class;Z)V 9org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor setEmptyStringAllowed   setEditableopenTypeDialogTitle_p javaProject_p#Lorg/eclipse/jdt/core/IJavaProject;classTypeFilter_pLjava/lang/Class;;Lorg/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor;LocalVariableTypeTableLjava/lang/Class<*>;createJavaClassFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class;Z)Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class<*>;Z)Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;4org/eclipse/egf/common/ui/helper/FieldEditorHelper$3  \(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/Class;Z)V  initializeJavaClassFieldEditor(Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class;Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;)V classLoader_pLjava/lang/ClassLoader;bundle_pLorg/osgi/framework/Bundle;6Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;createContextElementFieldEditor(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class;Z)Lorg/eclipse/egf/common/ui/field/ContextElementFieldEditor;(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class<*>;Z)Lorg/eclipse/egf/common/ui/field/ContextElementFieldEditor;"4org/eclipse/egf/common/ui/helper/FieldEditorHelper$4 !;Lorg/eclipse/egf/common/ui/field/ContextElementFieldEditor;(Lorg/eclipse/jface/dialogs/DialogPage;Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class<*>;Lorg/eclipse/egf/common/ui/field/JavaClassFieldEditor;)V '(4org/eclipse/egf/common/ui/field/JavaClassFieldEditor ' ',@org/eclipse/egf/common/ui/internal/validators/JavaClassValidator +. /F(Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class;)V ' fieldEditor_pcreateWorkspaceFileEditor(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;Z)Lorg/eclipse/egf/common/ui/field/WorkspaceFileFieldEditor;54org/eclipse/egf/common/ui/helper/FieldEditorHelper$5 47 8(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;Z)V :;8org/eclipse/egf/common/ui/field/WorkspaceFileFieldEditoropenResourceDialogTitle_p container_p'Lorg/eclipse/core/resources/IContainer;filterExtension_p:Lorg/eclipse/egf/common/ui/field/WorkspaceFileFieldEditor;createDomainFieldEditor(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/core/resources/IContainer;Ljava/lang/String;Z)Lorg/eclipse/egf/common/ui/field/DomainFieldEditor;D4org/eclipse/egf/common/ui/helper/FieldEditorHelper$6 C7 GH1org/eclipse/egf/common/ui/field/DomainFieldEditor G3Lorg/eclipse/egf/common/ui/field/DomainFieldEditor;layoutFieldEditorQ(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/preference/FieldEditor;I)V N OP getLayout"()Lorg/eclipse/swt/widgets/Layout; RTS(org/eclipse/jface/preference/FieldEditor U fillIntoGrid*Lorg/eclipse/jface/preference/FieldEditor; SourceFileFieldEditorHelper.java InnerClasses! /* 3  ѻY*:Y:"&Y(:  + /2Y@4:  +59Y;: -  -< A B6 EY   G:   J N:*RV&Y(:\<] rH IKM N&P-R:SATHVVW\Ye[i\q_zbcdefchjkmnpq cdefgfhfijklm ndop:qr V{st eluv Rw 7xy )z{|r }~ 6Y,@*:+:  -  .  &,3 f 6cd66ef6f6m666lm & WY*:+ +*RY:&Y:/ 2 '.4;GMT HWcdWefWWi L'0pGr 6 `Y,*  :+-:  -:    N %,07=BIPV] p `cd``ef`f`f```lmA7t I &Y+-*:* *      # >&cd&f&i&&lm -Y,-*:+ . ./012 3 .;=?*@ R-cd--f-f-- -lm  -    Y,-*:+ 6 XYZ[\ Xefghidk \ cdff lm     !Y,-*#:+ 6   \ cdff lm$   %(*&)*+Y+,--0  ' 4(((( (1 (  234Y+,*-6:9 &   Hcdf<f=>?flm @ AB&CY+,*-E:FI *  # H&cd&f&<f&=>&?f&lmJ KLX*M+*Q   cd1ViWXY2!4C Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FormHelper$LayoutType.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1272 Text-content-md5: 8e78bf43410d0e4fb3afba4a764a1370 Text-content-sha1: f7793c1549ad1b0ca8df9061f75790a1dab06ca7 Content-length: 1331 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 126org/eclipse/egf/common/ui/helper/FormHelper$LayoutTypejava/lang/Enum GRID_LAYOUT8Lorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType;TABLEWRAP_LAYOUT ENUM$VALUES9[Lorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType;()VCode  (Ljava/lang/String;I)V       LineNumberTableLocalVariableTable thisvalues;()[Lorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType; "!java/lang/System #$ arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)VvalueOfL(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType; ( %)5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; SourceFileFormHelper.java SignatureJLjava/lang/Enum; InnerClasses0+org/eclipse/egf/common/ui/helper/FormHelper LayoutType@1@@   N.Y YYSYS/ 1*+/   6YK*Y<YM, %& * *'*+,-. /1@ Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/FormHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 8418 Text-content-md5: 2d67670ecf54ca66965d9dc3a940232d Text-content-sha1: dce281d8430d440605423d4a65e6aa13264ba69e Content-length: 8477 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1+org/eclipse/egf/common/ui/helper/FormHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis-Lorg/eclipse/egf/common/ui/helper/FormHelper;createCompositeWithLayoutType(Lorg/eclipse/ui/forms/widgets/FormToolkit;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType;IZ)Lorg/eclipse/swt/widgets/Composite; (org/eclipse/ui/forms/widgets/FormToolkit createCompositeH(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Composite;  #updateCompositeLayoutWithLayoutTypeq(Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType;IZ)Ljava/lang/Object; toolkit_p*Lorg/eclipse/ui/forms/widgets/FormToolkit;parent_p#Lorg/eclipse/swt/widgets/Composite; layoutType_p8Lorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType; numColumns_pI equalWidth_pZresult &('6org/eclipse/egf/common/ui/helper/FormHelper$LayoutType ) GRID_LAYOUT &+ ,-equals(Ljava/lang/Object;)Z/!org/eclipse/swt/layout/GridLayout . .2 3! numColumns .5 6#makeColumnsEqualWidth &8 9TABLEWRAP_LAYOUT;,org/eclipse/ui/forms/widgets/TableWrapLayout : :2 :5 @BA!org/eclipse/swt/widgets/Composite CD setLayout#(Lorg/eclipse/swt/widgets/Layout;)V F GH)updateControlLayoutDataWithLayoutTypeDatam(Lorg/eclipse/swt/widgets/Control;Lorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType;)Ljava/lang/Object; composite_pselectedLayout Lorg/eclipse/swt/widgets/Layout;layout#Lorg/eclipse/swt/layout/GridLayout;.Lorg/eclipse/ui/forms/widgets/TableWrapLayout;Porg/eclipse/swt/layout/GridData OR S(IIZZ)VU*org/eclipse/ui/forms/widgets/TableWrapData TW X(I)V Z\[org/eclipse/swt/widgets/Control ]^ setLayoutData(Ljava/lang/Object;)V control_p!Lorg/eclipse/swt/widgets/Control; layoutDataLjava/lang/Object;createSectionWithChildComposite(Lorg/eclipse/ui/forms/widgets/FormToolkit;Lorg/eclipse/swt/widgets/Composite;ILorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType;IZ)Lorg/eclipse/egf/common/misc/Couple; Signature(Lorg/eclipse/ui/forms/widgets/FormToolkit;Lorg/eclipse/swt/widgets/Composite;ILorg/eclipse/egf/common/ui/helper/FormHelper$LayoutType;IZ)Lorg/eclipse/egf/common/misc/Couple; h ij createSectionL(Lorg/eclipse/swt/widgets/Composite;I)Lorg/eclipse/ui/forms/widgets/Section; l  npo$org/eclipse/ui/forms/widgets/Section qr setClient$(Lorg/eclipse/swt/widgets/Control;)Vt"org/eclipse/egf/common/misc/Couple sv w'(Ljava/lang/Object;Ljava/lang/Object;)VsectionStyle_pchildNumColumns_presultingSection&Lorg/eclipse/ui/forms/widgets/Section;childCompositecreateLabelAndText(Lorg/eclipse/ui/forms/widgets/FormToolkit;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Z)Lorg/eclipse/egf/common/misc/Couple;(Lorg/eclipse/ui/forms/widgets/FormToolkit;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Z)Lorg/eclipse/egf/common/misc/Couple;   createLabelW(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;I)Lorg/eclipse/swt/widgets/Label;   getColors#()Lorg/eclipse/ui/forms/FormColors;org.eclipse.ui.forms.TITLE org/eclipse/ui/forms/FormColors getColor4(Ljava/lang/String;)Lorg/eclipse/swt/graphics/Color; org/eclipse/swt/widgets/Label  setForeground#(Lorg/eclipse/swt/graphics/Color;)Vorg/eclipse/swt/widgets/Text '(Lorg/eclipse/swt/widgets/Composite;I)V OW \ setText(Ljava/lang/String;)VlabelMessage_pLjava/lang/String; initialText_p editable_plabelLorg/eclipse/swt/widgets/Label;textLorg/eclipse/swt/widgets/Text;createLabelTextAndButton(Lorg/eclipse/ui/forms/widgets/FormToolkit;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/events/SelectionListener;)Lorg/eclipse/egf/common/misc/Couple;(Lorg/eclipse/ui/forms/widgets/FormToolkit;Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/events/SelectionListener;)Lorg/eclipse/egf/common/misc/Couple;  }~   createButtonX(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;I)Lorg/eclipse/swt/widgets/Button; org/eclipse/swt/widgets/Button addSelectionListener-(Lorg/eclipse/swt/events/SelectionListener;)V s getValue()Ljava/lang/Object; buttonLabel_p listener_p*Lorg/eclipse/swt/events/SelectionListener; labelAndText$Lorg/eclipse/egf/common/misc/Couple;button Lorg/eclipse/swt/widgets/Button;LocalVariableTypeTablecLorg/eclipse/egf/common/misc/Couple;createLinkWithDescription(Lorg/eclipse/ui/forms/widgets/FormToolkit;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/swt/graphics/Image;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Lorg/eclipse/ui/forms/events/IHyperlinkListener;)V  createImageHyperlinkS(Lorg/eclipse/swt/widgets/Composite;I)Lorg/eclipse/ui/forms/widgets/ImageHyperlink; +org/eclipse/ui/forms/widgets/ImageHyperlink setImage#(Lorg/eclipse/swt/graphics/Image;)V ^setHref addHyperlinkListener3(Lorg/eclipse/ui/forms/events/IHyperlinkListener;)Vicon_p Lorg/eclipse/swt/graphics/Image; linkText_p linkRef_plinkDescription_p0Lorg/eclipse/ui/forms/events/IHyperlinkListener;specificationLink-Lorg/eclipse/ui/forms/widgets/ImageHyperlink;forceControlSize&(Lorg/eclipse/swt/widgets/Control;II)Vorg/eclipse/swt/graphics/GC &(Lorg/eclipse/swt/graphics/Drawable;)V getFontMetrics(()Lorg/eclipse/swt/graphics/FontMetrics; dispose Z  getLayoutData  org/eclipse/jface/dialogs/Dialog convertWidthInCharsToPixels*(Lorg/eclipse/swt/graphics/FontMetrics;I)I O ! widthHint convertHeightInCharsToPixels O ! heightHint TwidthInChars_pheightInChars_pgcLorg/eclipse/swt/graphics/GC; fontMetrics&Lorg/eclipse/swt/graphics/FontMetrics;data!Lorg/eclipse/swt/layout/GridData;,Lorg/eclipse/ui/forms/widgets/TableWrapData; SourceFileFormHelper.java InnerClasses LayoutType! /* *  x*+:,W ?@A > !"# $ `:%+*.Y0:14:&7+*:Y<:=>:*?*+EW >QR STU"V)W3X<YBZH[L^Q_W`]b H`I`` !`"#]JKLM<LN GH;M%+*OYQM7+*TYVM,*,Y, "kl mn%o0r4s9u ;_`;9ab cdef/*+g:-EW*-k:msYu * # R///x!//y!/"#'z{| }~eU*+,@:*Y+ :OY- -sYu * +0?CI HUUUUU# K0% e2*+,:*+-: sYu   H22222 (  ( .*+@:-,*+@W  #- R.....b.. %  i* Y*N-:-*:O#O:TT: :  &.5@NV]h Ri_`i!i!SM&Cab5 ]     &@ Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/MessageFormatHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 634 Text-content-md5: 88d3ebdefc48fed0df2977ea1b98e91e Text-content-sha1: c5419ab33eaa53bce27bf367384b165773b6f4e0 Content-length: 693 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 14org/eclipse/egf/common/ui/helper/MessageFormatHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis6Lorg/eclipse/egf/common/ui/helper/MessageFormatHelper; formatMessage9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; *org/eclipse/egf/common/helper/StringHelper notFormatedMessage_pLjava/lang/String; arguments_p[Ljava/lang/Object; SourceFileMessageFormatHelper.java!/*   :*+   Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/Messages.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 717 Text-content-md5: 1fc862bf75d7161596e69ac879258798 Text-content-sha1: 0ce021e9178731016cb43deb85c7993f44f28a96 Content-length: 776 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1)org/eclipse/egf/common/ui/helper/Messagesorg/eclipse/osgi/util/NLS BUNDLE_NAMELjava/lang/String; ConstantValue )org.eclipse.egf.common.ui.helper.messages&DeleteElementActionConfirmDialog_Title(DeleteElementActionConfirmDialog_MessageOpenEditor_ErrorMessage()VCode  initializeMessages&(Ljava/lang/String;Ljava/lang/Class;)VLineNumberTableLocalVariableTable  this+Lorg/eclipse/egf/common/ui/helper/Messages; SourceFile Messages.java!    , 3* %'  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/ViewerHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 981 Text-content-md5: 83bd822c7a8be0427399a8c19dbaabe1 Text-content-sha1: 057575fd748314ecb0009549a8fc3022cd2e4542 Content-length: 1040 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1)-org/eclipse/egf/common/ui/helper/ViewerHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis/Lorg/eclipse/egf/common/ui/helper/ViewerHelper;refresh/(Lorg/eclipse/jface/viewers/StructuredViewer;)V  0(Lorg/eclipse/jface/viewers/StructuredViewer;Z)Vviewer_p,Lorg/eclipse/jface/viewers/StructuredViewer; *org/eclipse/jface/viewers/StructuredViewer  getControl#()Lorg/eclipse/swt/widgets/Control; org/eclipse/swt/widgets/Control   setRedraw(Z)V "  updateLabels_pZcontrol!Lorg/eclipse/swt/widgets/Control; SourceFileViewerHelper.java!/*   4*   %**M,*! N,-,  * ,-0 356898$: %%#$ %&'( Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/WorkbenchHelper.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 7789 Text-content-md5: e78f8ab96a88719ba13944c99f3d7a87 Text-content-sha1: 3d9a48e2ed4e4009f490d7a01aeb70021b31988e Content-length: 7848 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1<0org/eclipse/egf/common/ui/helper/WorkbenchHelperjava/lang/Object__loggerLorg/apache/log4j/Logger;()VCode  java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger  getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger;  LineNumberTableLocalVariableTable " this2Lorg/eclipse/egf/common/ui/helper/WorkbenchHelper;getActiveWorkbenchPage!()Lorg/eclipse/ui/IWorkbenchPage; (*)org/eclipse/ui/PlatformUI +, getWorkbench()Lorg/eclipse/ui/IWorkbench; .0/org/eclipse/ui/IWorkbench 12getActiveWorkbenchWindow#()Lorg/eclipse/ui/IWorkbenchWindow; 465org/eclipse/ui/IWorkbenchWindow 7& getActivePageactiveWorkbenchWindow!Lorg/eclipse/ui/IWorkbenchWindow;openFileEditorC(Ljava/lang/String;Ljava/lang/String;Z)Lorg/eclipse/ui/IEditorPart;=org/eclipse/core/runtime/Path <? @(Ljava/lang/String;)V BDC*org/eclipse/core/resources/ResourcesPlugin EF getWorkspace)()Lorg/eclipse/core/resources/IWorkspace; HJI%org/eclipse/core/resources/IWorkspace KLgetRoot-()Lorg/eclipse/core/resources/IWorkspaceRoot; NPO)org/eclipse/core/resources/IWorkspaceRoot QRgetFileD(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IFile;TDorg/eclipse/egf/common/ui/internal/resource/ExtendedUnmodifiableFile SV W#(Lorg/eclipse/core/runtime/IPath;)VY#org/eclipse/ui/part/FileEditorInput X[ \%(Lorg/eclipse/core/resources/IFile;)V .^ _` getDisplay#()Lorg/eclipse/swt/widgets/Display; bdcorg/eclipse/swt/widgets/Display efgetActiveShell!()Lorg/eclipse/swt/widgets/Shell; h ij openEditorl(Lorg/eclipse/ui/IEditorInput;Ljava/lang/String;Lorg/eclipse/swt/widgets/Shell;)Lorg/eclipse/ui/IEditorPart;fileRelativePath_pLjava/lang/String; editorId_p editable_pZfile"Lorg/eclipse/core/resources/IFile;filePath Lorg/eclipse/core/runtime/IPath; u %& wyxorg/eclipse/ui/IWorkbenchPage izM(Lorg/eclipse/ui/IEditorInput;Ljava/lang/String;)Lorg/eclipse/ui/IEditorPart;| org/eclipse/ui/PartInitException~4No active workbench page was found to open an editor {?java/lang/StringBuilder!WorkbenchHelper.openEditor(..) _ ? toString  warn*(Ljava/lang/Object;Ljava/lang/Throwable;)V )org/eclipse/egf/common/ui/helper/Messages lOpenEditor_ErrorMessage {  getMessage 'org/eclipse/jface/dialogs/MessageDialog  openErrorF(Lorg/eclipse/swt/widgets/Shell;Ljava/lang/String;Ljava/lang/String;)V editorInput_pLorg/eclipse/ui/IEditorInput;shell_pLorg/eclipse/swt/widgets/Shell;Lorg/eclipse/ui/IEditorPart;activeWorkbenchPageLorg/eclipse/ui/IWorkbenchPage; exception_p"Lorg/eclipse/ui/PartInitException; loggerMessageLjava/lang/StringBuilder;openDefaultFileEditorO(Ljava/lang/String;Lorg/eclipse/swt/widgets/Shell;)Lorg/eclipse/ui/IEditorPart; . getEditorRegistry"()Lorg/eclipse/ui/IEditorRegistry; org/eclipse/ui/IEditorRegistry getDefaultEditor6(Ljava/lang/String;)Lorg/eclipse/ui/IEditorDescriptor;  org/eclipse/ui/IEditorDescriptor getId  :;editorRegistry Lorg/eclipse/ui/IEditorRegistry; defaultEditor"Lorg/eclipse/ui/IEditorDescriptor; saveEditor(Lorg/eclipse/ui/IEditorPart;)V org/eclipse/ui/IEditorPart isDirty()Z,org/eclipse/core/runtime/NullProgressMonitor " doSave.(Lorg/eclipse/core/runtime/IProgressMonitor;)Veditor_pcloseFileEditors(Ljava/lang/String;)Z&WorkbenchHelper.closeFileEditor(..) _ w getEditorReferences$()[Lorg/eclipse/ui/IEditorReference; org/eclipse/ui/IEditorReference  getEditor(Z)Lorg/eclipse/ui/IEditorPart; getEditorInput()Lorg/eclipse/ui/IEditorInput; org/eclipse/core/resources/IFile org/eclipse/ui/IEditorInput  getAdapter%(Ljava/lang/Class;)Ljava/lang/Object; equals(Ljava/lang/Object;)Z   closeEditor (Lorg/eclipse/ui/IEditorPart;Z)Zjava/lang/Exceptionresult fileToClosee_pLjava/lang/Exception;editorReferences"[Lorg/eclipse/ui/IEditorReference;iI editorPart editorInput wsave_p closeView w findView.(Ljava/lang/String;)Lorg/eclipse/ui/IViewPart; w hideView(Lorg/eclipse/ui/IViewPart;)VviewId_pviewPartLorg/eclipse/ui/IViewPart;openView w  showView WorkbenchHelper.openView(..) _  isViewOpenaddPartListener!(Lorg/eclipse/ui/IPartListener;)V w  listener_pLorg/eclipse/ui/IPartListener;getAllOpenEditors6(Ljava/lang/String;)[Lorg/eclipse/ui/IEditorReference;java/util/ArrayList  (I)V java/lang/String ! "add $ %&size()I ( )*toArray(([Ljava/lang/Object;)[Ljava/lang/Object; openEditorsLjava/util/ArrayList; activePageallEditorReferenceseditorReference!Lorg/eclipse/ui/IEditorReference;LocalVariableTypeTable8Ljava/util/ArrayList;getPackageExplorerView?()Lorg/eclipse/jdt/internal/ui/packageview/PackageExplorerPart;7"org.eclipse.jdt.ui.PackageExplorer9;org/eclipse/jdt/internal/ui/packageview/PackageExplorerPart SourceFileWorkbenchHelper.java! 3  2-  /*!- #$ %& L'-K* *3; < =?  89 :; O*+N:AGMN SYUNXY-Z+']ag"JK N OPQ-S7U4OklOmlOno Cpq9rs ij UN*+-t:*+vN3{Y}:Y:,- --{2 _a b efg#i-k/l:mGnSpHUUmlUSi/$:  )*'M,*N-*-z{~'*)kl)  I**Yƹ     <*tMNAGMN:Yη:,-<,:6C2::%޹:- ~<$'Z ')4AIKMU[hqvp klo q)4 UPXKh0q'pq  ]tM, ,* o @ s*tL+*M, +,  l   @ ,*tL+* WMY N-, {"  +*,l #   f*tL++* l   PtL+ +*    VYLtM,N-Y:66"2:* + W++#ն'+"  (6=G4Vml M,- I.B/(012  M,3 45 MtK**68()*, :; Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/helper/messages.properties Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 748 Text-content-md5: 6e7d0cc0c15baacdadf57274ff88e9b8 Text-content-sha1: b95be8d36371b44237f6ba0eaf96f4f3440436d2 Content-length: 758 PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### DeleteElementActionConfirmDialog_Title=Confirm delete DeleteElementActionConfirmDialog_Message=Are you sure you want to delete {0} ''{1}''? OpenEditor_ErrorMessage=Opening an editor Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/field Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2256 Text-content-md5: d9d018a90fff3546ca9743bbd9557be9 Text-content-sha1: 32cdf14bcc4e5a2302fa9081da24dedc504cbc8a Content-length: 2315 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1cMorg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension$1java/lang/Object3org/eclipse/jdt/ui/dialogs/ITypeInfoFilterExtensionthis$0MLorg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension;P(Lorg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension;)VCode    ()VLineNumberTableLocalVariableTablethisOLorg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension$1;select2(Lorg/eclipse/jdt/ui/dialogs/ITypeInfoRequestor;)Zjava/lang/StringBuilder -org/eclipse/jdt/ui/dialogs/ITypeInfoRequestor getPackageName()Ljava/lang/String;  !(Ljava/lang/String;)V # $%append(C)Ljava/lang/StringBuilder; ' ( getTypeName * $+-(Ljava/lang/String;)Ljava/lang/StringBuilder; -/.Korg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension 01 _javaProject#Lorg/eclipse/jdt/core/IJavaProject; 3 4toString 687!org/eclipse/jdt/core/IJavaProject 9:findType0(Ljava/lang/String;)Lorg/eclipse/jdt/core/IType; <>=org/eclipse/jdt/core/IType ?@getSuperInterfaceNames()[Ljava/lang/String; -B CD_classTypeFilterLjava/lang/Class; FHGjava/lang/Class IgetName KMLjava/lang/String NOequals(Ljava/lang/Object;)ZQ'org/eclipse/jdt/core/JavaModelExceptiontypeInfoRequestor_p/Lorg/eclipse/jdt/ui/dialogs/ITypeInfoRequestor;fqnLjava/lang/StringBuilder;typeLorg/eclipse/jdt/core/IType;iLjava/lang/String;jme)Lorg/eclipse/jdt/core/JavaModelException; SourceFile'FilteredJavaTypeSelectionExtension.javaEnclosingMethod `agetFilterExtension7()Lorg/eclipse/jdt/ui/dialogs/ITypeInfoFilterExtension; InnerClasses   8 *+ * @   pY+."+&)M* ,,25N-@-;Y:66!2:* AEJާN\kP^hkPFGH G JILKFO-P1QJR\S^QkWlXnZ>ppRSTTU->VWJXYlZ[\]^-_b  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2215 Text-content-md5: be980a284ff27c30fda98e382b74051b Text-content-sha1: 01d234b0c65d730c3a8360c42dea88bd6630dc91 Content-length: 2274 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1\Korg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension1org/eclipse/jdt/ui/dialogs/TypeSelectionExtension__loggerLorg/apache/log4j/Logger;_classTypeFilterLjava/lang/Class; SignatureLjava/lang/Class<*>; _javaProject#Lorg/eclipse/jdt/core/IJavaProject;()VCode java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger ! getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger; # LineNumberTableLocalVariableTable7(Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class;)V:(Lorg/eclipse/jdt/core/IJavaProject;Ljava/lang/Class<*>;)V * & ,.-org/eclipse/core/runtime/Assert /0 isNotNull(Ljava/lang/Object;)V 2 4 thisMLorg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension; javaProject_pclassTypeFilter_pLocalVariableTypeTablegetFilterExtension7()Lorg/eclipse/jdt/ui/dialogs/ITypeInfoFilterExtension;=Morg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension$1 <? &@P(Lorg/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension;)VimplementInterface&(Ljava/lang/Class;Ljava/lang/String;)Z)(Ljava/lang/Class<*>;Ljava/lang/String;)Z E FG getInterfaces()[Ljava/lang/Class;  JLKjava/lang/String MNequals(Ljava/lang/Object;)Z P QR getSuperclass()Ljava/lang/Class; T ABclazz interfaceNameLjava/lang/String; interfaces SourceFile'FilteredJavaTypeSelectionExtension.java InnerClasses!    3"$ $%&' ({*)++,+*+1*,3$456 789% 567 89 8 :;3 $@%  56 AB C=*+*DY:6>2M+,HI*O+S$ab de)f+d4i% =U=VW X9=U  X YZ[ < Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1987 Text-content-md5: e7a0018d4cc15ee58d004102fdb2e83c Text-content-sha1: 8f74f39df3da7d0faf1cfa5d1a8151236cd15af4 Content-length: 2046 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1VIorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension$1java/lang/Object3org/eclipse/jdt/ui/dialogs/ITypeInfoFilterExtensionthis$0ILorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension;L(Lorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension;)VCode    ()VLineNumberTableLocalVariableTablethisKLorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension$1;select2(Lorg/eclipse/jdt/ui/dialogs/ITypeInfoRequestor;)Zjava/lang/StringBuilder -org/eclipse/jdt/ui/dialogs/ITypeInfoRequestor getPackageName()Ljava/lang/String;  !(Ljava/lang/String;)V # $%append(C)Ljava/lang/StringBuilder; ' ( getTypeName * $+-(Ljava/lang/String;)Ljava/lang/StringBuilder; - .toString 021Gorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension 34 _classLoaderLjava/lang/ClassLoader; 6870org/eclipse/egf/common/helper/ClassLoadingHelper 9: instantiate=(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Object; 0< =>_classTypeFilterLjava/lang/Class; @BAjava/lang/Class CD isInstance(Ljava/lang/Object;)ZtypeInfoRequestor_p/Lorg/eclipse/jdt/ui/dialogs/ITypeInfoRequestor;resultZclassNameBuilderLjava/lang/StringBuilder; classNameLjava/lang/String;objectLjava/lang/Object; SourceFile#FilteredTypeSelectionExtension.javaEnclosingMethod STgetFilterExtension7()Lorg/eclipse/jdt/ui/dialogs/ITypeInfoFilterExtension; InnerClasses   8 *+ * :   J=Y+."+&)N-,:* /5:* ;?=:?BC BEDGFAJ$K2MFOHQ>JJEFHGH,IJ$&KL2MNOPQ0RU  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1541 Text-content-md5: 7ef84f2026a7375554da00e02dd567fd Text-content-sha1: 4d5f2b76df4b736063674f42c14245b031557c9f Content-length: 1600 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1?Gorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension1org/eclipse/jdt/ui/dialogs/TypeSelectionExtension__loggerLorg/apache/log4j/Logger; _classLoaderLjava/lang/ClassLoader;_classTypeFilterLjava/lang/Class; SignatureLjava/lang/Class<*>;()VCode java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger ! getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger; # LineNumberTableLocalVariableTable+(Ljava/lang/ClassLoader;Ljava/lang/Class;)V.(Ljava/lang/ClassLoader;Ljava/lang/Class<*>;)V * & ,  . thisILorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension; classLoader_pclassTypeFilter_pLocalVariableTypeTablegetFilterExtension7()Lorg/eclipse/jdt/ui/dialogs/ITypeInfoFilterExtension;7Iorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension$1 69 &:L(Lorg/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension;)V SourceFile#FilteredTypeSelectionExtension.java Deprecated InnerClasses!    3"$  %&' (k*)*++*,-$01 23% /012 3 2 453 6Y*8$:%  /0;<=> 6 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1296 Text-content-md5: 7e8e74122d05fe3141fe06a87bbf3618 Text-content-sha1: 8bde33c7ec22cb94ca22cee11cce1da36a33542c Content-length: 1355 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1.>org/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper$1java/lang/Objectjava/lang/Runnablethis$0>Lorg/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper; val$result#[Lorg/eclipse/core/runtime/IStatus; val$file_p"Lorg/eclipse/core/resources/IFile; val$display!Lorg/eclipse/swt/widgets/Display;(Lorg/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper;[Lorg/eclipse/core/runtime/IStatus;Lorg/eclipse/core/resources/IFile;Lorg/eclipse/swt/widgets/Display;)VCode        ()VLineNumberTableLocalVariableTablethis@Lorg/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper$1;run #%$()VCode java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger  getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger;  LineNumberTableLocalVariableTable $ " this>Lorg/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper;makeFileWritableF(Lorg/eclipse/core/resources/IFile;)Lorg/eclipse/core/runtime/IStatus;* org/eclipse/core/runtime/IStatus ,.-org/eclipse/core/runtime/Status /0 CANCEL_STATUS"Lorg/eclipse/core/runtime/IStatus; 243org/eclipse/ui/PlatformUI 56isWorkbenchRunning()Z 28 9: getWorkbench()Lorg/eclipse/ui/IWorkbench; <>=org/eclipse/ui/IWorkbench ?@ getDisplay#()Lorg/eclipse/swt/widgets/Display;B>org/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper$1 AD "E(Lorg/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper;[Lorg/eclipse/core/runtime/IStatus;Lorg/eclipse/core/resources/IFile;Lorg/eclipse/swt/widgets/Display;)V GIHorg/eclipse/swt/widgets/Display JKsyncExec(Ljava/lang/Runnable;)V MONjava/lang/Runnable P runfile_p"Lorg/eclipse/core/resources/IFile;result#[Lorg/eclipse/core/runtime/IStatus;display!Lorg/eclipse/swt/widgets/Display;makeFileWritableRunnableLjava/lang/Runnable;X(Lorg/eclipse/core/resources/IFile;Ljava/lang/Object;)Lorg/eclipse/core/runtime/IStatus; []\ org/eclipse/core/resources/IFile ^6exists ,` a0 OK_STATUS Gc degetActiveShell!()Lorg/eclipse/swt/widgets/Shell; gih%org/eclipse/core/resources/IWorkspace jkVALIDATE_PROMPTLjava/lang/Object; mon*org/eclipse/core/resources/ResourcesPlugin pq getWorkspace)()Lorg/eclipse/core/resources/IWorkspace; gs tu validateEditY([Lorg/eclipse/core/resources/IFile;Ljava/lang/Object;)Lorg/eclipse/core/runtime/IStatus; )w x6isOKzjava/lang/StringBuilder|*UserEnforcedHelper.makeFileWritable(..) _ y~ "(Ljava/lang/String;)VCould not make y append-(Ljava/lang/String;)Ljava/lang/StringBuilder; [  getFullPath"()Lorg/eclipse/core/runtime/IPath; y -(Ljava/lang/Object;)Ljava/lang/StringBuilder; writable ! y toString  error(Ljava/lang/Object;)V display_pshellLorg/eclipse/swt/widgets/Shell;context loggerMessageLjava/lang/StringBuilder; SourceFileUserEnforcedHelper.java InnerClasses!  3  #!"  /*# ! %&'( C)Y+SM17;NAY*,+-C:- -F L,2 ) ,.+4/689?;!4C%&CQR 8ST%UV+WX'Y !+N+-+Z_:,G ,Gb: f:l[Y+SrN-v/yY{}:+W- >BDE HILN!P*T9VLWUX`YvZ\!H%&QRkS0i9Jk`! A Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/resource Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/resource/ExtendedUnmodifiableFile.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1297 Text-content-md5: 4725f9b275c54d127d76a6b103f5ef9c Text-content-sha1: fbce5bc3757cefa26c680b356535012f47fa8b3a Content-length: 1356 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 14Dorg/eclipse/egf/common/ui/internal/resource/ExtendedUnmodifiableFile(org/eclipse/core/internal/resources/File#(Lorg/eclipse/core/runtime/IPath;)VCode  *org/eclipse/core/resources/ResourcesPlugin  getWorkspace)()Lorg/eclipse/core/resources/IWorkspace;-org/eclipse/core/internal/resources/Workspace  R(Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/core/internal/resources/Workspace;)VLineNumberTableLocalVariableTablethisFLorg/eclipse/egf/common/ui/internal/resource/ExtendedUnmodifiableFile;path_p Lorg/eclipse/core/runtime/IPath; getContents(Z)Ljava/io/InputStream; Exceptions&org/eclipse/core/runtime/CoreException  ! getFullPath"()Lorg/eclipse/core/runtime/IPath; #%$org/eclipse/core/runtime/IPath &'toString()Ljava/lang/String; )+*(org/eclipse/egf/common/helper/FileHelper ,-readFileAsStream)(Ljava/lang/String;)Ljava/io/InputStream;force_pZ isReadOnly()Z SourceFileExtendedUnmodifiableFile.java!D *+ # $  A *"(+  ./01,3 23 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/validators Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/validators/JavaClassValidator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2390 Text-content-md5: 049a69d9b455d4c70b8579d4ad7cea5f Text-content-sha1: 06436d104d7bc74a2ce5614bf26f853fab2314f0 Content-length: 2449 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1e@org/eclipse/egf/common/ui/internal/validators/JavaClassValidatorDorg/eclipse/egf/common/ui/toolkit/validators/NotEmptyStringValidator _classLoaderLjava/lang/ClassLoader;_bundleLorg/osgi/framework/Bundle;_expectedClassTypeLjava/lang/Class; SignatureLjava/lang/Class<*>;F(Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class;)VI(Ljava/lang/ClassLoader;Lorg/osgi/framework/Bundle;Ljava/lang/Class<*>;)VCode 6org/eclipse/egf/common/ui/internal/validators/Messages ,JavaClassValidator_Error_Message_EMPTY_CLASSLjava/lang/String;  (Ljava/lang/String;)V      LineNumberTableLocalVariableTablethisBLorg/eclipse/egf/common/ui/internal/validators/JavaClassValidator; classLoader_pbundle_pexpectedClassType_pLocalVariableTypeTableisValid&(Ljava/lang/Object;)Ljava/lang/String; + ()-java/lang/String /100org/eclipse/egf/common/helper/ClassLoadingHelper 23 instantiate=(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Object; 576*org/eclipse/egf/common/helper/BundleHelper 28A(Ljava/lang/String;Lorg/osgi/framework/Bundle;)Ljava/lang/Object;:java/lang/StringBuilder < =/JavaClassValidator_Error_Message_UNABLE_TO_LOAD ,? @)valueOf 9 9C DEappend-(Ljava/lang/Object;)Ljava/lang/StringBuilder; 9G HItoString()Ljava/lang/String; KMLjava/lang/Class NO isInstance(Ljava/lang/Object;)Z 9Q R()V T U,JavaClassValidator_Error_Message_INSTANCE_OF 9W DX-(Ljava/lang/String;)Ljava/lang/StringBuilder; KZ [IgetNamevalue_pLjava/lang/Object; errorMessageobjectsetExpectedClassType(Ljava/lang/Class;)V(Ljava/lang/Class<*>;)V SourceFileJavaClassValidator.java!     **+*,*- 56 789!*"#$%& ' & ()}*+*M,tN*+,*.N*+,*4N-9Y;>A+BFM-*-J"9YP+BSV*YVFM, 2 @A C DE"F)G5J9KQM\N{R!*}"#}\]w^ o_]`a bP*+ Z[!"#& ' & cd Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/validators/Messages.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 790 Text-content-md5: 0ef859b0b42fa391a1003a73a7845d7e Text-content-sha1: 03584afde6e308afab9141b9a86a5643775100b1 Content-length: 849 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 16org/eclipse/egf/common/ui/internal/validators/Messagesorg/eclipse/osgi/util/NLS BUNDLE_NAMELjava/lang/String; ConstantValue 6org.eclipse.egf.common.ui.internal.validators.messages,JavaClassValidator_Error_Message_EMPTY_CLASS,JavaClassValidator_Error_Message_INSTANCE_OF/JavaClassValidator_Error_Message_UNABLE_TO_LOAD()VCode  initializeMessages&(Ljava/lang/String;Ljava/lang/Class;)VLineNumberTableLocalVariableTable  this8Lorg/eclipse/egf/common/ui/internal/validators/Messages; SourceFile Messages.java!    , 3* #%  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/internal/validators/messages.properties Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 622 Text-content-md5: 7960e4a554b5a815a5215816323ceb46 Text-content-sha1: d8c63ed7eaef97fbe885b5d27a780e1bfa29f4bd Content-length: 632 PROPS-END ## # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ## JavaClassValidator_Error_Message_EMPTY_CLASS=A Java class must be entered JavaClassValidator_Error_Message_INSTANCE_OF=\ is not an instance of JavaClassValidator_Error_Message_UNABLE_TO_LOAD=Unable to load Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/resource Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/resource/BasicImageRegistry$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 830 Text-content-md5: 6fe9e0a4787d58c5987845da666e87a0 Text-content-sha1: f96cba5da51e1ac3487d76be6a96227a10d87251 Content-length: 889 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1"7org/eclipse/egf/common/ui/resource/BasicImageRegistry$1java/lang/Objectjava/lang/Runnablethis$07Lorg/eclipse/egf/common/ui/resource/BasicImageRegistry;:(Lorg/eclipse/egf/common/ui/resource/BasicImageRegistry;)VCode    ()VLineNumberTableLocalVariableTablethis9Lorg/eclipse/egf/common/ui/resource/BasicImageRegistry$1;run 5org/eclipse/egf/common/ui/resource/BasicImageRegistry handleDisplayDisposedEvent SourceFileBasicImageRegistry.javaEnclosingMethod  hookDisplayDispose$(Lorg/eclipse/swt/widgets/Display;)V InnerClasses   8 *+ * c   6*  ef !  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/resource/BasicImageRegistry.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2902 Text-content-md5: ee462d31206493c36744f14bf9991e06 Text-content-sha1: 7821683bf50e8f1c346579ec75e684242c2111d3 Content-length: 2961 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 15org/eclipse/egf/common/ui/resource/BasicImageRegistryjava/lang/Object __instance7Lorg/eclipse/egf/common/ui/resource/BasicImageRegistry; _registryLjava/util/Map; Signature]Ljava/util/Map;()VCode     LineNumberTableLocalVariableTable org/eclipse/ui/PlatformUI  getWorkbench()Lorg/eclipse/ui/IWorkbench; org/eclipse/ui/IWorkbench   getDisplay#()Lorg/eclipse/swt/widgets/Display; " #$(Lorg/eclipse/swt/widgets/Display;)Vthis 'java/util/HashMap &) *(I)V ,  . /#hookDisplayDispose display_p!Lorg/eclipse/swt/widgets/Display; getInstance9()Lorg/eclipse/egf/common/ui/resource/BasicImageRegistry;getImageN(Lorg/eclipse/jface/resource/ImageDescriptor;)Lorg/eclipse/swt/graphics/Image; 798 java/util/Map :;get&(Ljava/lang/Object;)Ljava/lang/Object;=org/eclipse/swt/graphics/Image ?A@*org/eclipse/jface/resource/ImageDescriptor BC createImage"()Lorg/eclipse/swt/graphics/Image; 7E FGput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;imageDescriptor_p,Lorg/eclipse/jface/resource/ImageDescriptor;result Lorg/eclipse/swt/graphics/Image;remove 7N L;P7org/eclipse/egf/common/ui/resource/BasicImageRegistry$1 OR S:(Lorg/eclipse/egf/common/ui/resource/BasicImageRegistry;)V UWVorg/eclipse/swt/widgets/Display XY disposeExec(Ljava/lang/Runnable;)VdisplayhandleDisplayDisposedEvent 7] ^_values()Ljava/util/Collection; acbjava/util/Collection deiterator()Ljava/util/Iterator; gihjava/util/Iterator jknext()Ljava/lang/Object; <m no isDisposed()Z <q r dispose gt uohasNext 7w x clearentriesLjava/util/Iterator; currentImageLocalVariableTypeTable6Ljava/util/Iterator; SourceFileBasicImageRegistry.java InnerClasses!     / Y    ; *! * +  $# V*%*&Y(+*+-2356$01 23 $>45 y'M*++6M*++,DW,GIKLN%P '$'HI%JKL5 B*++M<Z$HI/# E +OY*QT c h $ Z1[  C*+\`L+fJ(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)VCode       LineNumberTableLocalVariableTablethisFLorg/eclipse/egf/common/ui/toolkit/adapters/BooleanFieldEditorAdapter;name_plabel_pparent_pK(Ljava/lang/String;Ljava/lang/String;ILorg/eclipse/swt/widgets/Composite;)V !  labelText_pstyle_pIgetLabel!()Lorg/eclipse/swt/widgets/Label; ( )&getLabelControlgetValueControl#()Lorg/eclipse/swt/widgets/Control; - ./getChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button;getHelperControlgetErrorMessage()Ljava/lang/String; getFieldName 5 62getPreferenceName getFieldPage(()Lorg/eclipse/jface/dialogs/DialogPage; : ;8getPage getValidator;()Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator; isFocused()Z A *+ C 0+ EGForg/eclipse/swt/widgets/Control H?isFocusControl valueControl!Lorg/eclipse/swt/widgets/Control; helperControlfocusedZisHelperEnabled EP Q? isEnabledenabled defaultLayout()V VXWorg/eclipse/swt/widgets/Label YZ getParent%()Lorg/eclipse/swt/widgets/Composite; \^]!org/eclipse/swt/widgets/Composite _` getLayout"()Lorg/eclipse/swt/widgets/Layout;b!org/eclipse/swt/layout/GridLayout ad e$ numColumns g hi fillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)Vparentlayout#Lorg/eclipse/swt/layout/GridLayout;(I)V o pmadjustForNumColumns numColumns_p setFieldPage)(Lorg/eclipse/jface/dialogs/DialogPage;)V u vssetPagepage_p&Lorg/eclipse/jface/dialogs/DialogPage; setValidator<(Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;)V validator_psetHelperEnabled(Z)V E } setEnabled enabled_pisValueEnabledsetValueEnabled SourceFileBooleanFieldEditorAdapter.java!   x*+,-****-, #&-.*   *+, ****4 #&564 " #$%&/*'< *+3 **,C  0+,L 12/*S 32/*4Z 78/*9a <=/*h >?"*@L*BM>++D>, ,D>"op q rsuv x*"IJ KJ LMN?`<*BM,,O<  RM KJSTd*'UL+[aM*+,cf j klkm>*n q$rs>*+t wxyz>*+ { |}Y*BM,,~  M KJ?`<*@M,,O<  RM IJ}Y*@M,,~  M IJ Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/adapters/StringButtonFieldEditorAdapter.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 6256 Text-content-md5: d8077034697d986a89ac68096dbe9aec Text-content-sha1: 4fc2f3d45528a9d1970a52015fd92ab54b97aa6d Content-length: 6315 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Iorg/eclipse/egf/common/ui/toolkit/adapters/StringButtonFieldEditorAdapter4org/eclipse/jface/preference/StringButtonFieldEditor5org/eclipse/egf/common/ui/toolkit/fields/IFieldEditor _labelStyleI _valueStyle_parent#Lorg/eclipse/swt/widgets/Composite; _validator9Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;J(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)VCode  L(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;II)VLineNumberTableLocalVariableTablethisKLorg/eclipse/egf/common/ui/toolkit/adapters/StringButtonFieldEditorAdapter;name_pLjava/lang/String; labelText_pparent_p  ()V   "  $ %&init)(Ljava/lang/String;Ljava/lang/String;II)V ( )* createControl&(Lorg/eclipse/swt/widgets/Composite;)V labelStyle_p valueStyle_p doCheckState()Z 0 -. 2 4 56getStringValue()Ljava/lang/String; 8:97org/eclipse/egf/common/ui/toolkit/validators/IValidator ;<isValid&(Ljava/lang/Object;)Ljava/lang/String; > ?@setErrorMessage(Ljava/lang/String;)VZ errorMessage checkState E ;. G H.isEmptyStringAllowed J KLgetTextControl ()Lorg/eclipse/swt/widgets/Text; NPOorg/eclipse/swt/widgets/Text Q6getText SUTjava/lang/String V6trim SX YZlength()I 0 ] ^clearErrorMessage ` a6getErrorMessage c d@showErrorMessageresultwasValidemptyStringAllowed textFieldLorg/eclipse/swt/widgets/Text;txt lnmorg/eclipse/core/runtime/Assert op isNotNull(Ljava/lang/Object;)V r stcheckLabelStyle(I)I v wtcheckValueStyle y z@ setLabelText | }@setPreferenceNametext_pnewStyle  !org/eclipse/swt/layout/GridLayout   ZgetNumberOfControls  numColumns horizontalSpacing !org/eclipse/swt/widgets/Composite  setLayout#(Lorg/eclipse/swt/widgets/Layout;)V  doFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)Vlayout#Lorg/eclipse/swt/layout/GridLayout;  numColumns_p changePressedgetLabel!()Lorg/eclipse/swt/widgets/Label;  getLabelControlgetValueControl#()Lorg/eclipse/swt/widgets/Control;getHelperControl  getChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button; defaultLayout org/eclipse/swt/widgets/Label  getParent%()Lorg/eclipse/swt/widgets/Composite;  getLayout"()Lorg/eclipse/swt/widgets/Layout;   fillIntoGridparent getFieldName  6getPreferenceName getFieldPage(()Lorg/eclipse/jface/dialogs/DialogPage;  getPage getValidator;()Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator; isFocused   org/eclipse/swt/widgets/Control .isFocusControl valueControl!Lorg/eclipse/swt/widgets/Control; helperControlfocusedisHelperEnabled . isEnabledenabledisValueEnabled(I)V  adjustForNumColumns setFieldPage)(Lorg/eclipse/jface/dialogs/DialogPage;)V  setPagepage_p&Lorg/eclipse/jface/dialogs/DialogPage;setHelperEnabled(Z)V  setEnabled enabled_p setValidator<(Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;)V validator_psetValueEnabledsetFocus . SourceFile#StringButtonFieldEditorAdapter.java!   X *+,-@ > ?*      **@*!*+,#*-'J% (QRS>      + ,-./*/<*1$*1*37M,<*,=[\ ^`$b(c-f /*;ABC. c<*D=*F><*I:M:RW <*[~< *\*_:*bFnpr stvwxz&{;}BJQU[aHcaeA\fA WgAKhi&=j[B%&&+k,k**q**u!*,x*+{ %4&&&~&+&,sty=~@~@="  +wt6,)***+YM,*,+,*+,  ) **  I*+   6/* /*I 3 **  d*L+M*+,   6/* /* /*1 ."*L*M>++>, ,Ȁ>"    *"  A.`<*M,,<   A .`<*M,,<'() *, A >*ر 34>*+ݱ :;Y*M,,AB CE A >*+1 KL Y*M,,RS TV A O*L++W]^ _a  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/AbstractFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 6354 Text-content-md5: ad4a5a11abbd822e648fc1d41611354e Text-content-sha1: bb56ff8f2891647079d211eb078ba6ad83bf0931 Content-length: 6413 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1()VCode         LineNumberTableLocalVariableTablethis>Lorg/eclipse/egf/common/ui/toolkit/fields/AbstractFieldEditor;J(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)V ! "L(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;II)Vname_p labelText_pparent_p#Lorg/eclipse/swt/widgets/Composite; ( )*init)(Ljava/lang/String;Ljava/lang/String;II)V , -. createControl&(Lorg/eclipse/swt/widgets/Composite;)V labelStyle_p valueStyle_p 243org/eclipse/core/runtime/Assert 56 isNotNull(Ljava/lang/Object;)V 8 9:checkLabelStyle(I)I < =:checkValueStyle ? @AsetPreferenceName(Ljava/lang/String;)V C DA setLabelTexttext_pnewStyleH!org/eclipse/swt/layout/GridLayout G K LMgetNumberOfControls()I GO P numColumns GR ShorizontalSpacing UWV!org/eclipse/swt/widgets/Composite XY setLayout#(Lorg/eclipse/swt/widgets/Layout;)V [ \]doFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)Vlayout#Lorg/eclipse/swt/layout/GridLayout;getLabelControlD(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Label; c `aeorg/eclipse/swt/layout/GridData d dh ihorizontalAlignment kmlorg/eclipse/swt/widgets/Label n6 setLayoutData kr st setAlignment(I)VlabelLorg/eclipse/swt/widgets/Label;gd!Lorg/eclipse/swt/layout/GridData; alignementsetErrorMessage message_pgetValue5(Lorg/eclipse/swt/widgets/Control;)Ljava/lang/Object;getLabel!()Lorg/eclipse/swt/widgets/Label;  `getValueControl#()Lorg/eclipse/swt/widgets/Control;getHelperControlgetErrorMessage()Ljava/lang/String; getValidator;()Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator; setValidator<(Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;)V validator_pisValid()Z   |} 7org/eclipse/egf/common/ui/toolkit/validators/IValidator &(Ljava/lang/Object;)Ljava/lang/String;  getPage(()Lorg/eclipse/jface/dialogs/DialogPage; $org/eclipse/jface/dialogs/DialogPage  AshowErrorMessage  clearErrorMessageZcontrol!Lorg/eclipse/swt/widgets/Control;valueLjava/lang/Object; oldMessage doCheckState   getFieldName  getPreferenceName getFieldPage setFieldPage)(Lorg/eclipse/jface/dialogs/DialogPage;)V  setPagepage_p&Lorg/eclipse/jface/dialogs/DialogPage;isHelperEnabled  org/eclipse/swt/widgets/Control  isEnabledenabled helperControlsetHelperEnabled(Z)V  setEnabled enabled_pisValueEnabled valueControlsetValueEnabledsetFocus  isFocused isFocusControlfocused defaultLayout k  getParent%()Lorg/eclipse/swt/widgets/Composite; U  getLayout"()Lorg/eclipse/swt/widgets/Layout;  ] fillIntoGridparent  tadjustForNumColumns numColumns_p SourceFileAbstractFieldEditor.java!   Y**@***3% (+.5 X *+,-@  ? @*  #  $  %&"***@****+,'*-+"K% (+.L$M)N>**# *$ *%&*/*0)*&+1,1**7**;*+>*,BXY[\^ _%`4&&# &E &/&09:y=~@~@="efg ijlmo /F=:6y0-.w%GYIM,*JN,Q+,T*+,NZ$ %%%&^_`aA*+bMdYfN-g,-jo*~6 p*~6@6,q,. !&/49?4AA%&;uv3wx! yzA>*+ { \]|}~/* /* /* >*+  k<*c*M*,N*:**-*<*0*****6  (5<JUei4ki[UO /* /* /*  >*+ `<*M,,<    Y*M,,Ʊ'( )+  `<*M,,<123 46  Y*M,,Ʊ=> ?A  O*L++WHI JL "*L*M>++>, ,р>"RS T UVXY [*"  d*L+GM*+,Nޱbcde & ^_^t>* kl Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1154 Text-content-md5: 139e1674f1643f8ac23eacc639f32a13 Text-content-sha1: a93d68d117f1e33a45afa6e3cf15ea4bddb1aeb4 Content-length: 1213 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1,Aorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor$1java/lang/Object.org/eclipse/jface/util/IPropertyChangeListenerthis$0ALorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor;D(Lorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor;)VCode    ()VLineNumberTableLocalVariableTablethisCLorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor$1;propertyChange/(Lorg/eclipse/jface/util/PropertyChangeEvent;)V *org/eclipse/jface/util/PropertyChangeEvent  getNewValue()Ljava/lang/Object;  ?org/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor !"_selectedRadioButtonValueLjava/lang/Object;event_p,Lorg/eclipse/jface/util/PropertyChangeEvent; SourceFileCRadioGroupFieldEditor.javaEnclosingMethod )* initialize'(Lorg/eclipse/swt/widgets/Composite;Z)V InnerClasses   8 *+ * Y   D * + ^ _  #$%&'(+  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3027 Text-content-md5: fa94a716600da4a43348a3a1b3bdf14a Text-content-sha1: 490a91b012521cb8aacd9fe276f399c70cc6def3 Content-length: 3086 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1t?org/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor2org/eclipse/jface/preference/RadioGroupFieldEditor_selectedRadioButtonValueLjava/lang/Object;_parent#Lorg/eclipse/swt/widgets/Composite; _useGroupZ_(Ljava/lang/String;Ljava/lang/String;I[[Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)VCode    initialize'(Lorg/eclipse/swt/widgets/Composite;Z)VLineNumberTableLocalVariableTablethisALorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor;name_pLjava/lang/String; labelText_p numColumns_pIlabelAndValues_p[[Ljava/lang/String;parent_p`(Ljava/lang/String;Ljava/lang/String;I[[Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Z)V "  useGroup_p%Aorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor$1 $' (D(Lorg/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor;)V * +,setPropertyChangeListener3(Lorg/eclipse/jface/util/IPropertyChangeListener;)V .  0 selectRadioButtonFor(Ljava/lang/Object;)V 4 56getRadioBoxControlH(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Composite; 8:9!org/eclipse/swt/widgets/Composite ;< getChildren$()[Lorg/eclipse/swt/widgets/Control;>org/eclipse/swt/widgets/Button =@ ABgetData()Ljava/lang/Object; DFEjava/lang/Object GHequals(Ljava/lang/Object;)Z =J KL setSelection(Z)V N value_pradioButtonGroupbuttons"[Lorg/eclipse/swt/widgets/Control;control!Lorg/eclipse/swt/widgets/Control; radioButton Lorg/eclipse/swt/widgets/Button;radioButtonValuegetSelectedRadioButtondoFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V\org/eclipse/swt/layout/GridData [^ _()V [a bhorizontalAlignment [d ehorizontalSpan gihorg/eclipse/swt/widgets/Control j2 setLayoutData l YZparent numColumnsgd!Lorg/eclipse/swt/layout/GridData; SourceFileCRadioGroupFieldEditor.java InnerClasses!   w*+,*; <=>  *+,!*P QRH#  i*$Y*&)*+-*/XY X cef # 12  ^+**-3M,7N-Y:6692:=:?: + CI* M IƱ6 nortv'w.y5z>|D~MSv]H^^OPPKQR',ST.%UV5W XB /*M YZ 2*/'*+3N[Y]:`c-f *+k" "+1422m2n STopqrs $ Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 967 Text-content-md5: 54e4ca1638885ddbd1a9451e9999062c Text-content-sha1: dc26e1345edf567d454062eadb42a101529225a5 Content-length: 1026 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1#=org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$1!org/eclipse/swt/events/KeyAdapterthis$0=Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;@(Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;)VCode    ()VLineNumberTableLocalVariableTablethis?Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$1; keyReleased$(Lorg/eclipse/swt/events/KeyEvent;)V ;org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor  valueChangedevent_p!Lorg/eclipse/swt/events/KeyEvent; SourceFileCStringFieldEditor.javaEnclosingMethod !getTextControlC(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Text; InnerClasses  8 *+ *  ;   @*  >?"  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$2.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1000 Text-content-md5: a54372637a035453eec1b1d6f2eb0f61 Text-content-sha1: 2826efeefe1ed2c66d48f2bb82de3051d79f859c Content-length: 1059 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1%=org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$2java/lang/Object%org/eclipse/swt/events/ModifyListenerthis$0=Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;@(Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;)VCode    ()VLineNumberTableLocalVariableTablethis?Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$2; modifyText'(Lorg/eclipse/swt/events/ModifyEvent;)V ;org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor  valueChangedevent_p$Lorg/eclipse/swt/events/ModifyEvent; SourceFileCStringFieldEditor.javaEnclosingMethod "#getTextControlC(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Text; InnerClasses   8 *+ * C   @*  EF !$  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$3.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 962 Text-content-md5: c709085b467c51394d467c8d50673619 Text-content-sha1: d296583891d791086bd9a7af97dcbdf6c9c4aae9 Content-length: 1021 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1#=org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$3!org/eclipse/swt/events/KeyAdapterthis$0=Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;@(Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;)VCode    ()VLineNumberTableLocalVariableTablethis?Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$3; keyPressed$(Lorg/eclipse/swt/events/KeyEvent;)V ;org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor access$0event_p!Lorg/eclipse/swt/events/KeyEvent; SourceFileCStringFieldEditor.javaEnclosingMethod !getTextControlC(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Text; InnerClasses  8 *+ *  J   @*  NO"  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$4.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1125 Text-content-md5: 2a7ce273f417960c9c5db5d833d912a3 Text-content-sha1: d80cd6bfb03b1bb69f75ae35fecf5c53bf94fc82 Content-length: 1184 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1*=org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$4#org/eclipse/swt/events/FocusAdapterthis$0=Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;@(Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;)VCode    ()VLineNumberTableLocalVariableTablethis?Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$4; focusGained&(Lorg/eclipse/swt/events/FocusEvent;)V ;org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor refreshValidStateevent_p#Lorg/eclipse/swt/events/FocusEvent; focusLost   valueChanged ! "access$0 SourceFileCStringFieldEditor.javaEnclosingMethod '(getTextControlC(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Text; InnerClasses  8 *+ *  Q   @*  TU K* * Z[\#$%&)  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$5.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1039 Text-content-md5: 578fe77c3900d3cbaa86783866d65536 Text-content-sha1: 0b597240fdb442b18f4747339cf597b01e01b1a2 Content-length: 1098 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1&=org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$5java/lang/Object&org/eclipse/swt/events/DisposeListenerthis$0=Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;@(Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;)VCode    ()VLineNumberTableLocalVariableTablethis?Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$5;widgetDisposed((Lorg/eclipse/swt/events/DisposeEvent;)V ;org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor  _textFieldLorg/eclipse/swt/widgets/Text;event_p%Lorg/eclipse/swt/events/DisposeEvent; SourceFileCStringFieldEditor.javaEnclosingMethod #$getTextControlC(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Text; InnerClasses   8 *+ * d   A *  fg   !"%  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 9822 Text-content-md5: 8d7cd15512456709b651140104654a0d Text-content-sha1: 1e1192bdcad1a4701ef4a9955abbf562290fa76f Content-length: 9881 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1;org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor()VCode  java/lang/Class !" getPackage()Ljava/lang/Package; $&%java/lang/Package '(getName()Ljava/lang/String; *,+org/apache/log4j/Logger -. getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger; 0  2  LineNumberTableLocalVariableTableJ(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)V 8 59L(Ljava/lang/String;Ljava/lang/String;ILorg/eclipse/swt/widgets/Composite;I)Vthis=Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;name_plabel_pparent_p#Lorg/eclipse/swt/widgets/Composite;K(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;I)V valueStyle_p C 5DM(Ljava/lang/String;Ljava/lang/String;IILorg/eclipse/swt/widgets/Composite;I)Vwidth_p G 5 I  K M O Q  S  U VWinit)(Ljava/lang/String;Ljava/lang/String;II)V Y Z[setValidateStrategy(I)V]StringFieldEditor.errorMessage _a`)org/eclipse/jface/resource/JFaceResources bc getString&(Ljava/lang/String;)Ljava/lang/String; e fgsetErrorMessage(Ljava/lang/String;)V i jk createControl&(Lorg/eclipse/swt/widgets/Composite;)V strategy_padjustForNumColumns o  qsrorg/eclipse/swt/widgets/Text tu getLayoutData()Ljava/lang/Object;worg/eclipse/swt/layout/GridData vy z horizontalSpan v| }grabExcessHorizontalSpace numColumns_pgd!Lorg/eclipse/swt/layout/GridData; checkState()Z q (getText java/lang/String (trim length()I   doCheckState  clearErrorMessage  (getErrorMessage  gshowErrorMessageresultwasValidtxtdoFillIntoGrid'(Lorg/eclipse/swt/widgets/Composite;I)V  getLabelControlD(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Label;  getTextControlC(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Text; vGorg/eclipse/swt/graphics/GC 5&(Lorg/eclipse/swt/graphics/Drawable;)VX  textExtent4(Ljava/lang/String;)Lorg/eclipse/swt/graphics/Point; org/eclipse/swt/graphics/Point x v  widthHint dispose v horizontalAlignment q getStyle v verticalAlignment v  verticalSpan v grabExcessVerticalSpace q  setLayoutData(Ljava/lang/Object;)VgcLorg/eclipse/swt/graphics/GC;extent Lorg/eclipse/swt/graphics/Point;doLoad  getPreferenceStore1()Lorg/eclipse/jface/preference/IPreferenceStore;  (getPreferenceName a-org/eclipse/jface/preference/IPreferenceStore q gsetTextvalue doLoadDefault cgetDefaultString   valueChangeddoStore setValue'(Ljava/lang/String;Ljava/lang/String;)VgetNumberOfControlsgetStringValue ()Lorg/eclipse/swt/widgets/Text;checkValueStyle(I)I   _valueStylenewStyle   doTextControlD(Lorg/eclipse/swt/widgets/Composite;I)Lorg/eclipse/swt/widgets/Text; !org/eclipse/swt/widgets/Composite getFont!()Lorg/eclipse/swt/graphics/Font; q  setFont"(Lorg/eclipse/swt/graphics/Font;)V =org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$1   5@(Lorg/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor;)V q addKeyListener'(Lorg/eclipse/swt/events/KeyListener;)V=org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$2  q addModifyListener*(Lorg/eclipse/swt/events/ModifyListener;)V=org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$3  =org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$4  q! "#addFocusListener)(Lorg/eclipse/swt/events/FocusListener;)V%java/lang/StringBuilder'(CStringFieldEditor.getTextControl(..) _ $) 5g+Unknown validate strategy $- ./append-(Ljava/lang/String;)Ljava/lang/StringBuilder; $1 2(toString *4 5error7=org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor$5 6 q: ;<addDisposeListener+(Lorg/eclipse/swt/events/DisposeListener;)V q> ?[ setTextLimit A BC checkParentG(Lorg/eclipse/swt/widgets/Control;Lorg/eclipse/swt/widgets/Composite;)V loggerMessageLjava/lang/StringBuilder; qG 5style_pisEmptyStringAllowedisValidrefreshValidState M setEmptyStringAllowed(Z)V allowed_psetFocus qS QsetStringValue V WXequals(Ljava/lang/Object;)Zvalue_plimit_p\-CStringFieldEditor.setValidateStrategy(..) _ ^Validation strategy unknown ` aOsetPresentsDefaultValue c Kefield_editor_is_valid g hifireStateChanged(Ljava/lang/String;ZZ)Vkfield_editor_value m nofireValueChanged9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)VoldStatenewValue setEnabled'(ZLorg/eclipse/swt/widgets/Composite;)V u rs qw rO enabled_pgetHelperControl#()Lorg/eclipse/swt/widgets/Control;getValue5(Lorg/eclipse/swt/widgets/Control;)Ljava/lang/Object; control_p!Lorg/eclipse/swt/widgets/Control;getValueControlaccess$0 SourceFileCStringFieldEditor.java InnerClasses!          ;#)/13)W$456Z*+,1-73 a b4*:;< = >?5@c *+,1-73 m n44 :; <  =  >? A 59m *+,B3 z {4> :; <  =  E  >? A 5DQ*F*H*J*1L*1N*P*R*+,@T*L*X*H*\^d*h3:, /258!;&16<AJP4HQ:;Q< Q= QE Ql Q>?QA m[n$*npvM,dx,,x{3 #4 $:;$~  f<*H=*P<*n<*nN-*P<*< * **3:!8IQX\d4*f:;d_!E ?*+W**+nvYN-dx*L1<Y*n::-*Lh : --{*n~---*n-α5OO3R(5>OQVYafkw|4>:;>?~ x5,>p,*n'**۹L*n++*+J3&+4,:; f"*n**۹L*n+*3!4":; C***n3 4 :;,34 :;(O*n *n**۹3  4 :;/*n34 :;r =~ =*=3" #'(*4  :; A  V*n**+*n*n+*R^=+*n Y* S*nY*A*nY**nY* $Y&(M,*,W/,03*n6Y*89*N*n*N= **n+@*n3N6789<;KANC]H`JoQ~^`abdijmo4 :;>?DEH qY+F3y4  :; >? H I/*P34 :;J/*H34 :;K7 **LH3 4  :;NO>*P3 4:;PQB*n *nRW34 :;Tg3+M*n,,M**nJ*J,U*n,*3&   &.24 3:;3Y 1 ?[U*N*n *n=3 4:;Z Z[4  *R $Y[(M,],W/,033!)34 4:;4Y !DE7 **3 4  :;G*_*H<*b*H*d*Hf*nM,*JU*j*J,l*,J3*  "*5AF4 G:; =p*q rsV*,t*,v34 :;x>?yz,34 :;{|<*n3 4:;}~z/*n34 :;%*34* 6 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/IFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 896 Text-content-md5: f25850c39282b0bf0480b62107db3c54 Text-content-sha1: 6f2430b996988dc05753abd2da5628fe86d4163c Content-length: 955 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1$5org/eclipse/egf/common/ui/toolkit/fields/IFieldEditorjava/lang/Object getFieldName()Ljava/lang/String;getLabel!()Lorg/eclipse/swt/widgets/Label;getValueControl#()Lorg/eclipse/swt/widgets/Control;getHelperControlgetErrorMessage setValidator<(Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;)V getValidator;()Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;isValid()ZsetValueEnabled(Z)VsetHelperEnabledisValueEnabledisHelperEnabled setFieldPage)(Lorg/eclipse/jface/dialogs/DialogPage;)V getFieldPage(()Lorg/eclipse/jface/dialogs/DialogPage;setFocus()V isFocused defaultLayoutlayout(I)V SourceFileIFieldEditor.java     !"# Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/Messages.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1244 Text-content-md5: b04f6060f3d3aca974a7e0f66f83daae Text-content-sha1: 81e8d9a8eba9cbb62f8b1ece5e2d0739b5aeb810 Content-length: 1303 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1?1org/eclipse/egf/common/ui/toolkit/fields/Messagesjava/lang/Object BUNDLE_NAMELjava/lang/String; ConstantValue 1org.eclipse.egf.common.ui.toolkit.fields.messagesRESOURCE_BUNDLELjava/util/ResourceBundle;()VCode java/util/ResourceBundle  getBundle.(Ljava/lang/String;)Ljava/util/ResourceBundle;  LineNumberTableLocalVariableTable   this3Lorg/eclipse/egf/common/ui/toolkit/fields/Messages; getString&(Ljava/lang/String;)Ljava/lang/String; ! #java/lang/StringBuilder %'&java/lang/String ()valueOf(C)Ljava/lang/String; "+ ,(Ljava/lang/String;)V ". /0append-(Ljava/lang/String;)Ljava/lang/StringBuilder; "2 /3(C)Ljava/lang/StringBuilder; "5 67toString()Ljava/lang/String;9"java/util/MissingResourceExceptionkey_pe$Ljava/util/MissingResourceException; SourceFile Messages.java!  -   3*   f"* L"Y!$**-!148&' (": ;<=> Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/StringBrowserFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2191 Text-content-md5: 81293ea2cda9127e25243f8b0024c769 Text-content-sha1: 0bdd02789844f6afc254fd2e1154b95a13b2cb86 Content-length: 2250 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1HAorg/eclipse/egf/common/ui/toolkit/fields/StringBrowserFieldEditorIorg/eclipse/egf/common/ui/toolkit/adapters/StringButtonFieldEditorAdapter_selectedObjectLjava/lang/Object;_labelProvider*Lorg/eclipse/jface/viewers/ILabelProvider;t(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/viewers/ILabelProvider;)VCode  v(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;Lorg/eclipse/jface/viewers/ILabelProvider;II)VLineNumberTableLocalVariableTablethisCLorg/eclipse/egf/common/ui/toolkit/fields/StringBrowserFieldEditor;name_pLjava/lang/String;label_pparent_p#Lorg/eclipse/swt/widgets/Composite;labelProvider_p  L(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;II)V     labelStyle_pI valueStyle_pgetChangeControlE(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Button;&%StringBrowserFieldEditor.button.label (*)1org/eclipse/egf/common/ui/toolkit/fields/Messages +, getString&(Ljava/lang/String;)Ljava/lang/String; . /0setChangeButtonText(Ljava/lang/String;)V 2 #$getCurrentSelection()Ljava/lang/Object;setCurrentSelection(Ljava/lang/Object;)V 8:9(org/eclipse/jface/viewers/ILabelProvider ;<getText&(Ljava/lang/Object;)Ljava/lang/String; > ?0setStringValueobject_plabel changePressed()Ljava/lang/String;E SourceFileStringBrowserFieldEditor.java!  d*+,-@  / 04  *+,-**C EFH !"!#$ G*%'-*+1 N P34 /*X 56 |&*+M***7M,*,=`abce f%h &&@ABC -Do FG Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/ValidatingStringFieldEditor.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1956 Text-content-md5: 051e65b9381c8dcd71336d8f6da51f97 Text-content-sha1: ad9ba9c2d4941db39dda17b1da3c0053e2505fbb Content-length: 2015 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1BDorg/eclipse/egf/common/ui/toolkit/fields/ValidatingStringFieldEditor;org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditorJ(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;)VCode  LineNumberTableLocalVariableTablethisFLorg/eclipse/egf/common/ui/toolkit/fields/ValidatingStringFieldEditor;name_pLjava/lang/String;label_pparent_p#Lorg/eclipse/swt/widgets/Composite;K(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/swt/widgets/Composite;I)V  style_pIL(Ljava/lang/String;Ljava/lang/String;ILorg/eclipse/swt/widgets/Composite;I)V  width_pM(Ljava/lang/String;Ljava/lang/String;IILorg/eclipse/swt/widgets/Composite;I)V   strategy_p doCheckState()Z # ! % &' getValidator;()Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator; ) *+getStringValue()Ljava/lang/String; -/.7org/eclipse/egf/common/ui/toolkit/validators/IValidator 01isValid&(Ljava/lang/Object;)Ljava/lang/String; 3 45setErrorMessage(Ljava/lang/String;)VZ errorMessage(Z)Z : ;<refreshValidState()V > 0!force_p SourceFile ValidatingStringFieldEditor.java!T*+,- !" * ` *+,- - . 4    l *+, : ; >     x*+, I J H  !/*"<*$$*$*(,M,<*,2 RS UW$Y(Z-] / *06708I *9*= fgi  ?6@A Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/fields/messages.properties Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 612 Text-content-md5: 8af4f0e239eb9a0241bfabda131de657 Text-content-sha1: 08c6e1629c58683d55a878b73df86b661fc096e8 Content-length: 622 PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### StringBrowserFieldEditor.button.label=Browse... Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/internal Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/internal/IToolkitConstants.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 232 Text-content-md5: 3cf7c13f6ea9674af98f1cd54d7b3096 Text-content-sha1: 21df3070e0a195058deecc86675ff02f94466888 Content-length: 291 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 (II)VCode   ()V    LineNumberTableLocalVariableTablethisCLorg/eclipse/egf/common/ui/toolkit/internal/StringMatcher$Position;start_pend_pgetStart()IgetEnd SourceFileStringMatcher.java InnerClasses8org/eclipse/egf/common/ui/toolkit/internal/StringMatcherPosition!  Y* **45 67  /*>  /*F   Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/internal/StringMatcher.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 5709 Text-content-md5: 06da0b9909aac222860d06a4efdcc2a4 Text-content-sha1: 90512efd85b51d5d902c3c73fd1d865f27250217 Content-length: 5768 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 18org/eclipse/egf/common/ui/toolkit/internal/StringMatcherjava/lang/ObjectfPatternLjava/lang/String;fLengthIfIgnoreWildCardsZ fIgnoreCasefHasLeadingStarfHasTrailingStar fSegments[Ljava/lang/String;fBoundfSingleWildCardC ConstantValue(Ljava/lang/String;ZZ)VCode  ()V  "java/lang/IllegalArgumentException  ! # %  ')(java/lang/String *+length()I -  / 0parseNoWildCards 2 3parseWildCardsLineNumberTableLocalVariableTablethis:Lorg/eclipse/egf/common/ui/toolkit/internal/StringMatcher;pattern ignoreCaseignoreWildCardsfindY(Ljava/lang/String;II)Lorg/eclipse/egf/common/ui/toolkit/internal/StringMatcher$Position;>Aorg/eclipse/egf/common/ui/toolkit/internal/StringMatcher$Position =@ A(II)V C DEposIn(Ljava/lang/String;II)I G  I JK regExpPosIn)(Ljava/lang/String;IILjava/lang/String;)Itextstart_pend_pstartendtlenxsegCountcurPos matchStarticurrent nextMatchmatch(Ljava/lang/String;)Z \ Y](Ljava/lang/String;II)Z '_ `a regionMatches(ZILjava/lang/String;II)Z c e g hiregExpRegionMatches*(Ljava/lang/String;ILjava/lang/String;II)Z 'k lmindexOf(I)I o pK textPosIntCurPosbound segLength currentMatchkclenx* 'z {Z startsWith '} ~ZendsWith ' charAt(I)Cjava/util/Vector java/lang/StringBuffer  append(C)Ljava/lang/StringBuffer; ) toString()Ljava/lang/String;  addElement(Ljava/lang/Object;)V  setLength(I)V +size copyInto([Ljava/lang/Object;)VtempLjava/util/Vector;posbufLjava/lang/StringBuffer;cnextLocalVariableTypeTable&Ljava/util/Vector; ' l(Ljava/lang/String;I)Imaxpplen java/lang/Character  toUpperCase(C)C  toLowerCasetStart_ppStart_pplen_ptStartpStarttcharpchar SourceFileStringMatcher.java InnerClassesPosition!      ?**+ Y* *"*+$*+&,*" *.*142 T# U VXYZ$[,\3]:_>a5*?67?8?9 ?: ;<% + Y66+&666 *,=Y?*"&*+B6=Y*,`?*F6=Y?66 6 6*F 2: *+ H6    6   &`6    =Y ?4#qr tuvwx z'{+}7~9@LS^cev}567LMNOPQ^R}tS_T\U YV 'W X YZM+*++&[4567LY]+ Y66*")d*,*$* +*,^*F6*b *d*,*,+&6666*d6  6 *F 2:  &6 *b*+  f  `6*Fg*b`*dY*F 2:  j6*+ n6  *+ H6    &`6  *d! &6 *+ d  f 42 "HObdkv} "/46CHJTW^ls567LMNO|PO?SQqr V W s /t Ct :usv 0Q*'F*F*$S**,4 5 6731?*$wy*b*$w|"*,*$*,d\*dYL=YN*$6*s?\$*, -Wt*$6*? \ -WH-W-W7-0+-*Y-`--W -W*,E-+-*Y-`*+'F+*F4" 7< D"F#N$Q%^&()+-.12579:;=@AC$HIJ+M6N>O5>?67DFN^- DDET*,d6* +*$6 6+*$*,^4. XYZ['\)^,`2aEbH`Re5HT67TLTOTPLV/#VJK1&6d66*+f4pq rs"t%r/w5R1671L1O1P1* $VhiF p666[+6 -6 *"  6  ,* #    4N $+03:=DQTadfn5p p67pLppppmi eM $B pKS&6d6* +6 6+^42  *,/5DGQ5\ S67SLSOSPSL FV2V = Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/internal/UI$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 551 Text-content-md5: a02a121199f15088cc4f971a9c127bfc Text-content-sha1: 1b4be5bd06fe10f19d6e2ee4d6dd619aea2563d9 Content-length: 610 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1/org/eclipse/egf/common/ui/toolkit/internal/UI$1java/lang/Objectjava/lang/Runnable()VCode  LineNumberTableLocalVariableTablethis1Lorg/eclipse/egf/common/ui/toolkit/internal/UI$1;run -org/eclipse/egf/common/ui/toolkit/internal/UI dispose SourceFileUI.javaEnclosingMethod InnerClasses  3*     2 "#   Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/internal/UI.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2828 Text-content-md5: e3a67d6271311a7654e3ca932743aa9e Text-content-sha1: 96199635d38fb143774794e3e8e0549f649361a8 Content-length: 2887 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1-org/eclipse/egf/common/ui/toolkit/internal/UIjava/lang/Object ERROR_COLOR Lorg/eclipse/swt/graphics/Color; DEFAULT_COLOR()VCode  org/eclipse/swt/widgets/Display  getDefault#()Lorg/eclipse/swt/widgets/Display;/org/eclipse/egf/common/ui/toolkit/internal/UI$1      disposeExec(Ljava/lang/Runnable;)V  getSystemColor#(I)Lorg/eclipse/swt/graphics/Color;   ! LineNumberTableLocalVariableTable this/Lorg/eclipse/egf/common/ui/toolkit/internal/UI;dispose )+*org/eclipse/swt/graphics/Color ' convertHorizontalDLUsToPixels%(Lorg/eclipse/swt/widgets/Control;I)I/org/eclipse/swt/graphics/GC .1 2&(Lorg/eclipse/swt/graphics/Drawable;)V 465org/eclipse/swt/widgets/Control 78getFont!()Lorg/eclipse/swt/graphics/Font; .: ;<setFont"(Lorg/eclipse/swt/graphics/Font;)V .> ?@getFontMetrics(()Lorg/eclipse/swt/graphics/FontMetrics; BDC$org/eclipse/swt/graphics/FontMetrics EFgetAverageCharWidth()I .+? KMLjava/lang/Math NOround(D)Jcontrol!Lorg/eclipse/swt/widgets/Control;dlusIgcLorg/eclipse/swt/graphics/GC; averageWidthhorizontalDialogUnitSizeDconvertVerticalDLUsToPixels B[ \F getHeight?heightverticalDialogUnitSizesetButtonLayoutData#(Lorg/eclipse/swt/widgets/Button;)Vdorg/eclipse/swt/layout/GridData cf g(I)V i6jorg/eclipse/swt/widgets/Button lnm org/eclipse/jface/dialogs/Dialog Yo*(Lorg/eclipse/swt/graphics/FontMetrics;I)I iq rs computeSize%(IIZ)Lorg/eclipse/swt/graphics/Point; uwvorg/eclipse/swt/graphics/Point xSx Kz {|max(II)I c~ S widthHint i  setLayoutData(Ljava/lang/Object;)Vbutton Lorg/eclipse/swt/widgets/Button;data!Lorg/eclipse/swt/layout/GridData; fontMetrics&Lorg/eclipse/swt/graphics/FontMetrics; SourceFileUI.java InnerClasses!  V" Y   "  +0!#  /*$"# %& '  5 ( ("67 8# ,- /.Y*0M,*39,=A>,GHk9kJ"D EFGH%I#4/PQ/RS &TUVS% WX Y- /.Y*0M,*39,=Z>,G]k9kJ"V WXYZ%[#4/PQ/RS &TU_S% `X ab FcYeL.Y*0M,*h9,=N,G-=k6+*pty}*+"& c efg!h%i-j@kEl#4F ;2TU!%-S  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/AbstractValidator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 744 Text-content-md5: 7d12533a67203b36c6c05f02478d17f5 Text-content-sha1: b1b66a80ffc010aa08bbfad56b7f4d4f96e204c7 Content-length: 803 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1>org/eclipse/egf/common/ui/toolkit/validators/AbstractValidatorjava/lang/Object7org/eclipse/egf/common/ui/toolkit/validators/IValidator _errorMessageLjava/lang/String;(Ljava/lang/String;)VCode  ()V  LineNumberTableLocalVariableTablethis@Lorg/eclipse/egf/common/ui/toolkit/validators/AbstractValidator;errorMessage_pgetErrorMessage()Ljava/lang/String;setErrorMessage SourceFileAbstractValidator.java!  F * *+    /*'   >*+ /0 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/CompoundValidator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1721 Text-content-md5: af17bd5958987a9c6f85a331037d9cab Text-content-sha1: 581bcbd6b503c6497e2666e710117c4b918115a2 Content-length: 1780 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1G>org/eclipse/egf/common/ui/toolkit/validators/CompoundValidator>org/eclipse/egf/common/ui/toolkit/validators/AbstractValidator _validatorsLjava/util/List; SignatureKLjava/util/List;()VCode  (Ljava/lang/String;)Vjava/util/ArrayList  (I)V  LineNumberTableLocalVariableTablethis@Lorg/eclipse/egf/common/ui/toolkit/validators/CompoundValidator;<(Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator;)V    addValidator validator_p9Lorg/eclipse/egf/common/ui/toolkit/validators/IValidator; #%$java/util/List &'add(Ljava/lang/Object;)ZisValid&(Ljava/lang/Object;)Ljava/lang/String; #+ ,-iterator()Ljava/util/Iterator; /10java/util/Iterator 23next()Ljava/lang/Object;57org/eclipse/egf/common/ui/toolkit/validators/IValidator 47 () /9 :;hasNext()Zvalue_pLjava/lang/Object; errorMessageLjava/lang/String; validatorsLjava/util/Iterator;currentValidatorLocalVariableTypeTableOLjava/util/Iterator; SourceFileCompoundValidator.java!  D* *Y"#$   F **+,- .  ! D *+"W 5 6  !() 2M**N-.4:+6M-8,,=> @AB#@0D422<=0>? &@A B!C  &@DEF Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/IValidator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 205 Text-content-md5: 47f93dffa017507f5590153711158548 Text-content-sha1: 1e3ce32950e31e9b18f1e125146bf42b01c4039d Content-length: 264 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 7org/eclipse/egf/common/ui/toolkit/validators/IValidatorjava/lang/ObjectisValid&(Ljava/lang/Object;)Ljava/lang/String; SourceFileIValidator.java Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/NotEmptyStringValidator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1554 Text-content-md5: e04498f33a73eb2e2e152bea4f000e52 Text-content-sha1: 9f32860e388260a9ac778510c7000f5d68fb2099 Content-length: 1613 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1NDorg/eclipse/egf/common/ui/toolkit/validators/NotEmptyStringValidator>org/eclipse/egf/common/ui/toolkit/validators/AbstractValidator__loggerLorg/apache/log4j/Logger;()VCode  java/lang/Class  getPackage()Ljava/lang/Package; java/lang/Package getName()Ljava/lang/String; org/apache/log4j/Logger  getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger;  LineNumberTableLocalVariableTable(Ljava/lang/String;)V # !thisFLorg/eclipse/egf/common/ui/toolkit/validators/NotEmptyStringValidator;errorMessage_pLjava/lang/String;isValid&(Ljava/lang/Object;)Ljava/lang/String; + ,getErrorMessage.java/lang/String -0 1trim -3 45length()I7java/lang/StringBuilder9&NotEmptyStringValidator.isValid(..) _ 6# 6< =toString ? @Aerror*(Ljava/lang/Object;Ljava/lang/Throwable;)VCjava/lang/ClassCastExceptionvalue_pLjava/lang/Object;result stringValue exception_pLjava/lang/ClassCastException; loggerMessageLjava/lang/StringBuilder; SourceFileNotEmptyStringValidator.java! 3   ! >*+" $%&'() 7**M+-N-*-/2 MN6Y8::;->,B"$' )+-.)/51>7$%7DE2F' G'HI) JKLM Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidator.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1346 Text-content-md5: afab0924d0bf374e438f7aef3db51ac4 Text-content-sha1: 24be002853efff502c95561971d18a2d720d9021 Content-length: 1405 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1;org/eclipse/egf/common/ui/toolkit/validators/AbstractValidator_regExpPatternLjava/util/regex/Pattern;'(Ljava/lang/String;Ljava/lang/String;)VCode   (Ljava/lang/String;)V java/util/regex/Pattern compile-(Ljava/lang/String;)Ljava/util/regex/Pattern;  LineNumberTableLocalVariableTablethis>Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;errorMessage_pLjava/lang/String;regularExpression_p getPattern()Ljava/util/regex/Pattern;isValid&(Ljava/lang/Object;)Ljava/lang/String;!java/lang/String # $%length()I ' ()matcher3(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; +-,java/util/regex/Matcher ./matches()Z 1 23getErrorMessage()Ljava/lang/String;value_pLjava/lang/Object;ZvalueLjava/util/regex/Matcher; SourceFileRegExpValidator.java! T*+ *,  ! "  /*)  2=+ + N-"*-&:*= *002 3468%<42245067(89: Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 878 Text-content-md5: 38d22c20f7995b8cf623536c3c12685c Text-content-sha1: 59ecb7cbc2b01d41137a3ead3e2b6643baf59d33 Content-length: 937 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$1Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$1; $anonymous0Ljava/lang/String;createR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;*+ /  ? Y+ 5    Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$2.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 884 Text-content-md5: e0f839ab443c637ff764abafcb2ef015 Text-content-sha1: 934b9a42e5cc2d11ea2d4badb1e3676374955878 Content-length: 943 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$2Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$2; $anonymous0Ljava/lang/String;createR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;*+ <  ? Y+ B    Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$3.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 883 Text-content-md5: 16a69aabbdad4c5c98aae0632991f4db Text-content-sha1: e38b47768de47d684dee43a2d8b36ea1a4999efe Content-length: 942 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$3Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$3; $anonymous0Ljava/lang/String;createR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;*+ J  ? Y+ P    Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$4.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 884 Text-content-md5: 61d0fc5ddf87cda504afb0f987a23e58 Text-content-sha1: f661412475096314c206d1481b56597dd195f183 Content-length: 943 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$4Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$4; $anonymous0Ljava/lang/String;createR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;*+ W  ? Y+ ]    Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$5.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 888 Text-content-md5: 69aedf2a073196d43c5e91f15ca0872d Text-content-sha1: 47ef057e2424b89e8ce8bd5eccc787401f9c906f Content-length: 947 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$5Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$5; $anonymous0Ljava/lang/String;createR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;*+ d  ? Y+ j    Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$6.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 881 Text-content-md5: a043f82ffe75986167c376e9ec87e2c3 Text-content-sha1: 1321827e244abc5a7928ddb2ce60411bbfe556e9 Content-length: 940 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$6Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$6; $anonymous0Ljava/lang/String;createR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;*+ q  ? Y+ w    Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$7.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 904 Text-content-md5: 0e0aa1dd1cd65170cc0cb662a638f02b Text-content-sha1: 8a86829e727c63650974a15758f226dfd1e5e546 Content-length: 963 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$7Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$7; $anonymous0Ljava/lang/String;createR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;*+ ~  ? Y+     Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$8.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 877 Text-content-md5: f66535c319788d5c613a372a241cb0fe Text-content-sha1: fc7d9fae55f8cce668d8befc9cf013dbee16a7a0 Content-length: 936 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$8Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory(Ljava/lang/String;)VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$8; $anonymous0Ljava/lang/String;createR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;*+   ? Y+     Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2000 Text-content-md5: e512c6ce4838f7df3215fd20e07454dd Text-content-sha1: 98accde53e8b04a83289e6624c6e4c55cdb7f34a Content-length: 2059 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1]Corg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactoryjava/lang/Object_idLjava/lang/String; ONLY_DIGITSELorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory;ONLY_LOWER_CASEONLY_UPPER_CASENOT_NUMERIC_STARTNO_PUNCTUATIONNO_SPACEIP_DIGIT NOT_EMPTY()VCodeEorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$1 onlyDigits  (Ljava/lang/String;)V  Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$2  onlyLowerCase  # %Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$3' onlyUpperCase $ * ,Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$4.notNumericStart + 1 3Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$55 noPunctuation 2 8 :Eorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$6<noSpace 9 ? AEorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$7CipDigit @ F HEorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory$8JnotEmpty G M LineNumberTableLocalVariableTable Q  S this validatorId_pcreateR(Ljava/lang/String;)Lorg/eclipse/egf/common/ui/toolkit/validators/RegExpValidator;getId()Ljava/lang/String; SourceFileRegExpValidatorFactory.java InnerClasses!      aYY!"$Y&()+Y-/02Y4679Y;=>@YBDEGYIKLN& / <J$W0d<qH~T`OF *P*+RN O T UVWXY/*RN)O TZ[\B$+29@G Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/AbstractStructuredContentProvider.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1076 Text-content-md5: ad3ef9407f19bd20e53e68506a720fbc Text-content-sha1: 549d3d8d1e77783aff5a651c28d886acaacfc340 Content-length: 1135 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1'Korg/eclipse/egf/common/ui/toolkit/viewers/AbstractStructuredContentProviderjava/lang/Object4org/eclipse/jface/viewers/IStructuredContentProvider()VCode  LineNumberTableLocalVariableTablethisMLorg/eclipse/egf/common/ui/toolkit/viewers/AbstractStructuredContentProvider; inputChangedI(Lorg/eclipse/jface/viewers/Viewer;Ljava/lang/Object;Ljava/lang/Object;)V   handleViewer%(Lorg/eclipse/jface/viewers/Viewer;)V  handleElementRemoved7(Lorg/eclipse/jface/viewers/Viewer;Ljava/lang/Object;)V  handleElementAdded  handleElementUpdatedviewer_p"Lorg/eclipse/jface/viewers/Viewer; oldInput_pLjava/lang/Object; newInput_p SourceFile&AbstractStructuredContentProvider.java! /*    8*+,- *+,$,- *+-,-- *+,- ""$ %()',0-7/ *88 !8"#8$#%& Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1178 Text-content-md5: 8204f48a2e125c1d4eccf347695916be Text-content-sha1: 75e7cd2c1ff52437323d5fa7cb3072b163ac44a8 Content-length: 1237 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1*Borg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$1'org/eclipse/swt/events/SelectionAdapterthis$0BLorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;E(Lorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;)VCode    ()VLineNumberTableLocalVariableTablethisDLorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$1;widgetSelected*(Lorg/eclipse/swt/events/SelectionEvent;)V %org/eclipse/swt/events/SelectionEvent widget Lorg/eclipse/swt/widgets/Widget; @org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer  access$0e(Lorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;Lorg/eclipse/swt/widgets/Widget;)Vevent_p'Lorg/eclipse/swt/events/SelectionEvent;button SourceFileAbstractTransferViewer.javaEnclosingMethod (initializeListeners InnerClasses  8 *+ *     T+M* ,  !" #$%&')  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$2.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2360 Text-content-md5: 2194bf77c2a81bf06e6477575193c283 Text-content-sha1: 2e5cc985096a3a886bbfa990743a7f9273eaef1f Content-length: 2419 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1fBorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$2java/lang/Object3org/eclipse/jface/viewers/ISelectionChangedListenerthis$0BLorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;E(Lorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;)VCode    ()VLineNumberTableLocalVariableTablethisDLorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$2;selectionChanged4(Lorg/eclipse/jface/viewers/SelectionChangedEvent;)V @org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer handleViewersSelectionMode /org/eclipse/jface/viewers/SelectionChangedEvent ! getSelection(()Lorg/eclipse/jface/viewers/ISelection; #%$$org/eclipse/jface/viewers/ISelection &'isEmpty()Z ) *+getSelectionProvider0()Lorg/eclipse/jface/viewers/ISelectionProvider; - ./ updateButtonsW(Lorg/eclipse/jface/viewers/ISelection;Lorg/eclipse/jface/viewers/ISelectionProvider;)V1.org/eclipse/jface/viewers/IStructuredSelection 03 45toList()Ljava/util/List; 07 89size()I ;=<java/util/List >?get(I)Ljava/lang/Object; A BC getSource()Ljava/lang/Object;E'org/eclipse/jface/viewers/ContentViewer DG HIgetLabelProvider0()Lorg/eclipse/jface/viewers/IBaseLabelProvider;K(org/eclipse/jface/viewers/ILabelProvider JM NOgetText&(Ljava/lang/Object;)Ljava/lang/String; Q RSupdateStatusLine(Ljava/lang/String;)Vevent_p1Lorg/eclipse/jface/viewers/SelectionChangedEvent; selection&Lorg/eclipse/jface/viewers/ISelection;structSelection0Lorg/eclipse/jface/viewers/IStructuredSelection; lastSelectedLjava/lang/Object;source)Lorg/eclipse/jface/viewers/ContentViewer; labelProvider*Lorg/eclipse/jface/viewers/ILabelProvider; SourceFileAbstractTransferViewer.javaEnclosingMethod dinitializeListeners InnerClasses   8 *+ *    `* ++M,"L* ,+(,,0N-2-6d::+@D:FJ:* LP*   "'<EO_H``TU SVW'8XY<#Z[E\]O^_`abce  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$3.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1787 Text-content-md5: de6541bea8c36b63b22d9c699b87b6b4 Text-content-sha1: cadd8038ea18404ecf44576a3fd756568261dc55 Content-length: 1846 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1PBorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$3%org/eclipse/swt/events/ControlAdapterthis$0BLorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;E(Lorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;)VCode    ()VLineNumberTableLocalVariableTablethisDLorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$3;controlResized((Lorg/eclipse/swt/events/ControlEvent;)V @org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer  _leftViewer,Lorg/eclipse/jface/viewers/StructuredViewer; *org/eclipse/jface/viewers/StructuredViewer   getControl#()Lorg/eclipse/swt/widgets/Control; "$#org/eclipse/swt/widgets/Control %& computeSize$(II)Lorg/eclipse/swt/graphics/Point; ( ) _rightViewer +-,org/eclipse/swt/graphics/Point ./xI 132java/lang/Math 45max(II)I "7 89 getLayoutData()Ljava/lang/Object;;org/eclipse/swt/layout/GridData := >/ widthHintevent_p%Lorg/eclipse/swt/events/ControlEvent; leftControl!Lorg/eclipse/swt/widgets/Control;leftViewerSize Lorg/eclipse/swt/graphics/Point; rightControlrightViewerSizewidthgd!Lorg/eclipse/swt/layout/GridData; SourceFileAbstractTransferViewer.javaEnclosingMethod NinitializeListeners InnerClasses  8 *+ *  !   W* M,!N* ':!:-**06,6::<6::<* ' ()*'+5,>-E.O/V0RWW?@ LABECD9EB'0FD5"G/>HIJKLMO  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 15500 Text-content-md5: 188bb3c291116f49257fe672c52917f9 Text-content-sha1: c88a49c84aec5f91a5c3555953f83c15c6f7233e Content-length: 15559 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1@org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer org/eclipse/jface/viewers/Viewer_loggerLorg/apache/log4j/Logger;STATUS_TEXT_FIELDI ConstantValueADD_ALL_BUTTONADD_SELECTED_BUTTONREMOVE_SELECTED_BUTTONREMOVE_ALL_BUTTON SINGLE_SELECTION_VIEWER@ ALL_BUTTONS< ALL_WIDGETS>_style _composite#Lorg/eclipse/swt/widgets/Composite; _statusBarLorg/eclipse/swt/widgets/Text; _buttonsPanel _addAllBtn Lorg/eclipse/swt/widgets/Button;_addSelectedBtn_removeSelectedBtn _removeAllBtn _leftViewer,Lorg/eclipse/jface/viewers/StructuredViewer;_leftViewerStyleBits _rightViewer_rightViewerStyleBits_buttonClickedListener*Lorg/eclipse/swt/events/SelectionListener;_viewerSelectionChangedListener5Lorg/eclipse/jface/viewers/ISelectionChangedListener;'_selectionChangedHandlersForBothViewersLjava/util/List; Signature]Ljava/util/List;&_selectionChangedHandlersForLeftViewer'_selectionChangedHandlersForRightViewer()VCode 798java/lang/Class :; getPackage()Ljava/lang/Package; =?>java/lang/Package @AgetName()Ljava/lang/String; CEDorg/apache/log4j/Logger FG getLogger-(Ljava/lang/String;)Lorg/apache/log4j/Logger; I LineNumberTableLocalVariableTable)(Lorg/eclipse/swt/widgets/Composite;III)V O L4 Q Sjava/util/ArrayList RU LV(I)V X -. Z 1. \ 2. ^ & ` ( b cd createViewer&(Lorg/eclipse/swt/widgets/Composite;)VthisBLorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;parent_pstyle_pleftViewerStyleBits_prightViewerStyleBits_p l mdcreateInternalComposite o p4initializeListeners r  t udcreateLeftViewer w xdcreateButtonArea z {dcreateRightViewer } ~dcreateStatusTextField!org/eclipse/swt/widgets/Composite  L'(Lorg/eclipse/swt/widgets/Composite;I)V!org/eclipse/swt/layout/GridLayout L(IZ)V   setLayout#(Lorg/eclipse/swt/widgets/Layout;)Vorg/eclipse/swt/layout/GridData L(IIZZ)V   setLayoutData(Ljava/lang/Object;)VgridData!Lorg/eclipse/swt/layout/GridData;  $%   doLeftViewerQ(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/jface/viewers/StructuredViewer;-AbstractTransferViewer.list.available.tooltip 2org/eclipse/egf/common/ui/toolkit/viewers/Messages  getString&(Ljava/lang/String;)Ljava/lang/String;   layoutViewerA(Lorg/eclipse/jface/viewers/StructuredViewer;Ljava/lang/String;)V  '%   doRightViewer,AbstractTransferViewer.list.selected.tooltip   O -org/eclipse/egf/common/ui/toolkit/internal/UI convertHorizontalDLUsToPixels%(Lorg/eclipse/swt/widgets/Control;I)I  widthHint verticalAlignment grabExcessVerticalSpaceZ>>-AbstractTransferViewer.addallelements.tooltip   createButtoni(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/swt/widgets/Button;   >2AbstractTransferViewer.addselectedelements.tooltip  ! <5AbstractTransferViewer.removeselectedelements.tooltip  " <<0AbstractTransferViewer.removeallelements.tooltip  # gdData buttonsLayout#Lorg/eclipse/swt/layout/GridLayout;org/eclipse/swt/widgets/Text    setEditable(Z)V horizontalAlignment grabExcessHorizontalSpace horizontalSpan Borg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$1 LE(Lorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;)V  )*Borg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$2  +,Borg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer$3   addControlListener+(Lorg/eclipse/swt/events/ControlListener;)V    *org/eclipse/jface/viewers/StructuredViewer  setUseHashlookup    getControl#()Lorg/eclipse/swt/widgets/Control; org/eclipse/swt/widgets/Control setToolTipText(Ljava/lang/String;)V   addSelectionChangedListener8(Lorg/eclipse/jface/viewers/ISelectionChangedListener;)V viewer_p tooltip_pLjava/lang/String;control!Lorg/eclipse/swt/widgets/Control;#org/eclipse/swt/widgets/Button " " "( )setText " ", -.addSelectionListener-(Lorg/eclipse/swt/events/SelectionListener;)Vtext_pbuttonhandleButtonClicked#(Lorg/eclipse/swt/widgets/Widget;)V 4 56doHandleAddAllButton()Z 8 96doHandleAddSelectedButton ; <6doHandleRemoveSelectedButton > ?6doHandleRemoveAllButtonAjava/lang/StringBuilderCUnsupported source button : @E L @G HIappend-(Ljava/lang/Object;)Ljava/lang/StringBuilder; @K LAtoString CN Owarn Q R4doLayoutbutton_p Lorg/eclipse/swt/widgets/Widget;somethingWasDone W X4layout  Z [\getInput()Ljava/lang/Object;  ^ _setInputchangedinputLjava/lang/Object;  d ef getSelection(()Lorg/eclipse/jface/viewers/ISelection; hji$org/eclipse/jface/viewers/ISelection k6isEmptym.org/eclipse/jface/viewers/IStructuredSelection lo pqtoArray()[Ljava/lang/Object;  s tugetContentProvider.()Lorg/eclipse/jface/viewers/IContentProvider; wyx*org/eclipse/jface/viewers/IContentProvider z{ inputChangedI(Lorg/eclipse/jface/viewers/Viewer;Ljava/lang/Object;Ljava/lang/Object;)V leftSelection&Lorg/eclipse/jface/viewers/ISelection;structuredSelection0Lorg/eclipse/jface/viewers/IStructuredSelection;elements[Ljava/lang/Object;rightSelectionupdateStatusLine ( updateButtonsW(Lorg/eclipse/jface/viewers/ISelection;Lorg/eclipse/jface/viewers/ISelectionProvider;)V  notifySelectionChangedHandler9(Lorg/eclipse/jface/viewers/ISelection;Ljava/util/List;)V selection_pselectionProvider_p.Lorg/eclipse/jface/viewers/ISelectionProvider;handlersForSelectionProviderLocalVariableTypeTable(Lorg/eclipse/jface/viewers/ISelection;Ljava/util/List;)V java/util/List iterator()Ljava/util/Iterator; java/util/Iterator \nextIorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler  handleSelection)(Lorg/eclipse/jface/viewers/ISelection;)V  6hasNext handlers_phandlerKLorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;handleViewersSelectionMode4(Lorg/eclipse/jface/viewers/SelectionChangedEvent;)V d/org/eclipse/jface/viewers/SelectionChangedEvent  getSelectionProvider0()Lorg/eclipse/jface/viewers/ISelectionProvider; "  setEnabled -org/eclipse/jface/viewers/StructuredSelection EMPTY/Lorg/eclipse/jface/viewers/StructuredSelection;    setSelectionevent_p1Lorg/eclipse/jface/viewers/SelectionChangedEvent;selectionProviderdisableSelectionViewerbuttonDrivenByOppositeViewersetSelectionChangedHandlerO(Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;I)V   addControl$(Lorg/eclipse/swt/widgets/Control;)V  add(Ljava/lang/Object;)Z handler_pbuttonStyleConstant_pgetLeftContentProviderprovider,Lorg/eclipse/jface/viewers/IContentProvider; getLeftInputobject getLeftViewer.()Lorg/eclipse/jface/viewers/StructuredViewer;getLeftLabelProvider0()Lorg/eclipse/jface/viewers/IBaseLabelProvider;   getLabelProvider.Lorg/eclipse/jface/viewers/IBaseLabelProvider;setLeftContentProvider/(Lorg/eclipse/jface/viewers/IContentProvider;)V   setContentProvider provider_p setLeftInputinput_psetLeftLabelProvider-(Lorg/eclipse/jface/viewers/ILabelProvider;)V   setLabelProvider1(Lorg/eclipse/jface/viewers/IBaseLabelProvider;)V*Lorg/eclipse/jface/viewers/ILabelProvider;getRightContentProvider getRightInputgetRightViewergetRightLabelProvidersetRightContentProvider setRightInputsetRightLabelProviderdispose  6 isDisposed  4   removeSelectionChangedListenerrefresh   4*(Lorg/eclipse/jface/viewers/ISelection;Z)Vreveal_pgetLeftViewerStyleBits()IgetRightViewerStyleBitssetButtonEnabled buttonStyle_penable_pisButtonEnabled(I)Z "  6 isEnabledenabledgetButtonsContainer%()Lorg/eclipse/swt/widgets/Composite;access$0e(Lorg/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer;Lorg/eclipse/swt/widgets/Widget;)V  12 SourceFileAbstractTransferViewer.java InnerClasses!              ! " # $%&'%()*+,-./01./02./0334536<BHJ ><KLM5K*N *>P*P*RYTW*RYTY*RYT[*]*_*+aJ. ".:?EJK4KefKgKhKiKjcd5v**+k*n**qs**qv**qy**q|J !)K*ef*gmd52*Y+q*qYYM*q,J )1K 2ef2g) ud5^* **+**JKefg{d5^* **+**JKefgxd5B*Y+YM,*=,,*,YN*-*P~***Ƹȵ*P~***иȵ*P~***ָȵ *P~***ܸȵޱJF "',4>FOblK*efg>|~d5@*P~9*Y+*YM,,,*,J&  (-27?K @ef@g(p45^(*Y**Y**qY*J !'2K (ef5D++ +N-,+*Y:-J6 78; =>?A%B+C1D7E=FCGK4DefD%D5 !%5A"Y+$%:Y:&,'-**+J& K LMN"P)Q/R5S>UK>AefAgA/A 40 +125b=+*̦ *3=J+*Ҧ *7=:+*ئ *:=*+*ަ *==H@YBD+FJM*PJ6 \] ^_`"a*b2c:dBfYj]kamK befbST`UR456*qVJ stK ef565x"<*YM,<*]*,]J{| }~ K "ef ` ab965J<*cM,g8<,lN-n:*r*v*r*vJ&  "5HK4JefH` @|}.~"&<65J<*cM,g8<,lN-n:*r*v*r*vJ&  "5HK4JefH` @}.~"&?65x"<*YM,<*]*,]J  K "ef ` ab5L* *+JKef/5/N,* *YN,**[N*+-*+*WJ" %.K*/ef/}/-. -0/5*,(,:N-+J)K**ef*}*. *05h*P@~`+gT+MN:,**N*:,**N*: -cg -J> (-6>CINT`gK4hefhLJ% G 5*~+*̶*W+W* ~+*޶*W+W*~+*Ҷ*Y+W*~+*ض*[+WJ6   ! #.$6%A'O(W)b+p,x-/K efu5SL* *rL+J67 8:Kef\5SL* *YL+JBC DFKefb5/*JNK ef5SL* *L+JVW XZKef5A *+ݱJ bcK ef 5A *+]J jkK ef b5A *+J rsK ef u5SL* *rL+Jz{ |~Kef\5SL* *YL+J Kefb5/*JK ef5SL* *L+J Kef5A *+ݱJ K ef 5A *+]J K ef b5A *+J K ef 45`*q*q*q*q************J:"',16=HOZ_K `ef5/*qJK ef[\5,JK efef5,JK ef45A**JK ef_55JKefb5?JK ef}5/*]J K ef5/*_JK ef5<~ *~ *~ * ~ *J&  !#$&$',)3*;,K <ef<<5W=R)4? J*̶=!*Ҷ=*ض= *޶=J* 89,;4<7??@BCJDMGUKK WefWU   5/*JSK ef 5&*+J[K Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/DefaultListContentProvider.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2342 Text-content-md5: f4720f59a5ed6a7dbc65cb034da04925 Text-content-sha1: a2d7c0549b8977caab63e0632193d981f92ab8da Content-length: 2401 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1KDorg/eclipse/egf/common/ui/toolkit/viewers/DefaultListContentProviderKorg/eclipse/egf/common/ui/toolkit/viewers/AbstractStructuredContentProvider()VCode  LineNumberTableLocalVariableTablethisFLorg/eclipse/egf/common/ui/toolkit/viewers/DefaultListContentProvider;handleElementAdded7(Lorg/eclipse/jface/viewers/Viewer;Ljava/lang/Object;)V,org/eclipse/jface/viewers/AbstractListViewer[Ljava/lang/Object;  add([Ljava/lang/Object;)Vjava/util/Collection  toArray()[Ljava/lang/Object;   (Ljava/lang/Object;)Vviewer_p"Lorg/eclipse/jface/viewers/Viewer;addedElements_pLjava/lang/Object;abstractListViewer.Lorg/eclipse/jface/viewers/AbstractListViewer;array collectionLjava/util/Collection;LocalVariableTypeTableLjava/util/Collection<*>;handleElementRemoved . /remove 1 / removedElements_phandleElementUpdatedI(Lorg/eclipse/jface/viewers/Viewer;Ljava/lang/Object;Ljava/lang/Object;)V 6 7 refresh oldInput_p newInput_p handleViewer%(Lorg/eclipse/jface/viewers/Viewer;)V="java/lang/IllegalArgumentException?0Viewer must be an instance of AbstractListViewer <A B(Ljava/lang/String;)V getElements'(Ljava/lang/Object;)[Ljava/lang/Object;Fjava/lang/ObjectinputElement_pdispose SourceFileDefaultListContentProvider.java!3*   @+N,,:-',,::--, * %& '()"*(+1,:.?0 H@ @!"@#$;%& '(()1 '* ((+,@+N,,:--',,::---,0 * 9: ;<=">(?1@:B?D H@ @!"@2$;%& '(()1 '* ((+34U +,5 LM * !" 8$ 9$:;N+ @ TUW  !"CDf"+++ +E ^_ abd " "G$H+ l  IJ Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/DefaultTableContentProvider.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2281 Text-content-md5: 899a0b43f537234762242197b94a7718 Text-content-sha1: 335494d568b566ff39007116fa72ecc268539aff Content-length: 2340 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1KEorg/eclipse/egf/common/ui/toolkit/viewers/DefaultTableContentProviderKorg/eclipse/egf/common/ui/toolkit/viewers/AbstractStructuredContentProvider()VCode  LineNumberTableLocalVariableTablethisGLorg/eclipse/egf/common/ui/toolkit/viewers/DefaultTableContentProvider;handleElementAdded7(Lorg/eclipse/jface/viewers/Viewer;Ljava/lang/Object;)V%org/eclipse/jface/viewers/TableViewer[Ljava/lang/Object;  add([Ljava/lang/Object;)Vjava/util/Collection  toArray()[Ljava/lang/Object;   (Ljava/lang/Object;)Vviewer_p"Lorg/eclipse/jface/viewers/Viewer;addedElements_pLjava/lang/Object; tableViewer'Lorg/eclipse/jface/viewers/TableViewer;array collectionLjava/util/Collection;LocalVariableTypeTableLjava/util/Collection<*>;handleElementRemoved . /remove 1 / removedElements_phandleElementUpdatedI(Lorg/eclipse/jface/viewers/Viewer;Ljava/lang/Object;Ljava/lang/Object;)V 6 7 refresh oldInput_p newInput_p handleViewer%(Lorg/eclipse/jface/viewers/Viewer;)V="java/lang/IllegalArgumentException?)Viewer must be an instance of TableViewer <A B(Ljava/lang/String;)V getElements'(Ljava/lang/Object;)[Ljava/lang/Object;Fjava/lang/ObjectinputElement_pdispose SourceFile DefaultTableContentProvider.java!3*   <+N,,:-#,,:--, & &' ()*"+(,6.;0 >< <!"<#$7%& '(()* ((+,<+N,,:--#,,:---,0 & 9: ;<=">(?6A;C >< <!"<2$7%& '(()* ((+34U +-5 KL * !" 8$ 9$:;N+ @ STV  !"CDf"+++ +E ]^ `ac " "G$H+ k  IJ Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/Messages.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1247 Text-content-md5: e04f11602ccbcb6d74d824fdcd024d8d Text-content-sha1: 431bd93a30149360813a26dafe095f425cc0e4e8 Content-length: 1306 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1?2org/eclipse/egf/common/ui/toolkit/viewers/Messagesjava/lang/Object BUNDLE_NAMELjava/lang/String; ConstantValue 2org.eclipse.egf.common.ui.toolkit.viewers.messagesRESOURCE_BUNDLELjava/util/ResourceBundle;()VCode java/util/ResourceBundle  getBundle.(Ljava/lang/String;)Ljava/util/ResourceBundle;  LineNumberTableLocalVariableTable   this4Lorg/eclipse/egf/common/ui/toolkit/viewers/Messages; getString&(Ljava/lang/String;)Ljava/lang/String; ! #java/lang/StringBuilder %'&java/lang/String ()valueOf(C)Ljava/lang/String; "+ ,(Ljava/lang/String;)V ". /0append-(Ljava/lang/String;)Ljava/lang/StringBuilder; "2 /3(C)Ljava/lang/StringBuilder; "5 67toString()Ljava/lang/String;9"java/util/MissingResourceExceptionkey_pe$Ljava/util/MissingResourceException; SourceFile Messages.java!  -   3*   f"* L"Y!$**-!148&' (": ;<=> Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/TransferListViewer.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1823 Text-content-md5: d50e47147ba459e5634fcd33ef046fbd Text-content-sha1: 3914daf965e69a5d9051e9055a73cf8c55439ff7 Content-length: 1882 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1C'(Lorg/eclipse/swt/widgets/Composite;I)VCode  )(Lorg/eclipse/swt/widgets/Composite;III)VLineNumberTableLocalVariableTablethis>Lorg/eclipse/egf/common/ui/toolkit/viewers/TransferListViewer;parent_p#Lorg/eclipse/swt/widgets/Composite;style_p  Dorg/eclipse/egf/common/ui/toolkit/viewers/DefaultListContentProvider  ()V  setLeftContentProvider/(Lorg/eclipse/jface/viewers/IContentProvider;)V ! "setRightContentProvider$'org/eclipse/jface/viewers/LabelProvider # ' ()setLeftLabelProvider-(Lorg/eclipse/jface/viewers/ILabelProvider;)V + ,)setRightLabelProviderleftViewerStyleBits_prightViewerStyleBits_pproviderFLorg/eclipse/egf/common/ui/toolkit/viewers/DefaultListContentProvider; labelProvider)Lorg/eclipse/jface/viewers/LabelProvider; doLeftViewerQ(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/jface/viewers/StructuredViewer;6$org/eclipse/jface/viewers/ListViewer 8 9:getLeftViewerStyleBits()I 5<  doRightViewer ? @:getRightViewerStyleBits SourceFileTransferListViewer.java!  O *+    & '      4*+Y:** #Y%:*&**"1 2346'7-839H4444-4."/0' 1234 A 5Y+*7;@  =4 A 5Y+*>;H  AB Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/TransferTreeViewer.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1217 Text-content-md5: 3c86b29c490052b727293050996404f4 Text-content-sha1: 26c73f52c45de388c083d0c24f30a681e43eeb20 Content-length: 1276 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1)'(Lorg/eclipse/swt/widgets/Composite;I)VCode  )(Lorg/eclipse/swt/widgets/Composite;III)VLineNumberTableLocalVariableTablethis>Lorg/eclipse/egf/common/ui/toolkit/viewers/TransferTreeViewer;parent_p#Lorg/eclipse/swt/widgets/Composite;style_p  leftViewerStyleBits_prightViewerStyleBits_p doLeftViewerQ(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/jface/viewers/StructuredViewer;$org/eclipse/jface/viewers/TreeViewer   getLeftViewerStyleBits()I "  doRightViewer % & getRightViewerStyleBits SourceFileTransferTreeViewer.java!  O *+    % &      ` *+ 0 14      A Y+*!8  # A Y+*$!@  '( Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/viewers/messages.properties Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 990 Text-content-md5: 0d6efc77cd2a8f5c700824c6cc71624a Text-content-sha1: 723f2f6f78f63b78572b099c25d03158de95b764 Content-length: 1000 PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### AbstractTransferViewer.addallelements.tooltip=Add all elements. AbstractTransferViewer.list.available.tooltip=Available elements. AbstractTransferViewer.list.selected.tooltip=Selected elements AbstractTransferViewer.addselectedelements.tooltip=Add selected element(s). AbstractTransferViewer.removeselectedelements.tooltip=Remove selected element(s). AbstractTransferViewer.removeallelements.tooltip=Remove all elements. Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/widgets Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/widgets/handler Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1403 Text-content-md5: bd3c0ad8266bc0fd4ed1557e8362d21d Text-content-sha1: a0e06a110fcdab9a3690b1b144a4433904d50186 Content-length: 1462 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1DIorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandlerjava/lang/Object _controlsLjava/util/List; Signature3Ljava/util/List;()VCode  LineNumberTableLocalVariableTablethisKLorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler; addControl$(Lorg/eclipse/swt/widgets/Control;)V  java/util/ArrayList  (I)V java/util/List  add(Ljava/lang/Object;)Z control_p!Lorg/eclipse/swt/widgets/Control;handleSelection)(Lorg/eclipse/jface/viewers/ISelection;)V & '(doHandleSelection)(Lorg/eclipse/jface/viewers/ISelection;)Z * +,iterator()Ljava/util/Iterator; .0/java/util/Iterator 12next()Ljava/lang/Object;4org/eclipse/swt/widgets/Control 36 78 setEnabled(Z)V .: ;<hasNext()Z selection_p&Lorg/eclipse/jface/viewers/ISelection;enabledZcontrol SourceFileSelectionChangedHandler.java!  /*   _**Y*+W$%'(!"#$ /*+%=*):-3N-59023$2.5*//=>)?@A"'(BC Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/AbstractTooltipLabelProvider.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2939 Text-content-md5: a6a5a28071f85c50bc059c1c690a51d8 Text-content-sha1: 21bc1a1676931796f26795f71839d2a9f4861928 Content-length: 2998 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1j>org/eclipse/egf/common/ui/viewers/AbstractTooltipLabelProvider+org/eclipse/jface/viewers/CellLabelProvider(org/eclipse/jface/viewers/ILabelProviderTOOLTIP_TIME_DISPLAYEDI ConstantValueXDISPLAY_DELAY_TIME_tooltipTimeDisplayed_tooltipDisplayDelayTime_labelProvider*Lorg/eclipse/jface/viewers/ILabelProvider;/(Lorg/eclipse/jface/viewers/ILabelProvider;II)VCode  ()V      LineNumberTableLocalVariableTablethis@Lorg/eclipse/egf/common/ui/viewers/AbstractTooltipLabelProvider;labelProvider_ptooltipTimeDisplayed_ptooltipDisplayDelayTime_p-(Lorg/eclipse/jface/viewers/ILabelProvider;)V & getToolTipText&(Ljava/lang/Object;)Ljava/lang/String;getToolTipShift4(Ljava/lang/Object;)Lorg/eclipse/swt/graphics/Point;,org/eclipse/swt/graphics/Point +. /(II)Vobject_pLjava/lang/Object;getToolTipDisplayDelayTime(Ljava/lang/Object;)IgetToolTipTimeDisplayedupdate)(Lorg/eclipse/jface/viewers/ViewerCell;)V 8:9$org/eclipse/jface/viewers/ViewerCell ;< getElement()Ljava/lang/Object; > ?(getText 8A BCsetText(Ljava/lang/String;)V E FGgetImage4(Ljava/lang/Object;)Lorg/eclipse/swt/graphics/Image; 8I JKsetImage#(Lorg/eclipse/swt/graphics/Image;)Vviewer_p&Lorg/eclipse/jface/viewers/ViewerCell;element E element_p > addListener5(Lorg/eclipse/jface/viewers/ILabelProviderListener;)V U RS U listener_p2Lorg/eclipse/jface/viewers/ILabelProviderListener;dispose [ Y [isLabelProperty'(Ljava/lang/Object;Ljava/lang/String;)Z ` ]^ ` property_pLjava/lang/String;removeListener f dS f SourceFile!AbstractTooltipLabelProvider.java!       l**+**45 678* !"#$D *+Xз% A B  !'()*> +Y-O  01239*W 01439*_ 0156b+7M+*,=@+*,DHghij  LMN1FG? *+Op  P1?(? *+Qw  P1RSL*+T*+V WXY@*Z*\   ]^Y*+,_*+,a  P1bcdSL*+e*+g WXhi Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1339 Text-content-md5: 0ad96a1ed942336a432b9d57b74680f9 Text-content-sha1: 5ea918c52fef06dfbe6ee5f6c6bdfd74aa243b8c Content-length: 1398 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 14=org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$1java/lang/Object3org/eclipse/jface/viewers/ISelectionChangedListenerthis$0=Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;@(Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;)VCode    ()VLineNumberTableLocalVariableTablethis?Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$1;selectionChanged4(Lorg/eclipse/jface/viewers/SelectionChangedEvent;)V /org/eclipse/jface/viewers/SelectionChangedEvent  getSelection(()Lorg/eclipse/jface/viewers/ISelection;  $org/eclipse/jface/viewers/ISelection !"isEmpty()Z $&%;org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons '( updateButtons)(Lorg/eclipse/jface/viewers/ISelection;)Vevent_p1Lorg/eclipse/jface/viewers/SelectionChangedEvent; selection&Lorg/eclipse/jface/viewers/ISelection; SourceFileAbstractViewerWithButtons.javaEnclosingMethod 12init&(Lorg/eclipse/swt/widgets/Composite;)V InnerClasses   8 *+ * U   f+M,* ,#[]^`a )*+,-./$03  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$2.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1605 Text-content-md5: b960dcc68ff25dc547ea5abd6c193fd7 Text-content-sha1: 4ec19b903e9eb30971bd46023b6ad0a0a38f52a6 Content-length: 1664 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 19=org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$2'org/eclipse/swt/events/SelectionAdapterthis$0=Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;@(Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;)VCode    ()VLineNumberTableLocalVariableTablethis?Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$2;widgetDefaultSelected*(Lorg/eclipse/swt/events/SelectionEvent;)V  buttonSelectede_p'Lorg/eclipse/swt/events/SelectionEvent;widgetSelected %org/eclipse/swt/events/SelectionEvent  widget Lorg/eclipse/swt/widgets/Widget;"org/eclipse/swt/widgets/Button $&%org/eclipse/swt/widgets/Widget '(getData()Ljava/lang/Object; *,+;org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons -5(Lorg/eclipse/swt/widgets/Button;Ljava/lang/Object;)Ve SourceFileAbstractViewerWithButtons.javaEnclosingMethod 34 createButtonso(Lorg/eclipse/swt/widgets/Composite;[Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData;)V InnerClasses7Forg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData ButtonData  8 *+ *     >*+  >*+  N* +!+#) ./01*256*8 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1599 Text-content-md5: fd8921c0949638971b468f1a5fc10abd Text-content-sha1: 78a5753edb9d5b78c269137480ed0897e0ce211d Content-length: 1658 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 15Forg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonDatajava/lang/Object_labelLjava/lang/String;_styleI_dataLjava/lang/Object;_selectionChangedHandlerKLorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;this$0=Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;(Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;Ljava/lang/String;ILjava/lang/Object;Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;)VCode    ()V       LineNumberTableLocalVariableTablethisHLorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData;label_pstyle_pdata_pselectionChangedHandler_pgetLabel()Ljava/lang/String;getStyle()IgetData()Ljava/lang/Object;getSelectionChangedHandlerM()Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler; SourceFileAbstractViewerWithButtons.java InnerClasses3;org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons ButtonData!    *+**,***A< =>?@ 4 !" # $ %  & '(/*H !")*/*P !"+,/*X !"-./*` !"/01 24 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 6148 Text-content-md5: 578301c1e9f0cf7c94dd49aeda6191d5 Text-content-sha1: a938d33bd8c9b2dbadb73ab20facb4321ce7f7a5 Content-length: 6207 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1;org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtonsjava/lang/Object_buttons![Lorg/eclipse/swt/widgets/Button; _buttonDataI[Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData; _composite#Lorg/eclipse/swt/widgets/Composite;_decoratedViewer,Lorg/eclipse/jface/viewers/StructuredViewer;_buttonClickedListener:Lorg/eclipse/egf/common/ui/viewers/IButtonClickedListener;_viewerSelectionChangedListener5Lorg/eclipse/jface/viewers/ISelectionChangedListener;()VCode  LineNumberTableLocalVariableTablethis=Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;&(Lorg/eclipse/swt/widgets/Composite;)V  initparent_p  !"createInternalCompositeH(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/swt/widgets/Composite; $ & '( createViewerQ(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/jface/viewers/StructuredViewer; * ,=org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$1 +. /@(Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;)V 1  354*org/eclipse/jface/viewers/StructuredViewer 67addSelectionChangedListener8(Lorg/eclipse/jface/viewers/ISelectionChangedListener;)V 9 :;createButtonDataK()[Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData; = >? createButtonso(Lorg/eclipse/swt/widgets/Composite;[Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData;)V isEditable()Z updateButtons)(Lorg/eclipse/jface/viewers/ISelection;)V E  GIHForg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData JKgetSelectionChangedHandlerM()Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler; MONIorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler PChandleSelection selection_p&Lorg/eclipse/jface/viewers/ISelection; buttonDataHLorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData;selectionChangedHandlerKLorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;X!org/eclipse/swt/widgets/Composite WZ ['(Lorg/eclipse/swt/widgets/Composite;I)V]!org/eclipse/swt/layout/GridLayout \_ `(IZ)V Wb cd setLayout#(Lorg/eclipse/swt/widgets/Layout;)Vforg/eclipse/swt/layout/GridData eh i(IIZZ)V Wk lm setLayoutData(Ljava/lang/Object;)V compositegridData!Lorg/eclipse/swt/layout/GridData; r @A Wt uv setEnabled(Z)V \x yz marginHeightI \| }z marginWidthorg/eclipse/swt/widgets/Button  =org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$2 . G getLabel()Ljava/lang/String; G getStyle()I   createButtonX(Lorg/eclipse/swt/widgets/Composite;Ljava/lang/String;I)Lorg/eclipse/swt/widgets/Button; addSelectionListener-(Lorg/eclipse/swt/events/SelectionListener;)V G getData()Ljava/lang/Object; msetData M  addControl$(Lorg/eclipse/swt/widgets/Control;)V  createEmptySpaceE(Lorg/eclipse/swt/widgets/Composite;I)Lorg/eclipse/swt/widgets/Label; buttonData_pbuttonContainerlayout#Lorg/eclipse/swt/layout/GridLayout;listener)Lorg/eclipse/swt/events/SelectionAdapter;ilabelLjava/lang/String;stylebutton Lorg/eclipse/swt/widgets/Button;handlerbuttonSelected5(Lorg/eclipse/swt/widgets/Button;Ljava/lang/Object;)V   8org/eclipse/egf/common/ui/viewers/IButtonClickedListener  buttonClicked 3  getSelection(()Lorg/eclipse/jface/viewers/ISelection;  BCselectedButton_pdata_pLjava/lang/Object; selection Z setText(Ljava/lang/String;)V klabel_pstyle_porg/eclipse/swt/widgets/Label Z e zhorizontalSpan e z widthHint e z heightHint kspan_pLorg/eclipse/swt/widgets/Label;getDecoratedViewer.()Lorg/eclipse/jface/viewers/StructuredViewer;setButtonClickedListener=(Lorg/eclipse/egf/common/ui/viewers/IButtonClickedListener;)VbuttonClickedListener_p SourceFileAbstractViewerWithButtons.java InnerClasses ButtonData!   3* >@ F **+GH I   9**+#***#%)*+Y*-0*)*02**#*8<Q SU!d,f8g99 @A,o BC/*DY:6>2M,F: +Lxyz{%x.~*//QRST UV:;'(!"*WY+YM,\Y^aeYgN,-j, #(***  n #op>? ,,WY+YN-*qs\Y^:Zw{-aeY~g:-j*,D*,Y*:6a,2:: 6  >*-  :   F:    * S *-W,n '39HNS\flry   'HopflihzrUSTyN Gz 0 V x **+,*)N*-*   R+Y+:,ǻeYg:!(>++ ++z! op1Y+NeYg:-- #)/ 411 1z 'op/*) >*+ +G Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/DefaultTreeNode.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1097 Text-content-md5: 98f24ab34451710f15efabd7539b06d7 Text-content-sha1: 042869e5ce58645ea9fa2736f1ede732736d9427 Content-length: 1156 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1$1org/eclipse/egf/common/ui/viewers/DefaultTreeNodejava/lang/Object+org/eclipse/egf/common/ui/viewers/ITreeNode_parent-Lorg/eclipse/egf/common/ui/viewers/ITreeNode;0(Lorg/eclipse/egf/common/ui/viewers/ITreeNode;)VCode  ()V  LineNumberTableLocalVariableTablethis3Lorg/eclipse/egf/common/ui/viewers/DefaultTreeNode;parent_p getChildren0()[Lorg/eclipse/egf/common/ui/viewers/ITreeNode; getParent/()Lorg/eclipse/egf/common/ui/viewers/ITreeNode; hasChildren()Z isHandling(Ljava/lang/Object;)Z element_pLjava/lang/Object;comparisonPriority()I SourceFileDefaultTreeNode.java!  F * *+    ,%  /*,  ,3  6: ! ,A "# Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/IButtonClickedListener.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 239 Text-content-md5: 9b87ef30bdf40eec9bf8facf92604291 Text-content-sha1: a968a62e291cd502af1c0f3ff92461fc90f8e5e9 Content-length: 298 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 8org/eclipse/egf/common/ui/viewers/IButtonClickedListenerjava/lang/Object buttonClicked5(Lorg/eclipse/swt/widgets/Button;Ljava/lang/Object;)V SourceFileIButtonClickedListener.java Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/IContentHandler.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 243 Text-content-md5: 3b0cae5587e969e47feaf92d8330c97f Text-content-sha1: 32cbb8e67dd33958c3994aa47fe64cc7d3283b15 Content-length: 302 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 1org/eclipse/egf/common/ui/viewers/IContentHandlerjava/lang/ObjectcreateNewElement()Ljava/lang/Object; removeElement(Ljava/lang/Object;)V SourceFileIContentHandler.java  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/IOrderedContentProvider.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 244 Text-content-md5: 3305926d925d0d718e2086ac8c0302be Text-content-sha1: 54208579ec3d3dbd62e3766ea374c2f461d83ff3 Content-length: 303 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1 9org/eclipse/egf/common/ui/viewers/IOrderedContentProviderjava/lang/Object4org/eclipse/jface/viewers/IStructuredContentProviderswap(II)V SourceFileIOrderedContentProvider.java  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/ITreeNode.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 384 Text-content-md5: fd2aedca5a3c3f27e1272cee7e4fb4e4 Text-content-sha1: 71265d245b59c88b30dd83c520013bc621a4232b Content-length: 443 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1+org/eclipse/egf/common/ui/viewers/ITreeNodejava/lang/Object getChildren0()[Lorg/eclipse/egf/common/ui/viewers/ITreeNode; getParent/()Lorg/eclipse/egf/common/ui/viewers/ITreeNode; hasChildren()Z isHandling(Ljava/lang/Object;)ZcomparisonPriority()I SourceFileITreeNode.java    Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/Messages.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 795 Text-content-md5: e7eb98a60b6b4056f8fc0ba09b445741 Text-content-sha1: b24bd6cbe455cf57e82c84d901b853c022b63edf Content-length: 854 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1*org/eclipse/egf/common/ui/viewers/Messagesorg/eclipse/osgi/util/NLS BUNDLE_NAMELjava/lang/String; ConstantValue *org.eclipse.egf.common.ui.viewers.messages1OrderedListViewerWithAddAndRemove_AddButton_Label4OrderedListViewerWithAddAndRemove_RemoveButton_Label!SortedListViewer_DownButton_TitleSortedListViewer_UpButton_Title()VCode  initializeMessages&(Ljava/lang/String;Ljava/lang/Class;)VLineNumberTableLocalVariableTable  this,Lorg/eclipse/egf/common/ui/viewers/Messages; SourceFile Messages.java!    , 3* "$  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/OrderedListViewer$1.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 2045 Text-content-md5: 7fb2411a0721be5427c15a1ee6dea61b Text-content-sha1: 39798b939a5a6428bebe6cab9800daf4ce959418 Content-length: 2104 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1X5org/eclipse/egf/common/ui/viewers/OrderedListViewer$1java/lang/Object8org/eclipse/egf/common/ui/viewers/IButtonClickedListenerthis$05Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer;8(Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer;)VCode    ()VLineNumberTableLocalVariableTablethis7Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer$1; buttonClicked5(Lorg/eclipse/swt/widgets/Button;Ljava/lang/Object;)V 3org/eclipse/egf/common/ui/viewers/OrderedListViewer getDecoratedViewer.()Lorg/eclipse/jface/viewers/StructuredViewer;  *org/eclipse/jface/viewers/StructuredViewer !" getSelection(()Lorg/eclipse/jface/viewers/ISelection; $ %&access$0()Ljava/lang/Object; ( )*equals(Ljava/lang/Object;)Z , -&access$1 /10$org/eclipse/jface/viewers/ISelection 23isEmpty()Z 5 67getSelectionIndex()I 9 :;getContentProvider.()Lorg/eclipse/jface/viewers/IContentProvider;=9org/eclipse/egf/common/ui/viewers/IOrderedContentProvider <? @Aswap(II)V C DdelegateButtonClickedclickedButton_p Lorg/eclipse/swt/widgets/Button;data_pLjava/lang/Object;decoratedViewer,Lorg/eclipse/jface/viewers/StructuredViewer; selection&Lorg/eclipse/jface/viewers/ISelection;selectionElementIndexIelementToSwapWithIndexcontentProvider,Lorg/eclipse/jface/viewers/IContentProvider; SourceFileOrderedListViewer.javaEnclosingMethod V&(Lorg/eclipse/swt/widgets/Composite;)V InnerClasses   8 *+ * G   1* N-:#,' +,'\.* 466#,' d6+,' `6-8:<<> * +,BBNOP"R,S-V6X9ZC[L\V]\`bajc{fhREFGH}IJwKL6EMN9BONbPQRSTUW  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/OrderedListViewer$2.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1023 Text-content-md5: b00285cf6364713c584b1012a6d6410a Text-content-sha1: ca5e870a7e96fede5bdacfae0c50d911875ec29b Content-length: 1082 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1'5org/eclipse/egf/common/ui/viewers/OrderedListViewer$2Iorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandlerthis$05Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer;8(Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer;)VCode    ()VLineNumberTableLocalVariableTablethis7Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer$2;doHandleSelection)(Lorg/eclipse/jface/viewers/ISelection;)Z 3org/eclipse/egf/common/ui/viewers/OrderedListViewer getSelectionIndex()I selection_p&Lorg/eclipse/jface/viewers/ISelection;resultZselectionIndexI SourceFileOrderedListViewer.javaEnclosingMethod %"initializeSelectionChangedHandlers InnerClasses  8 *+ *  z   j=* >= *  !"#$&  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/OrderedListViewer$3.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1060 Text-content-md5: 1f54631e8be49d2ea521b8272f2afe0c Text-content-sha1: 735d78f69729f6ae8256b8b2e7b0928aeabc6e5e Content-length: 1119 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1*5org/eclipse/egf/common/ui/viewers/OrderedListViewer$3Iorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandlerthis$05Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer;8(Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer;)VCode    ()VLineNumberTableLocalVariableTablethis7Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer$3;doHandleSelection)(Lorg/eclipse/jface/viewers/ISelection;)Z 3org/eclipse/egf/common/ui/viewers/OrderedListViewer getSelectionIndex()I  getElementCount selection_p&Lorg/eclipse/jface/viewers/ISelection;resultZselectionIndexI SourceFileOrderedListViewer.javaEnclosingMethod ("initializeSelectionChangedHandlers InnerClasses  8 *+ *     s=* >* d= * ! "#$%&')  Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/OrderedListViewer.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 4992 Text-content-md5: 99069c92f34234145de1185443c33d3f Text-content-sha1: 27202aab882f9132af6ebb2100522178af3c8a22 Content-length: 5051 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 13org/eclipse/egf/common/ui/viewers/OrderedListViewer;org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtonsUP_BUTTON_DATALjava/lang/Object;DOWN_BUTTON_DATA__buttonsLabels[Ljava/lang/String;__buttonsStyles[IDEFAULT_LIST_VIEWER_STYLEI ConstantValue #_selectionChangedHandlerForUpButtonKLorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;%_selectionChangedHandlerForDownButton()VCodejava/lang/Object       java/lang/String "$#*org/eclipse/egf/common/ui/viewers/Messages %&SortedListViewer_UpButton_TitleLjava/lang/String; "( )&!SortedListViewer_DownButton_Title +  - LineNumberTableLocalVariableTable&(Lorg/eclipse/swt/widgets/Composite;)V 2 045org/eclipse/egf/common/ui/viewers/OrderedListViewer$1 36 78(Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer;)V 9 :;setButtonClickedListener=(Lorg/eclipse/egf/common/ui/viewers/IButtonClickedListener;)Vthis5Lorg/eclipse/egf/common/ui/viewers/OrderedListViewer;parent_p#Lorg/eclipse/swt/widgets/Composite;delegateButtonClicked5(Lorg/eclipse/swt/widgets/Button;Ljava/lang/Object;)VclickedButton_p Lorg/eclipse/swt/widgets/Button;data_p"initializeSelectionChangedHandlersG5org/eclipse/egf/common/ui/viewers/OrderedListViewer$2 F6 J L5org/eclipse/egf/common/ui/viewers/OrderedListViewer$3 K6 O getSelectionIndex()I S TUgetUnderlyingViewerControl#()Lorg/eclipse/swt/widgets/Control;Worg/eclipse/swt/widgets/List VY PQ[org/eclipse/swt/widgets/Table ZYselectionIndexcontrol!Lorg/eclipse/swt/widgets/Control;listLorg/eclipse/swt/widgets/List;tableLorg/eclipse/swt/widgets/Table;getElementCount Vf gQ getItemCount Zf itemCount k lmgetDecoratedViewer.()Lorg/eclipse/jface/viewers/StructuredViewer; oqp*org/eclipse/jface/viewers/StructuredViewer rU getControlcreateButtonDataK()[Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData; v E x yzcreateExtraButtonData()Ljava/util/List;|Forg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData {~ (Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;Ljava/lang/String;ILjava/lang/Object;Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;)V java/util/List add(Ljava/lang/Object;)Z Qsize toArray(([Ljava/lang/Object;)[Ljava/lang/Object;I[Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData; buttonDataLjava/util/List;LocalVariableTypeTableZLjava/util/List; Signature\()Ljava/util/List;java/util/ArrayList (I)V createViewerQ(Lorg/eclipse/swt/widgets/Composite;)Lorg/eclipse/jface/viewers/StructuredViewer;%org/eclipse/jface/viewers/TableViewer '(Lorg/eclipse/swt/widgets/Composite;I)V qorg/eclipse/swt/layout/GridData (IIZZ)V org/eclipse/swt/widgets/Control  setLayoutData(Ljava/lang/Object;)V composite_p listViewer'Lorg/eclipse/jface/viewers/TableViewer;gridData!Lorg/eclipse/swt/layout/GridData;access$0()Ljava/lang/Object;access$1 SourceFileOrderedListViewer.java InnerClasses ButtonData!    h8YYY!SY'S* YOYO,.% )-'17!/0N*+1*3Y*58.EGj/<=>?@A?.t/ <=BCDEK*FY*HI*KY*MN.z / <=PQ.<*RM,V,VN-X<,Z ,ZN-\<.& "',/4.<=,] '^_`a'bcdQ.<*RM,V,VN-e<,Z ,ZN-h<.& "',/4.<=,i '^_`a'bcTU2*jn./ <=st\*u*wL+{Y**2,.*I}W+{Y**2,.*N}W++{. )I/\<= S  Syz3 Y./  <=&Y+ M,NY:-,. $/4&<=&? ^_$.%/$.)/"{3FK Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/OrderedListViewerWithAddAndRemove.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3554 Text-content-md5: bc9e8389a1921abbdaa01a4bf0da96cf Text-content-sha1: b4011a7d1f6f8007dadf93f7a9f958211e7e4eb7 Content-length: 3613 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 1Corg/eclipse/egf/common/ui/viewers/OrderedListViewerWithAddAndRemove3org/eclipse/egf/common/ui/viewers/OrderedListViewerADD_BUTTON_DATALjava/lang/Object;REMOVE_BUTTON_DATA()VCode java/lang/Object       LineNumberTableLocalVariableTable&(Lorg/eclipse/swt/widgets/Composite;)V  thisELorg/eclipse/egf/common/ui/viewers/OrderedListViewerWithAddAndRemove;parent_p#Lorg/eclipse/swt/widgets/Composite;createExtraButtonData()Ljava/util/List; Signature\()Ljava/util/List; " $Forg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData &('*org/eclipse/egf/common/ui/viewers/Messages )*1OrderedListViewerWithAddAndRemove_AddButton_LabelLjava/lang/String; , -.createAddButtonHandlerM()Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler; #0 1(Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;Ljava/lang/String;ILjava/lang/Object;Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;)V 354java/util/List 67add(Ljava/lang/Object;)Z &9 :*4OrderedListViewerWithAddAndRemove_RemoveButton_Label < =.createRemoveButtonHandlerresultLjava/util/List;LocalVariableTypeTableZLjava/util/List;getContentHandler5()Lorg/eclipse/egf/common/ui/viewers/IContentHandler;delegateButtonClicked5(Lorg/eclipse/swt/widgets/Button;Ljava/lang/Object;)V G HIgetDecoratedViewer.()Lorg/eclipse/jface/viewers/StructuredViewer; KML*org/eclipse/jface/viewers/StructuredViewer NOgetContentProvider.()Lorg/eclipse/jface/viewers/IContentProvider; Q BC S T7equals VXW1org/eclipse/egf/common/ui/viewers/IContentHandler YZcreateNewElement()Ljava/lang/Object; \^]*org/eclipse/jface/viewers/IContentProvider _` inputChangedI(Lorg/eclipse/jface/viewers/Viewer;Ljava/lang/Object;Ljava/lang/Object;)V Kb cd getSelection(()Lorg/eclipse/jface/viewers/ISelection;f.org/eclipse/jface/viewers/IStructuredSelection eh iZgetFirstElement Vk lm removeElement(Ljava/lang/Object;)VclickedButton_p Lorg/eclipse/swt/widgets/Button;data_pcontentProvider,Lorg/eclipse/jface/viewers/IContentProvider;contentHandler3Lorg/eclipse/egf/common/ui/viewers/IContentHandler; objectToAdd selection&Lorg/eclipse/jface/viewers/ISelection;objectToRemove SourceFile&OrderedListViewerWithAddAndRemove.java InnerClasses};org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons ButtonData!  = Y  Y  $ >*+ +, =*!L+#Y*%*+/2W+#Y*8*;/2W+34 5;6=8>?@ 8>A-. ,@ =. ,J BCDE *FJN*P:,R% U:-*F[I,R?*Fa:eeg: j-*F[2 YZ[\*]:^D_M`eajbsdfRnopyqrsst*uM3vwexyz{ #|~ Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/ViewerWithAddAndRemove.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 1668 Text-content-md5: f63ec3469732b87ebafd4821a8c128e7 Text-content-sha1: 80769bc5c94a758a62739129f32488e89825d3b8 Content-length: 1727 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 158org/eclipse/egf/common/ui/viewers/ViewerWithAddAndRemove;org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtonsADD_BUTTON_DATALjava/lang/String; ConstantValue LV_ADDREMOVE_BUTTON_DATA  LV_REMOVE()VCode  LineNumberTableLocalVariableTablethis:Lorg/eclipse/egf/common/ui/viewers/ViewerWithAddAndRemove;&(Lorg/eclipse/swt/widgets/Composite;)V  parent_p#Lorg/eclipse/swt/widgets/Composite;createButtonDataK()[Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData;Forg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons$ButtonData "!*org/eclipse/egf/common/ui/viewers/Messages #1OrderedListViewerWithAddAndRemove_AddButton_Label % &'createAddHandlerM()Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler; ) *(Lorg/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons;Ljava/lang/String;ILjava/lang/Object;Lorg/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler;)V , -4OrderedListViewerWithAddAndRemove_RemoveButton_Label / 0'createRemoveHandler SourceFileViewerWithAddAndRemove.java InnerClasses ButtonData!   3* %&  >*+ -.c 1YY**$(SYY*+ *.(S6706 1&',? 0',G 123 4 Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/viewers/messages.properties Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 755 Text-content-md5: d8d52e80d9266a555a5b000b2ab429ef Text-content-sha1: f7bbeec35f8682475dd952eea743b0a2643ed04b Content-length: 765 PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### SortedListViewer_UpButton_Title=Up SortedListViewer_DownButton_Title=Down OrderedListViewerWithAddAndRemove_AddButton_Label=Add OrderedListViewerWithAddAndRemove_RemoveButton_Label=Remove Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/wizard Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/wizard/page Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/bin/org/eclipse/egf/common/ui/wizard/page/AbstractWizardPage.class Node-kind: file Node-action: add Prop-content-length: 59 Text-content-length: 3612 Text-content-md5: 5a2b04975a90e5a9cf7a21d81ab49913 Text-content-sha1: 3e6fcd148ccc99998a3e38e3f337f1edf3631fd8 Content-length: 3671 K 13 svn:mime-type V 24 application/octet-stream PROPS-END 18org/eclipse/egf/common/ui/wizard/page/AbstractWizardPage#org/eclipse/jface/wizard/WizardPage_computeCompleteStatusZ_completeStatus(Ljava/lang/String;)VCode     initialize()VLineNumberTableLocalVariableTablethis:Lorg/eclipse/egf/common/ui/wizard/page/AbstractWizardPage; pageName_pLjava/lang/String;S(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jface/resource/ImageDescriptor;)V  title_p titleImage_p,Lorg/eclipse/jface/resource/ImageDescriptor;   createControl&(Lorg/eclipse/swt/widgets/Composite;)V " #$ getPageTitle()Ljava/lang/String; & ' setTitle ) *$getPageDescription , - setDescription / 01getContentNumColumn()I 3 45createCompositeI(Lorg/eclipse/swt/widgets/Composite;I)Lorg/eclipse/swt/widgets/Composite; 7 89initializeDialogUnits$(Lorg/eclipse/swt/widgets/Control;)V ; < createPageArea > ? updateButtons ACB!org/eclipse/swt/widgets/Composite DE computeSize$(II)Lorg/eclipse/swt/graphics/Point; AG HI getLayoutData()Ljava/lang/Object;Korg/eclipse/swt/layout/GridData MONorg/eclipse/swt/graphics/Point PQyI JS TQ heightHint VXWjava/lang/Math YZmax(II)I \ ]$getHelpContextId _a`org/eclipse/ui/PlatformUI bc getWorkbench()Lorg/eclipse/ui/IWorkbench; egforg/eclipse/ui/IWorkbench hi getHelpSystem,()Lorg/eclipse/ui/help/IWorkbenchHelpSystem; kml(org/eclipse/ui/help/IWorkbenchHelpSystem nosetHelp6(Lorg/eclipse/swt/widgets/Control;Ljava/lang/String;)Vparent_p#Lorg/eclipse/swt/widgets/Composite;contentsize Lorg/eclipse/swt/graphics/Point;gridData!Lorg/eclipse/swt/layout/GridData; helpContextId isReadOnly()Z { |ycomputeCompleteStatus ~ setPageComplete(Z)VisPageCompletegetCompleteStatushandlePageLayout  y   A '(Lorg/eclipse/swt/widgets/Composite;I)V!org/eclipse/swt/layout/GridLayout  Q numColumns A  setLayout#(Lorg/eclipse/swt/widgets/Layout;)V  9 setControl numColumns_p compositelayout#Lorg/eclipse/swt/layout/GridLayout; performHelp k  displayHelp SourceFileAbstractWizardPage.java!  F *+ * +, -   \ *+,-* 67 8*     4* ?@   h**!%**(+*+*.2M*,6*,:*=,@N+FJ:-L `RUR*[:^d,j6 GHJLN$P(R/T8WLZR[W\g^>hhpqNrq/9st80uvRwxy? @***z}jk l y /*zs y<   5pq01 , #$*$]$ , |y O***** 45 &AY+NY:-*-- $4&&pq&Q q X*[L+^d+ w Node-path: plugins/org.eclipse.egf.common.ui/build.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 612 Text-content-md5: 114ac067e20e72418ae277a27b135d87 Text-content-sha1: 2abf6082b9c156765939167d9a861ad872fc5692 Content-length: 657 K 13 svn:mime-type V 10 text/plain PROPS-END ## # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ## source.. = src/ output.. = bin/ bin.includes = META-INF/,\ about.html,\ .,\ plugin.properties,\ plugin.xml src.includes = about.html Node-path: plugins/org.eclipse.egf.common.ui/plugin.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 489 Text-content-md5: 57429882911dd23c753b15c7e7f06c79 Text-content-sha1: 34118efd17109cb1ac284736db073957e6c300d2 Content-length: 534 K 13 svn:mime-type V 10 text/plain PROPS-END ## # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ## pluginName=EGF Common UI (Incubation) providerName=Eclipse Modeling Project Node-path: plugins/org.eclipse.egf.common.ui/plugin.xml Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 715 Text-content-md5: 490cffa18d4aa7748bb86e1f7ffe497e Text-content-sha1: e688eff2eda31f9a04cd29f2e341e129b59fc6c9 Content-length: 760 K 13 svn:mime-type V 10 text/plain PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/activator Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/activator/AbstractUIActivator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 6734 Text-content-md5: 42af7db36929961f32d9c34009136cc8 Text-content-sha1: afff280b153799c3abbc66acfe31bebdce4ec7c2 Content-length: 6779 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2007, 2009 La Carotte Et Le Baton. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * La Carotte Et Le Baton - initial API and implementation */ package org.eclipse.egf.common.ui.activator; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.helper.StatusHelper; /** * Base class for plug-ins that integrate with the Eclipse platform UI.
* * @author fournier */ public abstract class AbstractUIActivator extends AbstractUIPlugin { private static final String ICONS_PATH = "$nl$/icons/"; //$NON-NLS-1$ /** * Returns the workbench display to be used. */ public static Display getWorkbenchDisplay() { return PlatformUI.getWorkbench().getDisplay(); } public void log(Throwable t) { log(newErrorStatus(t.getMessage(), t)); } /** * Returns a new error status for this plug-in with the given message * @param message the message to be included in the status * @param exception the exception to be included in the status or null if none * @return a new error status */ public IStatus newErrorStatus(String message, Throwable exception) { return new Status(IStatus.ERROR, getPluginID(), ICommonConstants.INTERNAL_ERROR, message, exception); } /** * Logs the given message to the platform log. * * If you have an exception in hand, call log(String, Throwable) instead. * * If you have a status object in hand call log(String, IStatus) instead. * * @param message A high level UI message describing when the problem happened. */ public void log(String message) { getLog().log(StatusHelper.newStatus(getPluginID(), IStatus.ERROR, message, null)); } /** * Logs the given message and throwable to the platform log. * * If you have a status object in hand call log(String, IStatus) instead. * * * @param message A high level UI message describing when the problem happened. * @param t The throwable from where the problem actually occurred. */ public void log(String message, Throwable t) { log(message, StatusHelper.newStatus(getPluginID(), IStatus.ERROR, message, t)); } /** * Logs the given throwable to the platform log, indicating the class and method from where it is being logged (this is not necessarily where it occurred). * * @param clazz The calling class. * @param methodName The calling method name. * @param t The throwable from where the problem actually occurred. */ public void log(Class clazz, String methodName, Throwable t) { log(NLS.bind("Exception in {0}.{1}: {2}", new Object []{ clazz.getName(), methodName, t }), t); //$NON-NLS-1$ } /** * Logs the given message and status to the platform log. * * @param status The status describing the problem. Must not be null. */ public void log(IStatus status) { log(null, status); } /** * Log the given exception along with the provided message and severity indicator */ public void log(int severity, String message, Throwable e) { log(new Status(severity, getPluginID(), 0, message, e)); } /** * Logs the given message and status to the platform log. * * @param message A high level UI message describing when the problem happened. May be null. * @param status The status describing the problem. Must not be null. */ public void log(String message, IStatus status) { // 1FTUHE0: ITPCORE:ALL - API - Status & logging - loss of semantic info if (message != null) { getLog().log(StatusHelper.newStatus(getPluginID(), IStatus.ERROR, message, null)); } getLog().log(status); } /** * Get an image descriptor for given key.
* Images must be located in 'plug-in folder'/icons * * @param key_p * the key must be the file name of the related image. * @return an {@link ImageDescriptor} or null if not found */ public ImageDescriptor getImageDescriptor(String key_p) { ImageRegistry imageRegistry = getImageRegistry(); ImageDescriptor imageDescriptor = imageRegistry.getDescriptor(key_p); if (imageDescriptor == null) { imageDescriptor = createImageDescriptor(key_p); imageRegistry.put(key_p, imageDescriptor); } return imageDescriptor; } /** * Get an image for given key.
* Images must be located in 'plug-in folder'/icons * * @param key_p * the key must be the file name of the related image. * @return an {@link Image} or null if not found */ public Image getImage(String key_p) { ImageRegistry imageRegistry = getImageRegistry(); Image image = imageRegistry.get(key_p); if (image == null) { // Create an image descriptor for given id. ImageDescriptor imageDescriptor = createImageDescriptor(key_p); // Store the (id, imageDescriptor) rather than (id,image) // because with storing (id,image) the getDescriptor method will return null in later usage // this way, everything is correctly initialized. imageRegistry.put(key_p, imageDescriptor); // Everything is all right at this step, let's get the real image image = imageRegistry.get(key_p); } return image; } /** * Create an image descriptor for given key.
* Images must be located in 'plug-in folder'/icons * * @param key_p * the key must be the file name of the related image. * @return an {@link ImageDescriptor} or null if error occurred */ protected ImageDescriptor createImageDescriptor(String key_p) { ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(getPluginID(), ICONS_PATH + key_p); return imageDescriptor; } /** * Get the plug-in ID according to MANIFEST.MF definition. * * @return a String containing the plug-in ID. */ public String getPluginID() { return getBundle().getSymbolicName(); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/constant Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/constant/IUiCommonConstants.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 869 Text-content-md5: 9576a9df29adb611c97fbd4ad78de69c Text-content-sha1: 037d31a92ceedf13429f032e4ccfbfc3f22ddee6 Content-length: 914 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.constant; /** * Common constants used in UI parts. * @author fournier */ public interface IUiCommonConstants { /** * No elements constant used by IStructuredContentProvider */ public static final Object[] NO_ELEMENT = new Object[0]; } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field/ContextElementFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2284 Text-content-md5: cec60f25ed4cea4413547ce6ca577721 Text-content-sha1: 9b3c1209691a4f0a2d73eb3141b06574f54d8d80 Content-length: 2329 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.field; import org.eclipse.egf.common.misc.ISelectionHandler; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.dialogs.SelectionDialog; /** * Implements a field editor that allows the end-user to enter a context element value. * @author Guillaume Brocard */ public class ContextElementFieldEditor extends JavaClassFieldEditor { /** * Selection handler to use if provided. */ private ISelectionHandler _selectionHandler; /** * Constructor. * @param title_p * @param openTypeDialogTitle_p * @param parent_p * @param classTypeFilter_p */ public ContextElementFieldEditor( String title_p, String openTypeDialogTitle_p, Composite parent_p, Class classTypeFilter_p ) { super( title_p, openTypeDialogTitle_p, parent_p, classTypeFilter_p ); } /** * @see org.eclipse.egf.common.ui.field.JavaClassFieldEditor#handleSelection(java.lang.Object) */ @Override protected String handleSelection(Object selectedObject_p) { String result = null; if (null != _selectionHandler) { result = _selectionHandler.handleSelection(selectedObject_p); } else { result = super.handleSelection(selectedObject_p); } return result; } /** * @see org.eclipse.egf.common.ui.field.ValidatingStringButtonFieldEditor#setDialogToOpen(org.eclipse.ui.dialogs.SelectionDialog) */ @Override public void setDialogToOpen(SelectionDialog dialogToOpen_p) { super.setDialogToOpen(dialogToOpen_p); } /** * Set the selection handler to handle selected object from the selection dialog. * @param handler_p */ public void setSelectionHandler(ISelectionHandler handler_p) { _selectionHandler = handler_p; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field/DomainFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1692 Text-content-md5: 63f4dc7f5bfde7666be74db3f015e453 Text-content-sha1: 66667d75ffc7a0a91e627088c5076324ecefa003 Content-length: 1737 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.field; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IPath; import org.eclipse.swt.widgets.Composite; /** * Implements a field editor that allows the end-user to select an {@link IFile} used as domain. * @author fournier */ public class DomainFieldEditor extends WorkspaceFileFieldEditor { /** * Constructor. * @param title_p * @param openResourceDialogTitle_p * @param parent_p * @param container_p * @param filterExtension_p */ public DomainFieldEditor( String title_p, String openResourceDialogTitle_p, Composite parent_p, IContainer container_p, String filterExtension_p ) { super( title_p, openResourceDialogTitle_p, parent_p, container_p, filterExtension_p ); } /** * @see org.eclipse.egf.common.ui.field.WorkspaceFileFieldEditor#handleFilePath(org.eclipse.core.resources.IFile) */ @Override protected String handleFilePath(IFile file_p) { // Remove first segment which is the project path. IPath result = file_p.getFullPath().removeFirstSegments(1); return result.toString(); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field/JavaClassFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 5095 Text-content-md5: 98503f7ae02c9b1c2409f9938f7c56b5 Text-content-sha1: 6801cf9008d65dd1d8be1041747e810cdf4c2ad6 Content-length: 5140 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.field; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.search.IJavaSearchConstants; import org.eclipse.jdt.internal.ui.JavaUIMessages; import org.eclipse.jdt.internal.ui.dialogs.OpenTypeSelectionDialog; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.dialogs.SelectionDialog; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.ui.helper.MessageFormatHelper; import org.eclipse.egf.common.ui.internal.validators.JavaClassValidator; import org.eclipse.egf.common.ui.toolkit.validators.IValidator; /** * Implements a field editor that allows the end-user to select a Java type. * @author fournier */ public class JavaClassFieldEditor extends ValidatingStringButtonFieldEditor { /** * Title displayed in the open type dialog. */ private String _openTypeDialogTitle; /** * Class type used to filter end-user selection. */ private Class _classTypeFilter; /** * Constructor. * @param title_p label of the text widget. * @param openTypeDialogTitle_p label displayed in the open type dialog. * @param parent_p * @param classTypeFilter_p class type filter used to filter end-user class selection. */ public JavaClassFieldEditor( String title_p, String openTypeDialogTitle_p, Composite parent_p, Class classTypeFilter_p ) { super(parent_p, title_p, null); _openTypeDialogTitle = openTypeDialogTitle_p; _classTypeFilter = classTypeFilter_p; addListeners(); } /** * @see org.eclipse.egf.common.ui.field.ValidatingStringButtonFieldEditor#handleSelection(java.lang.Object) */ @Override protected String handleSelection(Object selectedObject_p) { IType type = (IType) selectedObject_p; return type.getFullyQualifiedName(); } /** * Create an {@link OpenTypeSelectionDialog} * @see org.eclipse.egf.common.ui.field.ValidatingStringButtonFieldEditor#createDialog() */ @Override protected SelectionDialog createDialog() { // Create a Java open type dialog. SelectionDialog dialog = new OpenTypeSelectionDialog( getShell(), false, PlatformUI.getWorkbench().getProgressService(), null, IJavaSearchConstants.CLASS_AND_INTERFACE, null ); // Default dialog title. String dialogTitle = _openTypeDialogTitle; if (_classTypeFilter != null) { // Update the open type dialog title with filtered class name. String fullyQualifiedFilteredClassName = _classTypeFilter.getName(); dialogTitle = getFormattedOpenTypeDialogTitle(fullyQualifiedFilteredClassName); } // Set title and message. dialog.setTitle(dialogTitle); dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage); return dialog; } /** * Set the class type filter used when opening the open type dialog. * @param classTypeFilter_p the classTypeFilter to set */ public void setClassTypeFilter(Class classTypeFilter_p) { _classTypeFilter = classTypeFilter_p; IValidator validator = getValidator(); // Update the java class validator if any. if (validator != null && validator instanceof JavaClassValidator) { JavaClassValidator javaClassValidator = (JavaClassValidator) validator; javaClassValidator.setExpectedClassType(_classTypeFilter); } } /** * Get the formatted open type dialog title to take into account the filtered class name. * @param fullyQualifiedFilteredClassName_p */ private String getFormattedOpenTypeDialogTitle(String fullyQualifiedFilteredClassName_p) { // Get the class short name. int lastDotIndex = fullyQualifiedFilteredClassName_p.lastIndexOf(ICommonConstants.DOT_CHARACTER); return MessageFormatHelper.formatMessage( _openTypeDialogTitle, new String[] { fullyQualifiedFilteredClassName_p.substring(lastDotIndex + 1) } ); } /** * Add listeners on widgets contained by this field editor. */ protected void addListeners() { getTextControl().addModifyListener( new ModifyListener() { /** * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) */ @SuppressWarnings("synthetic-access") public void modifyText(ModifyEvent e_p) { refreshValidState(); } } ); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field/JavaScopeClassFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3836 Text-content-md5: f0bdd9f75f9c9d5ffc64e0a93ee3edf3 Text-content-sha1: 5048864425a51063f30f5698845f60630816c707 Content-length: 3881 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.field; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.search.IJavaSearchConstants; import org.eclipse.jdt.core.search.IJavaSearchScope; import org.eclipse.jdt.core.search.SearchEngine; import org.eclipse.jdt.internal.ui.JavaUIMessages; import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog; import org.eclipse.jdt.internal.ui.dialogs.OpenTypeSelectionDialog; import org.eclipse.jface.dialogs.ProgressMonitorDialog; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.dialogs.SelectionDialog; import org.eclipse.egf.common.ui.internal.field.FilteredJavaTypeSelectionExtension; /** * Implements a field editor that allows the end-user to select a Java type. * @author Xavier Maysonnave */ public class JavaScopeClassFieldEditor extends ValidatingStringButtonFieldEditor { /** * Title displayed in the open type dialog. */ private String _openTypeDialogTitle; /** * Java Project */ private IJavaProject _javaProject; /** * Class type used to filter end-user selection. */ private Class _classTypeFilter; /** * Constructor. * @param title_p label of the text widget. * @param openTypeDialogTitle_p label displayed in the open type dialog. * @param parent_p * @param classTypeFilter_p class type filter used to filter end-user class selection. */ public JavaScopeClassFieldEditor( String title_p, String openTypeDialogTitle_p, Composite parent_p, IJavaProject javaProject_p, Class classTypeFilter_p ) { super(parent_p, title_p, null); _openTypeDialogTitle = openTypeDialogTitle_p; _javaProject = javaProject_p; _classTypeFilter = classTypeFilter_p; addListeners(); } /** * @see org.eclipse.egf.common.ui.field.ValidatingStringButtonFieldEditor#handleSelection(java.lang.Object) */ @Override protected String handleSelection(Object selectedObject_p) { IType type = (IType) selectedObject_p; return type.getFullyQualifiedName(); } /** * Create an {@link OpenTypeSelectionDialog} * @see org.eclipse.egf.common.ui.field.ValidatingStringButtonFieldEditor#createDialog() */ @Override protected SelectionDialog createDialog() { FilteredTypesSelectionDialog dialog = new FilteredTypesSelectionDialog( getShell(), false, new ProgressMonitorDialog(getShell()), null, IJavaSearchConstants.CLASS, new FilteredJavaTypeSelectionExtension(_javaProject, _classTypeFilter) ); dialog.setTitle(_openTypeDialogTitle); dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage); dialog.setBlockOnOpen(true); return dialog; } /** * Add listeners on widgets contained by this field editor. */ protected void addListeners() { getTextControl().addModifyListener( new ModifyListener() { /** * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) */ @SuppressWarnings("synthetic-access") public void modifyText(ModifyEvent e_p) { refreshValidState(); } } ); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field/LabelFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2384 Text-content-md5: 98c24e7737b1a72a7372f96839afa133 Text-content-sha1: 447a9811f8a86b679ca0cd6551dd9450aec5a82a Content-length: 2429 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2007, 2009 La Carotte Et Le Baton. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * La Carotte Et Le Baton - initial API and implementation */ package org.eclipse.egf.common.ui.field; import org.eclipse.jface.preference.FieldEditor; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; /** * A field editor to display labels not associated with other widgets. * @author Guillaume Brocard */ public class LabelFieldEditor extends FieldEditor { private Label _label; public LabelFieldEditor(String labelText_p, Composite parent_p) { super("label", labelText_p, parent_p); //$NON-NLS-1$ } /** * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int) */ @Override protected void adjustForNumColumns(int numColumns_p) { ((GridData) _label.getLayoutData()).horizontalSpan = numColumns_p; } /** * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int) */ @Override protected void doFillIntoGrid(Composite parent_p, int numColumns_p) { _label = getLabelControl(parent_p); GridData gridData = new GridData(); gridData.horizontalSpan = numColumns_p; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = false; gridData.verticalAlignment = GridData.CENTER; gridData.grabExcessVerticalSpace = false; _label.setLayoutData(gridData); } /** * @see org.eclipse.jface.preference.FieldEditor#doLoad() */ @Override protected void doLoad() { // Do nothing. } /** * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault() */ @Override protected void doLoadDefault() { // Do nothing. } /** * @see org.eclipse.jface.preference.FieldEditor#doStore() */ @Override protected void doStore() { // Do nothing. } /** * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls() */ @Override public int getNumberOfControls() { return 1; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field/SpacerFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 934 Text-content-md5: 5e3108369c12f38edbea22ca76ce8176 Text-content-sha1: 79273ff72e1ccf4f860082ee675c5321ab02164d Content-length: 979 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.field; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.swt.widgets.Composite; /** * A field editor used as a separator in a preference page. * @author Guillaume Brocard */ public class SpacerFieldEditor extends LabelFieldEditor { /** * Constructor.
* Implemented as an empty label field editor. */ public SpacerFieldEditor(Composite parent_p) { super(ICommonConstants.EMPTY_STRING, parent_p); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field/ValidatingStringButtonFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3803 Text-content-md5: 390f9e2b234c784d03bdc7a5629442f8 Text-content-sha1: 79ffaca5d64f8754c9e186a41fc158ccf83491b6 Content-length: 3848 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.field; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.dialogs.SelectionDialog; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.ui.toolkit.fields.StringBrowserFieldEditor; import org.eclipse.egf.common.ui.toolkit.validators.IValidator; /** * Implement a string button field editor that delegated its validation to an {@link IValidator} object if provided. * @author Guillaume Brocard */ public class ValidatingStringButtonFieldEditor extends StringBrowserFieldEditor { /** * Dialog to open when the button is pressed. */ private SelectionDialog _dialogToOpen; /** * Constructor. * @param parent_p * @param label_p * @param dialogToOpen_p */ public ValidatingStringButtonFieldEditor( Composite parent_p, String label_p, SelectionDialog dialogToOpen_p ) { super(ICommonConstants.EMPTY_STRING, label_p, parent_p, null); _dialogToOpen = dialogToOpen_p; } /** * Checks whether the class text field contains a valid value or not. * @param force_p true means force to compute the valid state again. * @return true if the field value is valid, and false if invalid. */ public boolean isValid(boolean force_p) { // Force to refresh valid state. if (force_p) { refreshValidState(); } return isValid(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.CStringButtonFieldEditor#changePressed() */ @Override protected String changePressed() { String selectedValue = null; SelectionDialog dialogToOpen = getDialogToOpen(); // If the dialog was not set, try to create it. if (null == dialogToOpen) { dialogToOpen = createDialog(); } if (null != dialogToOpen) { if (IDialogConstants.OK_ID == dialogToOpen.open()) { // Get returned types. Object[] selection = dialogToOpen.getResult(); if (null != selection && selection.length > 0) { // We are not in multi selection context. selectedValue = handleSelection(selection[0]); } } } return selectedValue; } /** * Create a specific dialog.
* Default implementation does nothing. * @return null if not implemented. */ protected SelectionDialog createDialog() { return null; } /** * Offers a way to convert the end-user object selection into a string representation displayed in the text field editor.
* This method is called when the end-user pressed "ok" to finish its selection.
* Default behavior is to cast into a String given object selection. * @param selectedObject_p * @return a not null String. */ protected String handleSelection(Object selectedObject_p) { return (String) selectedObject_p; } /** * Set the dialog to open. * @param dialogToOpen_p */ protected void setDialogToOpen(SelectionDialog dialogToOpen_p) { _dialogToOpen = dialogToOpen_p; } /** * Return the provided dialog to open when 'Browse' button is pressed. * @return null if not set. */ protected SelectionDialog getDialogToOpen() { return _dialogToOpen; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/field/WorkspaceFileFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3886 Text-content-md5: dc7e88b4f8d31ae26e3ecc3eca989c39 Text-content-sha1: cc0bd755b23ab8393ba7e3fc55785f9979e8eb30 Content-length: 3931 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.field; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.ui.toolkit.fields.StringBrowserFieldEditor; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.dialogs.FilteredResourcesSelectionDialog; /** * Implements a field editor that allows the end-user to select an {@link IFile} in the workspace. * @author fournier */ public class WorkspaceFileFieldEditor extends StringBrowserFieldEditor { /** * Container used as root entry to open the filtered resource selection dialog. */ private IContainer _container; /** * Open resource dialog title. */ private String _openResourceDialogTitle; /** * Filter extension. */ private String _filterExtension; /** * Constructor. * @param title_p label of the text widget. * @param openResourceDialogTitle_p label displayed in the open resource dialog. * @param parent_p * @param container_p container used in open resource dialog. * @param filterExtension_p file type filter (ie *.ecore). */ public WorkspaceFileFieldEditor( String title_p, String openResourceDialogTitle_p, Composite parent_p, IContainer container_p, String filterExtension_p ) { super( ICommonConstants.EMPTY_STRING, title_p, parent_p, null ); _openResourceDialogTitle = openResourceDialogTitle_p; _container = container_p; _filterExtension = filterExtension_p; } /** * @see com.thalesgroup.mde.common.ui.toolkit.custom.CStringButtonFieldEditor#changePressed() */ @Override protected String changePressed() { String fileName = null; // Open filtered resource selection dialog. FilteredResourcesSelectionDialog dialog = new FilteredResourcesSelectionDialog(getShell(), false, _container, IResource.FILE); // Set title. dialog.setTitle(_openResourceDialogTitle); // Set initial pattern. dialog.setInitialPattern(_filterExtension); // dialog.setInitialPattern(fileName) // Open it. int result = dialog.open(); // If the end-user select something, handle it. if (result == IDialogConstants.OK_ID) { // Get returned files. Object[] files = dialog.getResult(); if (null != files && files.length > 0) { // We are not in multi selection context. IFile file = (IFile) files[0]; fileName = handleFilePath(file); } } return fileName; } /** * Allow to manage the content of the file path returned when the end-user has selected a resource.
* This implementation returns the full path of given file. * @param file_p * @return */ protected String handleFilePath(IFile file_p) { return file_p.getFullPath().toString(); } /** * Checks whether the text input field contains a valid value or not. * @param force_p true means force to compute the valid state again. * @return true if the field value is valid, and false if invalid. */ public boolean isValid(boolean force_p) { if (force_p) { refreshValidState(); } return super.isValid(); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/DataBindingHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3262 Text-content-md5: 18d8348e3001dff40070d3fc0fd35caf Text-content-sha1: 2050a578c2993b01ab2133f3af5b94631ff5cc85 Content-length: 3307 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.helper; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.beans.BeansObservables; import org.eclipse.core.databinding.observable.value.IObservableValue; import org.eclipse.core.databinding.observable.value.IValueChangeListener; import org.eclipse.jface.databinding.swt.ISWTObservableValue; import org.eclipse.jface.databinding.swt.SWTObservables; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Control; /** * Data binding helper. * @author Guillaume Brocard */ public class DataBindingHelper { /** * Create data binding between given control text attribute and named property of given object (referred to as the property holder).
* Also register given value change listener for changes on named property. * @param control_p * @param propertyName_p * @param propertyHolder_p * @param listener_p */ public static void bindTextToProperty(Control control_p, String propertyName_p, Object propertyHolder_p, IValueChangeListener listener_p) { // Create data binding. DataBindingContext bindingContext = new DataBindingContext(); IObservableValue observedProperty = BeansObservables.observeValue(propertyHolder_p, propertyName_p); // Set listener, if any. if (null != listener_p) { observedProperty.addValueChangeListener(listener_p); } // Observe text of given control, and bind it. ISWTObservableValue observedText = SWTObservables.observeText(control_p, SWT.Modify); bindingContext.bindValue(observedText, observedProperty, null, null); } /** * Create data binding between given control selection state and named property of given object (referred to as the property holder).
* Also register given value change listener for changes on named property. * @param control_p * @param propertyName_p * @param propertyHolder_p * @param listener_p */ public static void bindControlSelectionToProperty(Control control_p, String propertyName_p, Object propertyHolder_p, IValueChangeListener listener_p) { // Create data binding. DataBindingContext bindingContext = new DataBindingContext(); IObservableValue observedProperty = BeansObservables.observeValue(propertyHolder_p, propertyName_p); // Set listener, if any. if (null != listener_p) { observedProperty.addValueChangeListener(listener_p); } // Observe text of given control, and bind it. ISWTObservableValue observedControl = SWTObservables.observeSelection(control_p); bindingContext.bindValue(observedControl, observedProperty, null, null); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/DialogHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1696 Text-content-md5: c7d2153eb0d14fa2867b897c804d3e9d Text-content-sha1: 88a32d504c556b21cdf9456f1ac171882fd2bd11 Content-length: 1741 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.helper; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Shell; /** * Provides services to easily display dialogs to the end-user. * @author fournier */ public class DialogHelper { /** * Show a confirmation dialog to the end-user. * @return */ public static boolean openDeleteConfirmationDialog(Shell parent_p, Object[] arguments_p) { return openDeleteConfirmationDialog(parent_p, Messages.DeleteElementActionConfirmDialog_Message, arguments_p); } /** * Show a delete confirmation dialog to the end-user using a customized message. * @param parent_p * @param messageToFormat_p * @param arguments_p * @return */ public static boolean openDeleteConfirmationDialog(Shell parent_p, String messageToFormat_p, Object[] arguments_p) { String formatedMessage = MessageFormatHelper.formatMessage(messageToFormat_p, arguments_p); boolean confirmed = MessageDialog.openQuestion(parent_p, Messages.DeleteElementActionConfirmDialog_Title, formatedMessage); return confirmed; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/FieldEditorHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 17665 Text-content-md5: ea4967df588642a28d5cf09f49c3026b Text-content-sha1: 7e922a8a580d6d3f7fb8ffc03a6f17f0ddbe2434 Content-length: 17710 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.helper; import org.osgi.framework.Bundle; import org.eclipse.core.resources.IContainer; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jface.dialogs.DialogPage; import org.eclipse.jface.preference.FieldEditor; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocumentListener; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyledText; 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.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.ui.field.ContextElementFieldEditor; import org.eclipse.egf.common.ui.field.DomainFieldEditor; import org.eclipse.egf.common.ui.field.JavaClassFieldEditor; import org.eclipse.egf.common.ui.field.JavaScopeClassFieldEditor; import org.eclipse.egf.common.ui.field.WorkspaceFileFieldEditor; import org.eclipse.egf.common.ui.internal.validators.JavaClassValidator; import org.eclipse.egf.common.ui.toolkit.adapters.BooleanFieldEditorAdapter; import org.eclipse.egf.common.ui.toolkit.fields.CRadioGroupFieldEditor; import org.eclipse.egf.common.ui.toolkit.fields.CStringFieldEditor; import org.eclipse.egf.common.ui.toolkit.fields.ValidatingStringFieldEditor; import org.eclipse.egf.common.ui.toolkit.validators.IValidator; /** * Helper to deal with field editors used in UI. * @author fournier */ public class FieldEditorHelper { /** * Create the description field editor. * @param parent_p * @param label_p * @param tooltip_p t * @param initialText_p * @param numColumns_p * @param textModificationListener_p listener used to notify modification performed on description field content. */ public static StyledText createDescriptionFieldEditor( Composite parent_p, String label_p, String tooltip_p, String initialText_p, int numColumns_p, IDocumentListener textModificationListener_p, boolean readOnly_p ) { // Create description widget. Composite textComposite = new Composite(parent_p, SWT.NONE); GridLayout gridLayout = new GridLayout(); // The composite only have one column. gridLayout.numColumns = 1; // No margin. gridLayout.marginWidth = 0; gridLayout.marginHeight = 0; // Set the text composite layout. textComposite.setLayout(gridLayout); // Set the text composite grid data. GridData textCompositeLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true); textComposite.setLayoutData(textCompositeLayoutData); textCompositeLayoutData.horizontalSpan = numColumns_p; // Create the description label on left edge. Label descriptionLabel = new Label(textComposite, SWT.LEFT); descriptionLabel.setText(label_p); // Create the text field using jface.text framework. IDocument document = new Document(); // Set initial value. if (null != initialText_p) { document.set(initialText_p); } // Register listener. document.addDocumentListener(textModificationListener_p); // Back to ui stuff. // Create a viewer to display the text. int textViewerStyle = SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER; SourceViewer textViewer = new SourceViewer( textComposite, null, readOnly_p ? textViewerStyle | SWT.READ_ONLY : textViewerStyle ); textViewer.setDocument(document); // Get the created text. StyledText styledText = textViewer.getTextWidget(); styledText.setFont(parent_p.getFont()); // Set its layout data. GridData styledTextLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true); styledText.setLayoutData(styledTextLayoutData); // Force the composite to get an user-friendly size. FormHelper.forceControlSize(textComposite, 60, 8); return styledText; } /** * Create a check box field editor. * @param parent_p parent_p of the underlying widgets. * @param page_p the page where the created field editor is displayed. * @param label_p label of the field editor. * @param labelTooltip_p tooltip of the Label of the created field editor, provides information related to the field. * @param initialValue_p initial value of the check box. * @param horizintalIndent_p * @param verticalIndent_p * @return */ public static BooleanFieldEditorAdapter createCheckBoxFieldEditor( Composite parent_p, DialogPage page_p, String label_p, String labelTooltip_p, boolean initialValue_p, final int horizintalIndent_p, final int verticalIndent_p, final boolean readOnly_p ) { BooleanFieldEditorAdapter checkBoxFieldEditor = new BooleanFieldEditorAdapter( ICommonConstants.EMPTY_STRING, label_p, SWT.LEFT, parent_p ) { /** * @see org.eclipse.jface.preference.BooleanFieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int) */ @Override protected void doFillIntoGrid(Composite parent__p, int numColumns_p) { super.doFillIntoGrid(parent__p, numColumns_p); Button checkBox = getChangeControl(parent__p); // Read Only Mode checkBox.setEnabled(readOnly_p == false); // Get the layout data. GridData gd = (GridData) checkBox.getLayoutData(); // Insert horizontal and vertical values. gd.horizontalIndent = horizintalIndent_p; gd.verticalIndent = verticalIndent_p; } }; // Set the owner page. checkBoxFieldEditor.setPage(page_p); Button checkbox = (Button) checkBoxFieldEditor.getValueControl(); // Set the tooltip checkbox.setToolTipText(labelTooltip_p); // Set the initial value. checkbox.setSelection(initialValue_p); return checkBoxFieldEditor; } /** * Create a group with given parameters. * @param parent_p * @param label_p label displayed by the widget (can be null). * @param style_p * @param numColumns_p value of the horizontal span * @return */ public static Group createGroup( Composite parent_p, String label_p, int style_p, int numColumns_p ) { Group group = new Group(parent_p, style_p); if (null != label_p) { group.setText(label_p); } group.setFont(parent_p.getFont()); GridLayout layout = new GridLayout(); layout.horizontalSpacing = 8; layout.numColumns = numColumns_p; // Set the layout. group.setLayout(layout); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = numColumns_p; // Set the layout data. group.setLayoutData(gd); return group; } /** * Create a string field editor for given parameters. * @param parent_p parent_p of the underlying widgets. * @param page_p the page where the created field editor is displayed. * @param label_p label of the field editor. * @param labelTooltip_p tooltip of the Label of the created field editor, provides information related to the field. * @param textTooltip_p tooltip of the Text of the created field editor, used as an advisor to help the end-user to enter data that match the expected field * format. * @param textLimit_p the maximum number of characters that the field editor is capable of holding, {@link SWT#DEFAULT} means unlimited. * @param fieldEditorValidator_p the field editor validator used when the editor check its state. * @return */ public static ValidatingStringFieldEditor createStringFieldEditor( Composite parent_p, DialogPage page_p, String label_p, String labelTooltip_p, String textTooltip_p, int textLimit_p, IValidator fieldEditorValidator_p, boolean readOnly_p ) { // Create the field editor. ValidatingStringFieldEditor fieldEditor = new ValidatingStringFieldEditor( ICommonConstants.EMPTY_STRING, label_p, CStringFieldEditor.UNLIMITED, CStringFieldEditor.VALIDATE_ON_MODIFICATION, parent_p, readOnly_p ? SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY : SWT.SINGLE | SWT.BORDER ); // Set the owner page. fieldEditor.setPage(page_p); // Set the validator. fieldEditor.setValidator(fieldEditorValidator_p); // Set the label tooltip if (null != labelTooltip_p) { Label label = fieldEditor.getLabel(); label.setToolTipText(labelTooltip_p); } // Set the text tooltip if (null != textTooltip_p) { Text text = fieldEditor.getTextControl(); text.setToolTipText(textTooltip_p); } // Set the text limit if (textLimit_p != SWT.DEFAULT) { fieldEditor.setTextLimit(textLimit_p); } return fieldEditor; } /** * Create a radio group field editor. * @param parent_p * @param page_p the page where the created field editor is displayed. * @param title_p * @param numColumns_p * @param labelAndValues_p * @param readOnly_p * @return */ public static CRadioGroupFieldEditor createRadioGroupFieldEditor( Composite parent_p, String title_p, int numColumns_p, String[][] labelAndValues_p, boolean readOnly_p ) { CRadioGroupFieldEditor group = new CRadioGroupFieldEditor( ICommonConstants.EMPTY_STRING, title_p, numColumns_p, labelAndValues_p, parent_p, true ); // Read Only Mode group.getRadioBoxControl(parent_p).setEnabled(readOnly_p == false); return group; } /** * Create a Java class field editor. * @param parent_p * @param page_p the page where the created field editor is displayed. * @param title_p * @param openTypeDialogTitle_p * @param classLoader_p * @param bundle_p * @param classTypeFilter_p * @return */ public static JavaScopeClassFieldEditor createJavaScopeClassFieldEditor( Composite parent_p, DialogPage page_p, String title_p, String openTypeDialogTitle_p, IJavaProject javaProject_p, Class classTypeFilter_p, final boolean readOnly_p ) { JavaScopeClassFieldEditor fieldEditor = new JavaScopeClassFieldEditor( title_p, openTypeDialogTitle_p, parent_p, javaProject_p, classTypeFilter_p ) { @Override protected void doFillIntoGrid(Composite parent__p, int numColumns_p) { super.doFillIntoGrid(parent__p, numColumns_p); getChangeControl(parent__p).setEnabled(readOnly_p == false); } }; fieldEditor.setPage(page_p); // An empty string is not allowed fieldEditor.setEmptyStringAllowed(false); // Enter directly the class name is not allowed. ((Text) fieldEditor.getValueControl()).setEditable(false); return fieldEditor; } /** * Create a Java class field editor. * @param parent_p * @param page_p the page where the created field editor is displayed. * @param title_p * @param openTypeDialogTitle_p * @param classLoader_p * @param bundle_p * @param classTypeFilter_p * @return */ public static JavaClassFieldEditor createJavaClassFieldEditor( Composite parent_p, DialogPage page_p, String title_p, String openTypeDialogTitle_p, ClassLoader classLoader_p, Bundle bundle_p, Class classTypeFilter_p, final boolean readOnly_p ) { JavaClassFieldEditor fieldEditor = new JavaClassFieldEditor( title_p, openTypeDialogTitle_p, parent_p, classTypeFilter_p ) { @Override protected void doFillIntoGrid(Composite parent__p, int numColumns_p) { super.doFillIntoGrid(parent__p, numColumns_p); getChangeControl(parent__p).setEnabled(readOnly_p == false); } }; initializeJavaClassFieldEditor( page_p, classLoader_p, bundle_p, classTypeFilter_p, fieldEditor ); return fieldEditor; } /** * Create a context element field editor. * @param parent_p * @param page_p the page where the created field editor is displayed. * @param title_p * @param openTypeDialogTitle_p * @param classLoader_p * @param classTypeFilter_p * @return */ public static ContextElementFieldEditor createContextElementFieldEditor( Composite parent_p, DialogPage page_p, String title_p, String openTypeDialogTitle_p, ClassLoader classLoader_p, Bundle bundle_p, Class classTypeFilter_p, final boolean readOnly_p ) { ContextElementFieldEditor fieldEditor = new ContextElementFieldEditor( title_p, openTypeDialogTitle_p, parent_p, classTypeFilter_p ) { @Override protected void doFillIntoGrid(Composite parent__p, int numColumns_p) { super.doFillIntoGrid(parent__p, numColumns_p); getChangeControl(parent__p).setEnabled(readOnly_p == false); } }; initializeJavaClassFieldEditor( page_p, classLoader_p, bundle_p, classTypeFilter_p, fieldEditor ); return fieldEditor; } /** * Initialize a field editor based on {@link JavaClassFieldEditor}. * @param page_p * @param classLoader_p * @param classTypeFilter_p * @param fieldEditor_p */ private static void initializeJavaClassFieldEditor( DialogPage page_p, ClassLoader classLoader_p, Bundle bundle_p, Class classTypeFilter_p, JavaClassFieldEditor fieldEditor_p ) { fieldEditor_p.setPage(page_p); // An empty string is not allowed fieldEditor_p.setEmptyStringAllowed(false); // Enter directly the class name is not allowed. ((Text) fieldEditor_p.getValueControl()).setEditable(false); // Set a validator. fieldEditor_p.setValidator(new JavaClassValidator(classLoader_p, bundle_p, classTypeFilter_p)); } /** * Create a field editor that allows the end-user to select a file located in given container. * @param parent_p * @param title_p * @param openResourceDialogTitle_p * @param container_p * @param filterExtension_p * @return */ public static WorkspaceFileFieldEditor createWorkspaceFileEditor( Composite parent_p, String title_p, String openResourceDialogTitle_p, IContainer container_p, String filterExtension_p, final boolean readOnly_p ) { WorkspaceFileFieldEditor fieldEditor = new WorkspaceFileFieldEditor( title_p, openResourceDialogTitle_p, parent_p, container_p, filterExtension_p ) { @Override protected void doFillIntoGrid(Composite parent__p, int numColumns_p) { super.doFillIntoGrid(parent__p, numColumns_p); getChangeControl(parent__p).setEnabled(readOnly_p == false); } }; // Empty string is not allowed. fieldEditor.setEmptyStringAllowed(false); return fieldEditor; } /** * Create a field editor that allows the end-user to select a domain file located in given container. * @param parent_p * @param title_p * @param openResourceDialogTitle_p * @param container_p * @param filterExtension_p * @return */ public static DomainFieldEditor createDomainFieldEditor( Composite parent_p, String title_p, String openResourceDialogTitle_p, IContainer container_p, String filterExtension_p, final boolean readOnly_p ) { DomainFieldEditor fieldEditor = new DomainFieldEditor( title_p, openResourceDialogTitle_p, parent_p, container_p, filterExtension_p ) { @Override protected void doFillIntoGrid(Composite parent__p, int numColumns_p) { super.doFillIntoGrid(parent__p, numColumns_p); getChangeControl(parent__p).setEnabled(readOnly_p == false); } }; // Empty string is not allowed. fieldEditor.setEmptyStringAllowed(false); // Set domain path Text widget as a non editable widget. ((Text) fieldEditor.getValueControl()).setEditable(false); return fieldEditor; } /** * Layout given field editor on given number of columns. * @param parent_p * @param fieldEditor_p * @param numColumns_p */ public static void layoutFieldEditor(Composite parent_p, FieldEditor fieldEditor_p, int numColumns_p) { // Force parent layout to have given number of columns. ((GridLayout) parent_p.getLayout()).numColumns = numColumns_p; // Ask the type group to layout on given number of columns. fieldEditor_p.fillIntoGrid(parent_p, numColumns_p); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/FormHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 9610 Text-content-md5: 6779814b62a86baeb04dc77299396e6b Text-content-sha1: 8dfc24d9cb54e0279457f3b6c3aced77be3dfe5f Content-length: 9655 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.helper; import org.eclipse.egf.common.misc.Couple; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.FontMetrics; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; 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.Label; import org.eclipse.swt.widgets.Layout; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.IFormColors; import org.eclipse.ui.forms.events.IHyperlinkListener; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ImageHyperlink; import org.eclipse.ui.forms.widgets.Section; import org.eclipse.ui.forms.widgets.TableWrapData; import org.eclipse.ui.forms.widgets.TableWrapLayout; /** * UI Forms helper.
* Allows creation of Composites, Layouts and Forms widgets. * @author Guillaume Brocard */ public class FormHelper { /** * Layout usable types. */ public static enum LayoutType {GRID_LAYOUT, TABLEWRAP_LAYOUT} /** * Create a new composite and set the layout using {@link #updateCompositeLayoutWithLayoutType(Composite, org.eclipse.egf.common.ui.helper.FormHelper.LayoutType, int)} method. * @param toolkit_p * @param parent_p * @param numColumns_p * @return */ public static Composite createCompositeWithLayoutType( FormToolkit toolkit_p, Composite parent_p, LayoutType layoutType_p, int numColumns_p, boolean equalWidth_p ) { Composite result = toolkit_p.createComposite(parent_p); updateCompositeLayoutWithLayoutType(result, layoutType_p, numColumns_p, equalWidth_p); return result; } /** * Update given composite with given layout type and given number of columns (if it makes any sense).
* Also set the layout data to {@link #updateControlLayoutDataWithLayoutTypeData(Composite, org.eclipse.egf.common.ui.helper.FormHelper.LayoutType)}. * @param composite_p * @param layoutType_p * @param numColumns_p */ public static Object updateCompositeLayoutWithLayoutType( Composite composite_p, LayoutType layoutType_p, int numColumns_p, boolean equalWidth_p ) { Layout selectedLayout = null; if (LayoutType.GRID_LAYOUT.equals(layoutType_p)) { GridLayout layout = new GridLayout(); layout.numColumns = numColumns_p; layout.makeColumnsEqualWidth = equalWidth_p; selectedLayout = layout; } else if (LayoutType.TABLEWRAP_LAYOUT.equals(layoutType_p)) { TableWrapLayout layout = new TableWrapLayout(); layout.numColumns = numColumns_p; layout.makeColumnsEqualWidth = equalWidth_p; selectedLayout = layout; } // Do not set neither layout nor layout data if layout could not be created. if (null != selectedLayout) { composite_p.setLayout(selectedLayout); updateControlLayoutDataWithLayoutTypeData(composite_p, layoutType_p); } return selectedLayout; } /** * Update given control layout data depending on given layout type.
* Replace layout data is set to fill/grab in both directions, if it makes any sense. * @param control_p */ public static Object updateControlLayoutDataWithLayoutTypeData(Control control_p, LayoutType layoutType_p) { Object layoutData = null; if (LayoutType.GRID_LAYOUT.equals(layoutType_p)) { layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); } else if (LayoutType.TABLEWRAP_LAYOUT.equals(layoutType_p)) { layoutData = new TableWrapData(TableWrapData.FILL_GRAB); } // Do not set layout data if it could not be created. if (null != layoutData) { control_p.setLayoutData(layoutData); } return layoutData; } /** * Create a section with a composite child using given child layout type. * @param toolkit_p * @param parent_p * @param sectionStyle_p * @param layoutType_p * @param childNumColumns_p * @param equalWidth_p * @return */ public static Couple createSectionWithChildComposite( FormToolkit toolkit_p, Composite parent_p, int sectionStyle_p, LayoutType layoutType_p, int childNumColumns_p, boolean equalWidth_p ) { Section resultingSection = toolkit_p.createSection(parent_p, sectionStyle_p); updateControlLayoutDataWithLayoutTypeData(resultingSection, layoutType_p); Composite childComposite = createCompositeWithLayoutType( toolkit_p, resultingSection, layoutType_p, childNumColumns_p, equalWidth_p ); resultingSection.setClient(childComposite); return new Couple(resultingSection, childComposite); } /** * Create a user text widget with preceding label.
* Requires at least a two columns layout so that both the label and the text are displayed on the same line. * @param toolkit_p * @param parent_p * @param labelMessage_p * @param initialText_p * @param editable_p * @return */ public static Couple createLabelAndText( FormToolkit toolkit_p, Composite parent_p, String labelMessage_p, String initialText_p, boolean editable_p ) { // Create label. Label label = toolkit_p.createLabel(parent_p, labelMessage_p, SWT.WRAP); label.setForeground(toolkit_p.getColors().getColor(IFormColors.TITLE)); // Create text. Text text = new Text( parent_p, editable_p ? SWT.BORDER : SWT.BORDER | SWT.READ_ONLY ); text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // Set existing value. if (null != initialText_p) { text.setText(initialText_p); } return new Couple(label, text); } /** * Create a user text widget with preceding label and following button.
* Requires at least a three columns layout so that the label, the text and the button are displayed on the same line. * @param toolkit_p * @param parent_p * @param labelMessage_p * @param buttonLabel_p * @param listener_p * @return */ public static Couple createLabelTextAndButton( FormToolkit toolkit_p, Composite parent_p, String labelMessage_p, String buttonLabel_p, SelectionListener listener_p ) { // Create label and text. Couple labelAndText = createLabelAndText(toolkit_p, parent_p, labelMessage_p, null, true); // Create button. Button button = toolkit_p.createButton(parent_p, buttonLabel_p, SWT.PUSH); // Add button listener. if (null != listener_p) { button.addSelectionListener(listener_p); } return new Couple(labelAndText.getValue(), button); } /** * Create a link with a label description.
* Requires a two columns layout so that both the link and the label are displayed on the same line. * @param toolkit_p * @param parent_p * @param icon_p * @param linkText_p * @param linkRef_p * @param linkDescription_p * @param listener_p */ public static void createLinkWithDescription( FormToolkit toolkit_p, Composite parent_p, Image icon_p, String linkText_p, Object linkRef_p, String linkDescription_p, IHyperlinkListener listener_p ) { ImageHyperlink specificationLink = toolkit_p.createImageHyperlink(parent_p, SWT.WRAP); specificationLink.setText(linkText_p); specificationLink.setImage(icon_p); specificationLink.setHref(linkRef_p); specificationLink.addHyperlinkListener(listener_p); toolkit_p.createLabel(parent_p, linkDescription_p, SWT.WRAP); } /** * Force control size. * @param control_p * @param widthInChars_p The expected width, in number of chars to display. * @param heightInChars_p The expected height, in number of chars to display. */ public static void forceControlSize(Control control_p, int widthInChars_p, int heightInChars_p) { // Preconditions. if ((null == control_p) || (0 >= widthInChars_p) || (0 >= heightInChars_p)) { return; } // Get font metrics. GC gc = new GC(control_p); FontMetrics fontMetrics = gc.getFontMetrics(); gc.dispose(); // Get layout data. Object layoutData = control_p.getLayoutData(); if (layoutData instanceof GridData) { GridData data = (GridData) layoutData; data.widthHint = Dialog.convertWidthInCharsToPixels(fontMetrics, widthInChars_p); data.heightHint = Dialog.convertHeightInCharsToPixels(fontMetrics, heightInChars_p); } else if (layoutData instanceof TableWrapData) { TableWrapData data = (TableWrapData) layoutData; data.heightHint = Dialog.convertHeightInCharsToPixels(fontMetrics, heightInChars_p); } } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/MessageFormatHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1171 Text-content-md5: 983ff86a579e252adedb7a7f8321cbdb Text-content-sha1: 646b701ec622a2e42fc9c5422dc67e23fcd15033 Content-length: 1216 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.helper; import org.eclipse.egf.common.helper.StringHelper; /** * Provides services to format messages rendered in UI.
* * @author fournier */ public class MessageFormatHelper { /** * Format given message with given arguments * * @param notFormatedMessage_p * @param arguments_p * @return a formatted message * @since 1.2.0_M2 : use */ public static String formatMessage(String notFormatedMessage_p, Object[] arguments_p) { return StringHelper.formatMessage(notFormatedMessage_p, arguments_p); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/Messages.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1290 Text-content-md5: 2836ca1d305f01f34a7658e78df71065 Text-content-sha1: 2ddddb13b2ef7685e1e15306c4c46cb6971ff3d4 Content-length: 1335 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.helper; import org.eclipse.osgi.util.NLS; /** * I18n support. * @author fournier */ public class Messages extends NLS { private static final String BUNDLE_NAME = "org.eclipse.egf.common.ui.helper.messages"; //$NON-NLS-1$ // Remove operation labels. public static String DeleteElementActionConfirmDialog_Title; public static String DeleteElementActionConfirmDialog_Message; // Workbench helper messages. public static String OpenEditor_ErrorMessage; static { // initialize resource bundle NLS.initializeMessages(BUNDLE_NAME, Messages.class); } /** * Constructor. */ private Messages() { // Do nothing. } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/ViewerHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2498 Text-content-md5: 509e5c9101098ae3f77db7f010134e61 Text-content-sha1: f83ead85cad482bdbdd225abd95a09e6ac2ac55d Content-length: 2543 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.helper; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.swt.widgets.Control; /** * @author Guillaume Brocard */ public class ViewerHelper { /** * Refresh in an efficient way the specified viewer completely with information freshly obtained from this viewer's model. * @param viewer_p */ public static void refresh(StructuredViewer viewer_p) { refresh(viewer_p, true); } /** * Refresh in an efficient way the specified viewer completely with information freshly obtained from this viewer's model.
* If updateLabels_p is true then labels for otherwise unaffected elements are updated as well.
* Otherwise, it assumes labels for existing elements are unchanged, and labels are only obtained as needed (for example, for new elements). *

* Calling refresh(viewer, true) has the same effect as refresh(viewer). *

* Note that the implementation may still obtain labels for existing elements even if updateLabels is false. The intent is simply to allow * optimization where possible. * @param updateLabels true to update labels for existing elements, false to only update labels as needed, assuming that labels * for existing elements are unchanged. * @param viewer_p * @param updateLabels_p */ public static void refresh(StructuredViewer viewer_p, boolean updateLabels_p) { // Precondition. if (null == viewer_p) { return; } // Get the related control. Control control = viewer_p.getControl(); try { // Switch off redraw control.setRedraw(false); // Refresh it... viewer_p.refresh(updateLabels_p); } finally { // Finally, redraw again. control.setRedraw(true); } } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/WorkbenchHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 11603 Text-content-md5: 36828558f8aa02ffda0d18d90f8ee3b4 Text-content-sha1: fd677f6dd4b1af266902119d37535eb05c7c913b Content-length: 11648 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.helper; import java.util.ArrayList; import org.apache.log4j.Logger; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.egf.common.ui.internal.resource.ExtendedUnmodifiableFile; import org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart; import org.eclipse.jdt.ui.JavaUI; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IEditorDescriptor; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorReference; import org.eclipse.ui.IEditorRegistry; import org.eclipse.ui.IPartListener; import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.FileEditorInput; /** * Provides services to easily deal with workbench stuffs (e.g open an editor).
* Most of the services need to be called within the UI Thread. * @author Guillaume Brocard */ public class WorkbenchHelper { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(WorkbenchHelper.class.getPackage().getName()); /** * Returns the currently active page for the active workbench window.
* Returns null if there is no active workbench page.
* Returns null if called from a non-UI thread. * @return the active workbench page, or null if there is no active workbench page or if called from a non-UI thread */ public static IWorkbenchPage getActiveWorkbenchPage() { IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); if (activeWorkbenchWindow != null) { return activeWorkbenchWindow.getActivePage(); } return null; } /** * Open file based editor for given file relative path. * @param fileRelativePath_p A path relative to workspace, starting with the project name. * @param editorId_p * @return */ public static IEditorPart openFileEditor(String fileRelativePath_p, String editorId_p, boolean editable_p) { // Preconditions. if (fileRelativePath_p == null || editorId_p == null) { return null; } // Get file depending on 'editability'. IFile file = null; IPath filePath = new Path(fileRelativePath_p); if (editable_p) { file = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath); } else { file = new ExtendedUnmodifiableFile(filePath); } return openEditor(new FileEditorInput(file), editorId_p, PlatformUI.getWorkbench().getDisplay().getActiveShell()); } /** * Open an editor on the given input. * @param editorInput_p * @param editorId_p * @return an open and active editor, or null if an external editor was opened. */ public static IEditorPart openEditor(IEditorInput editorInput_p, String editorId_p, Shell shell_p) { IEditorPart openEditor = null; // Preconditions. if (editorInput_p == null || editorId_p == null) { return openEditor; } try { IWorkbenchPage activeWorkbenchPage = getActiveWorkbenchPage(); if (activeWorkbenchPage != null) { openEditor = activeWorkbenchPage.openEditor(editorInput_p, editorId_p); } else { throw new PartInitException("No active workbench page was found to open an editor"); //$NON-NLS-1$ } } catch (PartInitException exception_p) { StringBuilder loggerMessage = new StringBuilder("WorkbenchHelper.openEditor(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); MessageDialog.openError(shell_p, Messages.OpenEditor_ErrorMessage, exception_p.getMessage()); } return openEditor; } /** * Open file based editor for given file relative path with registered editor as default one. * @param fileRelativePath_p A path relative to workspace, starting with the project name. * @return */ public static IEditorPart openDefaultFileEditor(String fileRelativePath_p, Shell shell_p) { // Preconditions. if (fileRelativePath_p == null) { return null; } // Get the editor registry. IEditorRegistry editorRegistry = PlatformUI.getWorkbench().getEditorRegistry(); // Get default editor descriptor for specified file path. IEditorDescriptor defaultEditor = editorRegistry.getDefaultEditor(fileRelativePath_p); if (defaultEditor != null) { return openFileEditor(fileRelativePath_p, defaultEditor.getId(), true); } return null; } /** * Save given editor. * @param editor_p */ public static void saveEditor(IEditorPart editor_p) { if (editor_p.isDirty()) { editor_p.doSave(new NullProgressMonitor()); } } /** * Close file based editors for given file relative path.
* Note that all editors are asked to save content as they are closed. * @param fileRelativePath_p * @return */ public static boolean closeFileEditors(String fileRelativePath_p) { boolean result = false; // Precondition. if (fileRelativePath_p == null) { return result; } IWorkbenchPage activeWorkbenchPage = getActiveWorkbenchPage(); IFile fileToClose = null; try { fileToClose = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fileRelativePath_p)); } catch (Exception e_p) { StringBuilder loggerMessage = new StringBuilder("WorkbenchHelper.closeFileEditor(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), e_p); } // Preconditions. if (activeWorkbenchPage == null || fileToClose == null) { return result; } // Search for the editors working on this file. result = true; IEditorReference[] editorReferences = activeWorkbenchPage.getEditorReferences(); for (int i = 0; i < editorReferences.length; i++) { IEditorPart editorPart = editorReferences[i].getEditor(false); IEditorInput editorInput = editorPart.getEditorInput(); if (editorInput != null) { IFile file = (IFile) editorInput.getAdapter(IFile.class); if (fileToClose.equals(file)) { // Save content at closure time. result &= closeEditor(editorPart, true); } } } return result; } /** * Close the given editor. The editor must belong to this workbench page. *

* If the editor has unsaved content and save_p is true,
* the user will be given the opportunity to save it. *

* @param editor_p the edit or to close. * @param save_p true to save the editor contents if required (recommended),
* and false to discard any unsaved changes. * @return true if the editor was successfully closed, and false if the editor is still open. */ public static boolean closeEditor(IEditorPart editor_p, boolean save_p) { IWorkbenchPage activeWorkbenchPage = getActiveWorkbenchPage(); if (activeWorkbenchPage != null) { return activeWorkbenchPage.closeEditor(editor_p, save_p); } return false; } /** * Close a view for specified id in the current workbench page. * @param viewId_p */ public static void closeView(String viewId_p) { // Precondition. if (viewId_p == null) { return; } IWorkbenchPage activeWorkbenchPage = WorkbenchHelper.getActiveWorkbenchPage(); IViewPart viewPart = activeWorkbenchPage.findView(viewId_p); if (viewPart != null) { activeWorkbenchPage.hideView(viewPart); } } /** * Open a view for specified id in the current workbench page. * @param viewId_p */ public static void openView(String viewId_p) { // Precondition. if (viewId_p == null) { return; } IWorkbenchPage activeWorkbenchPage = WorkbenchHelper.getActiveWorkbenchPage(); try { activeWorkbenchPage.showView(viewId_p); } catch (PartInitException exception_p) { StringBuilder loggerMessage = new StringBuilder("WorkbenchHelper.openView(..) _ "); //$NON-NLS-1$ __logger.warn(loggerMessage.toString(), exception_p); } } /** * Return whether or not the view for specified id is open. * @param viewId_p * @return true means open. */ public static boolean isViewOpen(String viewId_p) { // Precondition. if (viewId_p == null) { return false; } IWorkbenchPage activeWorkbenchPage = WorkbenchHelper.getActiveWorkbenchPage(); if (activeWorkbenchPage != null) { return activeWorkbenchPage.findView(viewId_p) != null; } return false; } /** * Add a part listener in the active workbench page. * @param listener_p */ public static void addPartListener(IPartListener listener_p) { // Get the active page IWorkbenchPage activeWorkbenchPage = getActiveWorkbenchPage(); if (activeWorkbenchPage != null) { activeWorkbenchPage.addPartListener(listener_p); } } /** * Get all open editors in the active workbench page for given editor id. * @param editorId_p the editor id, the one use to open the related editor. * @return a not null array. */ public static IEditorReference[] getAllOpenEditors(String editorId_p) { ArrayList openEditors = new ArrayList(0); IWorkbenchPage activePage = getActiveWorkbenchPage(); // Get all open editors in the active page. IEditorReference[] allEditorReferences = activePage.getEditorReferences(); // Loop over all open editors in the active page; add in the resulting list, the ones for which the id is matching the given one. for (IEditorReference editorReference : allEditorReferences) { if (editorId_p.equals(editorReference.getId())) { openEditors.add(editorReference); } } return openEditors.toArray(new IEditorReference[openEditors.size()]); } /** * Get the Package Explorer view.
* Returns null if there is no active workbench page.
* Returns null if called from a non-UI thread.
* Returns null if package explorer is not open. * @return the Package Explorer view, or null if there is no active workbench page or if called from a non-UI thread or if package explorer is * not open. */ public static PackageExplorerPart getPackageExplorerView() { IWorkbenchPage activeWorkbenchPage = WorkbenchHelper.getActiveWorkbenchPage(); if (activeWorkbenchPage != null) { return (PackageExplorerPart) activeWorkbenchPage.findView(JavaUI.ID_PACKAGES); } return null; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/helper/messages.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 748 Text-content-md5: 6e7d0cc0c15baacdadf57274ff88e9b8 Text-content-sha1: b95be8d36371b44237f6ba0eaf96f4f3440436d2 Content-length: 793 K 13 svn:mime-type V 10 text/plain PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### DeleteElementActionConfirmDialog_Title=Confirm delete DeleteElementActionConfirmDialog_Message=Are you sure you want to delete {0} ''{1}''? OpenEditor_ErrorMessage=Opening an editor Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/field Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/field/FilteredJavaTypeSelectionExtension.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3470 Text-content-md5: 1fe7a9c57fe1edb8c8b6b0349c606601 Text-content-sha1: 3ca565ccc4613239e419aa0577a35768d89ce136 Content-length: 3515 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.internal.field; import org.apache.log4j.Logger; import org.eclipse.core.runtime.Assert; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog; import org.eclipse.jdt.ui.dialogs.ITypeInfoFilterExtension; import org.eclipse.jdt.ui.dialogs.ITypeInfoRequestor; import org.eclipse.jdt.ui.dialogs.TypeSelectionExtension; import org.eclipse.egf.common.constant.ICommonConstants; /** * Filter end-user selection in a {@link FilteredTypesSelectionDialog} according to a Java type. * @author Xavier Maysonnave */ public class FilteredJavaTypeSelectionExtension extends TypeSelectionExtension { /** * Log4j reference logger. */ protected static final Logger __logger = Logger.getLogger(FilteredJavaTypeSelectionExtension.class.getPackage().getName()); /** * classTypeFilter */ protected Class _classTypeFilter; /** * IJavaProject */ protected IJavaProject _javaProject; /** * Constructor. * @param classTypeFilter_p */ public FilteredJavaTypeSelectionExtension(IJavaProject javaProject_p, Class classTypeFilter_p) { Assert.isNotNull(javaProject_p); Assert.isNotNull(classTypeFilter_p); _javaProject = javaProject_p; _classTypeFilter = classTypeFilter_p; } /** * @see org.eclipse.jdt.ui.dialogs.TypeSelectionExtension#getFilterExtension() */ @Override public ITypeInfoFilterExtension getFilterExtension() { return new ITypeInfoFilterExtension() { /** * @see org.eclipse.jdt.ui.dialogs.ITypeInfoFilterExtension#select(org.eclipse.jdt.ui.dialogs.ITypeInfoRequestor) */ public boolean select(ITypeInfoRequestor typeInfoRequestor_p) { // Build the fully qualified class name. StringBuilder fqn = new StringBuilder( typeInfoRequestor_p.getPackageName() ).append( ICommonConstants.DOT_CHARACTER ).append( typeInfoRequestor_p.getTypeName() ); try { IType type = _javaProject.findType(fqn.toString()); if (type != null) { for (String i : type.getSuperInterfaceNames()) { if (_classTypeFilter.getName().equals(i)) { return true; } } } } catch (JavaModelException jme) { return true; } return false; } }; } public static boolean implementInterface(Class clazz, String interfaceName) { if (clazz == null || interfaceName == null) { return false; } for (Class interfaces : clazz.getInterfaces()) { if (interfaceName.equals(interfaces.getName())) { return true; } } return implementInterface(clazz.getSuperclass(), interfaceName); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/field/FilteredTypeSelectionExtension.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3052 Text-content-md5: afa903f6f697801deafed5c1f5e4e153 Text-content-sha1: 92a06850fa7bdb33d103305dff8fce35a685d4d7 Content-length: 3097 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.internal.field; import org.apache.log4j.Logger; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.helper.ClassLoadingHelper; import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog; import org.eclipse.jdt.ui.dialogs.ITypeInfoFilterExtension; import org.eclipse.jdt.ui.dialogs.ITypeInfoRequestor; import org.eclipse.jdt.ui.dialogs.TypeSelectionExtension; /** * Filter end-user selection in a {@link FilteredTypesSelectionDialog} according to a Java type. * @author fournier * @deprecated */ public class FilteredTypeSelectionExtension extends TypeSelectionExtension { /** * Log4j reference logger. */ protected static final Logger __logger = Logger.getLogger(FilteredTypeSelectionExtension.class.getPackage().getName()); /** * Classloader that is able to load end-user class selection. */ protected ClassLoader _classLoader; /** * Class use to filter end-user selection. */ protected Class _classTypeFilter; /** * Constructor. * @param classTypeFilter_p */ public FilteredTypeSelectionExtension(ClassLoader classLoader_p, Class classTypeFilter_p) { _classLoader = classLoader_p; _classTypeFilter = classTypeFilter_p; } /** * @see org.eclipse.jdt.ui.dialogs.TypeSelectionExtension#getFilterExtension() */ @Override public ITypeInfoFilterExtension getFilterExtension() { return new ITypeInfoFilterExtension() { /** * @see org.eclipse.jdt.ui.dialogs.ITypeInfoFilterExtension#select(org.eclipse.jdt.ui.dialogs.ITypeInfoRequestor) */ public boolean select(ITypeInfoRequestor typeInfoRequestor_p) { boolean result = false; // Build the fully qualified class name. StringBuilder classNameBuilder = new StringBuilder( typeInfoRequestor_p.getPackageName() ).append( ICommonConstants.DOT_CHARACTER ).append( typeInfoRequestor_p.getTypeName() ); // Get the fully qualified class name. String className = classNameBuilder.toString(); Object object = ClassLoadingHelper.instantiate(className, _classLoader); // Check if instantiated object is an instance of the filtered class type. if ((null != object) && _classTypeFilter.isInstance(object)) { // Allow the end-user to finish the dialog, its choice meets the required class type. result = true; } return result; } }; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/helper Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/helper/UserEnforcedHelper.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3902 Text-content-md5: 37d97f2770c978c9d75eb5a9e4ab1a98 Text-content-sha1: b403916b1a899a964e05a46eafea3eb432eb8061 Content-length: 3947 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.internal.helper; import org.apache.log4j.Logger; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.egf.common.helper.IUserEnforcedHelper; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; /** * Helper methods enforced by user interaction.
* It should not be overridden nor instantiated.
* It is located here for dependencies issues. * @author Guillaume Brocard */ public class UserEnforcedHelper implements IUserEnforcedHelper { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(UserEnforcedHelper.class.getPackage().getName()); /** * @see org.eclipse.egf.common.helper.IUserEnforcedHelper#makeFileWritable(org.eclipse.core.resources.IFile) */ public IStatus makeFileWritable(final IFile file_p) { // Resulting status. final IStatus[] result = new IStatus[] { Status.CANCEL_STATUS }; // Get display, if any. // Do not create a new one if none, simply ignore it. final Display display = PlatformUI.isWorkbenchRunning() ? PlatformUI.getWorkbench().getDisplay() : null; // Execute through a runnable. Runnable makeFileWritableRunnable = new Runnable() { public void run() { result[0] = makeFileWritable(file_p, display); } }; // Whether it is displaying a user interface dialog or not, the execution is always synchronous. if (null != display) { // Ask user, if needed. display.syncExec(makeFileWritableRunnable); } else { // No way to ask user, execute it. makeFileWritableRunnable.run(); } return result[0]; } /** * @see org.eclipse.egf.common.helper.IUserEnforcedHelper#makeFileWritable(org.eclipse.core.resources.IFile, java.lang.Object) */ public IStatus makeFileWritable(IFile file_p, Object display_p) { IStatus result = Status.CANCEL_STATUS; // Given file must not be null. if (null == file_p) { return result; } // If file does not exist, then it is writable. if (!file_p.exists()) { return Status.OK_STATUS; } // Resulting shell. Shell shell = null; // Given display object must indeed be a display. if (display_p instanceof Display) { // Get shell from display. shell = ((Display) display_p).getActiveShell(); } // If a shell is active, use it to make sure an end-user confirmation is performed (as needed). // Try validate prompt behavior otherwise. Object context = (null == shell) ? IWorkspace.VALIDATE_PROMPT : shell; // Check given file. result = ResourcesPlugin.getWorkspace().validateEdit(new IFile[] { file_p }, context); if (!result.isOK()) { StringBuilder loggerMessage = new StringBuilder("UserEnforcedHelper.makeFileWritable(..) _ "); //$NON-NLS-1$ loggerMessage.append("Could not make ").append(file_p.getFullPath()).append(" writable !"); //$NON-NLS-1$ //$NON-NLS-2$ __logger.error(loggerMessage.toString()); } return result; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/resource Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/resource/ExtendedUnmodifiableFile.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1855 Text-content-md5: 6e6c8f3068d07c816ba78a47f5c223b1 Text-content-sha1: f2155f844d35f45e6c0b3c6cacf1c18e79788c7d Content-length: 1900 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.internal.resource; import java.io.InputStream; import org.eclipse.core.internal.resources.File; import org.eclipse.core.internal.resources.Workspace; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.egf.common.helper.FileHelper; /** * An {@link IFile} implementation that also handles a deployed file (as opposed to the one obtained from the workspace).
* No modification is allowed for such a file. * @author Guillaume Brocard */ public class ExtendedUnmodifiableFile extends File { /** * Constructor. * @param path_p */ public ExtendedUnmodifiableFile(IPath path_p) { super(path_p, (Workspace) ResourcesPlugin.getWorkspace()); } /** * @see org.eclipse.core.internal.resources.File#getContents(boolean) */ @Override public InputStream getContents(boolean force_p) throws CoreException { return FileHelper.readFileAsStream(getFullPath().toString()); } /** * @see org.eclipse.core.internal.resources.Resource#isReadOnly() */ @Override public boolean isReadOnly() { return true; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/validators Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/validators/JavaClassValidator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2978 Text-content-md5: 575911c55819e7d0054d3c278f3cb0d4 Text-content-sha1: 30f236fadd5c51cc170514ffbfe6163ed8063536 Content-length: 3023 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.internal.validators; import org.osgi.framework.Bundle; import org.eclipse.egf.common.helper.BundleHelper; import org.eclipse.egf.common.helper.ClassLoadingHelper; import org.eclipse.egf.common.ui.toolkit.validators.NotEmptyStringValidator; /** * Implements a validator that checks if given fully qualified name is able to instantiated. * @author Guillaume Brocard */ public class JavaClassValidator extends NotEmptyStringValidator { /** * Class loader to check to if given class is not able to instantiated. */ private ClassLoader _classLoader; /** * Bundle to check to if given class is not able to instantiated. */ private Bundle _bundle; /** * Expected class to check against. */ private Class _expectedClassType; /** * Constructor. * @param errorMessage_p * @param classLoader_p * @param bundle_p * @param expectedClassType_p */ public JavaClassValidator( ClassLoader classLoader_p, Bundle bundle_p, Class expectedClassType_p ) { super(Messages.JavaClassValidator_Error_Message_EMPTY_CLASS); _classLoader = classLoader_p; _bundle = bundle_p; _expectedClassType = expectedClassType_p; } /** * @see org.eclipse.egf.common.ui.toolkit.validators.IValidator#isValid(java.lang.Object) */ @Override public String isValid(Object value_p) { String errorMessage = super.isValid(value_p); if (errorMessage == null) { // Check given class is able to instantiated. Object object = null; if (_classLoader != null) { object = ClassLoadingHelper.instantiate((String) value_p, _classLoader); } else if (_bundle != null) { object = BundleHelper.instantiate((String) value_p, _bundle); } // Check if instantiated object is an instance of the expected class type. if (object == null) { errorMessage = Messages.JavaClassValidator_Error_Message_UNABLE_TO_LOAD + value_p; } else { if (_expectedClassType.isInstance(object) == false) { errorMessage = value_p + Messages.JavaClassValidator_Error_Message_INSTANCE_OF + _expectedClassType.getName(); } } } return errorMessage; } /** * Set the expected class type to given one. * @param expectedClassType_p the expectedClassType to set */ public void setExpectedClassType(Class expectedClassType_p) { _expectedClassType = expectedClassType_p; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/validators/Messages.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1159 Text-content-md5: e912fb32a4c7f7ea3885d04ed32715b3 Text-content-sha1: aca4742bdfd1ee56541c8061f46e41c5ff019685 Content-length: 1204 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.internal.validators; import org.eclipse.osgi.util.NLS; /** * I18n translation helper. * @author Guillaume Brocard */ public class Messages extends NLS { private static final String BUNDLE_NAME = "org.eclipse.egf.common.ui.internal.validators.messages"; //$NON-NLS-1$ public static String JavaClassValidator_Error_Message_EMPTY_CLASS; public static String JavaClassValidator_Error_Message_INSTANCE_OF; public static String JavaClassValidator_Error_Message_UNABLE_TO_LOAD; static { // initialize resource bundle NLS.initializeMessages(BUNDLE_NAME, Messages.class); } /** * Constructor. */ private Messages() { // Do nothing. } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/internal/validators/messages.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 622 Text-content-md5: 7960e4a554b5a815a5215816323ceb46 Text-content-sha1: d8c63ed7eaef97fbe885b5d27a780e1bfa29f4bd Content-length: 667 K 13 svn:mime-type V 10 text/plain PROPS-END ## # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ## JavaClassValidator_Error_Message_EMPTY_CLASS=A Java class must be entered JavaClassValidator_Error_Message_INSTANCE_OF=\ is not an instance of JavaClassValidator_Error_Message_UNABLE_TO_LOAD=Unable to load Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/resource Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/resource/BasicImageRegistry.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 4262 Text-content-md5: e23b2882235fb38355240cb5e7c400eb Text-content-sha1: 83e9aeb4bf2f6a5292fc38f90811fef0919cc9d6 Content-length: 4307 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.resource; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.PlatformUI; /** * This class is a registry of ({@link ImageDescriptor}, {@link Image}).
* Using this registry avoid to allocate multiple images for the same image descriptor. * @author fournier */ public class BasicImageRegistry { /** * Singleton instance. */ private static BasicImageRegistry __instance = new BasicImageRegistry(); /** * Registry of (ImageDescriptor, Image) Flyweight pattern */ private Map _registry; /** * Private constructor to implement singleton pattern. */ private BasicImageRegistry() { this(PlatformUI.getWorkbench().getDisplay()); } /** * Constructor.
* If using this constructor DO NOT use the {@link #getInstance()} that returns a different instance (singleton). * @param display_p */ public BasicImageRegistry(Display display_p) { _registry = new HashMap(0); // Hook the display to dispose images contained in the registry when the display is disposed. hookDisplayDispose(display_p); } /** * Get the singleton instance of this registry.
* This instance is based on Platform display. * @return a not null instance. */ public static BasicImageRegistry getInstance() { return __instance; } /** * Get an image for its given descriptor. * @param imageDescriptor_p * @return */ public Image getImage(ImageDescriptor imageDescriptor_p) { Image result = null; // Get the related image in the registry. result = _registry.get(imageDescriptor_p); // If returned image is null, create it from given descriptor. if (null == result) { result = imageDescriptor_p.createImage(); // Store it for next usage. _registry.put(imageDescriptor_p, result); } return result; } /** * Remove given image descriptor from the registry. * @param imageDescriptor_p * @return previous value associated with specified image descriptor, or null if there was no mapping for specified image descriptor. A * null return can also indicate that the registry previously associated null with the specified image descriptor. */ public Image remove(ImageDescriptor imageDescriptor_p) { return _registry.remove(imageDescriptor_p); } /** * Hook the display disposed event to be called back when this event is raised.
* The goal is to dispose all images contained in the registry. * @param display */ protected void hookDisplayDispose(Display display) { display.disposeExec(new Runnable() { public void run() { handleDisplayDisposedEvent(); } }); } /** * Handle display disposed event to dispose all images contained in the registry. */ protected void handleDisplayDisposedEvent() { // Get all entries. Iterator entries = _registry.values().iterator(); while (entries.hasNext()) { // Get the current image Image currentImage = entries.next(); // If allocated and not disposed, dispose it to free OS resource. if (null != currentImage && !currentImage.isDisposed()) { currentImage.dispose(); } } // All images are now disposed, reset to null the registry. _registry.clear(); _registry = null; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/adapters Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/adapters/BooleanFieldEditorAdapter.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 5674 Text-content-md5: 9c6d67cc37d8ecb9e87dccc1d4061e64 Text-content-sha1: 6f053586c93a3d3f88be4a7a5c3505feecec23ba Content-length: 5719 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.adapters; import org.eclipse.jface.dialogs.DialogPage; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor; import org.eclipse.egf.common.ui.toolkit.validators.IValidator; /** * The boolean field editor adapter. Adapts the existing JFace boolean field editor to reuse it in the UI Toolkit. Using this adapter allows the developper to * have access to the hided features of the field editors. * @author D. GATIBELZA */ public class BooleanFieldEditorAdapter extends BooleanFieldEditor implements IFieldEditor { // The parent composite. private Composite _parent = null; // The validator. private IValidator _validator = null; // The error message. private String _errorMessage = null; /** * @see BooleanFieldEditor#BooleanFieldEditor(String, String, Composite) */ public BooleanFieldEditorAdapter(String name_p, String label_p, Composite parent_p) { super(name_p, label_p, parent_p); _parent = parent_p; } /** * @see BooleanFieldEditor#BooleanFieldEditor(String, String, int, Composite) */ public BooleanFieldEditorAdapter(String name_p, String labelText_p, int style_p, Composite parent_p) { super(name_p, labelText_p, style_p, parent_p); _parent = parent_p; } /** * @see IFieldEditor#getLabel() */ public Label getLabel() { return getLabelControl(); } /** * @see IFieldEditor#getValueControl() */ public Control getValueControl() { return getChangeControl(_parent); } /** * Does nothing for this component type. * @return null value. * @see IFieldEditor#getHelperControl() */ public Control getHelperControl() { return null; } /** * @see IFieldEditor#getErrorMessage() */ public String getErrorMessage() { return _errorMessage; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getFieldName() */ public String getFieldName() { return getPreferenceName(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getFieldPage() */ public DialogPage getFieldPage() { return getPage(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getValidator() */ public IValidator getValidator() { return _validator; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isFocused() */ public boolean isFocused() { Control valueControl = getValueControl(); Control helperControl = getHelperControl(); boolean focused = false; if (null != valueControl) { focused = valueControl.isFocusControl(); } if (null != helperControl) { focused |= helperControl.isFocusControl(); } return focused; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isHelperEnabled() */ public boolean isHelperEnabled() { boolean enabled = false; Control helperControl = getHelperControl(); if (null != helperControl) { enabled = helperControl.isEnabled(); } return enabled; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#defaultLayout() */ public void defaultLayout() { Composite parent = getLabelControl().getParent(); GridLayout layout = (GridLayout) parent.getLayout(); fillIntoGrid(parent, layout.numColumns); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#layout(int) */ public void layout(int numColumns_p) { adjustForNumColumns(numColumns_p); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setFieldPage(org.eclipse.jface.dialogs.DialogPage) */ public void setFieldPage(DialogPage page_p) { setPage(page_p); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setValidator(org.eclipse.egf.common.ui.toolkit.validators.IValidator) */ public void setValidator(IValidator validator_p) { _validator = validator_p; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setHelperEnabled(boolean) */ public void setHelperEnabled(boolean enabled_p) { Control helperControl = getHelperControl(); if (null != helperControl) { helperControl.setEnabled(enabled_p); } } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isValueEnabled() */ public boolean isValueEnabled() { boolean enabled = false; Control valueControl = getValueControl(); if (null != valueControl) { enabled = valueControl.isEnabled(); } return enabled; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setValueEnabled(boolean) */ public void setValueEnabled(boolean enabled_p) { Control valueControl = getValueControl(); if (null != valueControl) { valueControl.setEnabled(enabled_p); } } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/adapters/StringButtonFieldEditorAdapter.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 11278 Text-content-md5: 7cb16f7b40aabdba6462e0d343d52891 Text-content-sha1: 6c24a53ad33c3c1f15d051bd7aecaf45ab473d7d Content-length: 11323 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.adapters; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.dialogs.DialogPage; import org.eclipse.jface.preference.StringButtonFieldEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor; import org.eclipse.egf.common.ui.toolkit.validators.IValidator; /** * The string button field editor adapter. The string button field editor * adapter adapts the existing JFace String button field editor to reuse * it in the UI Toolkit. Using this adapter allows the developper to add * decorators or extends the component behavior. * @author D. GATIBELZA */ public abstract class StringButtonFieldEditorAdapter extends StringButtonFieldEditor implements IFieldEditor { // The label control style. protected int _labelStyle = SWT.LEFT; // The value control style. protected int _valueStyle = SWT.NONE; // The parent composite. private Composite _parent; /** * Object used to compute the validation status. */ private IValidator _validator; /** * Constructs the string button field editor with the specified field name and specified label text. Sets the default label control style to {@link SWT#LEFT} * and the default value control to {@link SWT#NONE}. * @param name_p The field name. * @param labelText_p The label text. * @param parent_p The parent control. */ public StringButtonFieldEditorAdapter( String name_p, String labelText_p, Composite parent_p ) { this(name_p, labelText_p, parent_p, SWT.LEFT, SWT.NONE); } /** * Constructs the string button field editor with the specified name, specified text label and applies the specified styles respectively to the label control * and the value control. For the label control style unsupported values are filtered : {@link SWT#SEPARATOR}, {@link SWT#WRAP}. * @param name_p The field name. * @param labelText_p The label text. * @param parent_p The parent control. * @param labelStyle_p The label control style {@link Label}. * @param valueStyle_p The value control style according to the value control type. */ public StringButtonFieldEditorAdapter( String name_p, String labelText_p, Composite parent_p, int labelStyle_p, int valueStyle_p ) { init(name_p, labelText_p, labelStyle_p, valueStyle_p); createControl(parent_p); } /** * @see org.eclipse.jface.preference.StringFieldEditor#doCheckState() */ @Override protected boolean doCheckState() { // Default behavior executes the super method. boolean isValid = super.doCheckState(); if (null != _validator) { // Validate the field editor with provided validator. String errorMessage = _validator.isValid(getStringValue()); // If no error message is returned, the field editor is valid. isValid = (null == errorMessage); // If not valid, set the error message. if (!isValid) { setErrorMessage(errorMessage); } } return isValid; } /** * @see org.eclipse.jface.preference.StringFieldEditor#checkState() */ @Override protected boolean checkState() { boolean result = false; // Keep the previous valid state boolean wasValid = isValid(); // Is an empty string allowed ? boolean emptyStringAllowed = isEmptyStringAllowed(); if (emptyStringAllowed) { result = true; } Text textField = getTextControl(); if (textField == null) { return false; } String txt = textField.getText(); result = (txt.trim().length() > 0) || emptyStringAllowed; // Call hook for subclasses result &= doCheckState(); // Clear error message only if this field editor was not valid and it gets valid now. if (!wasValid && result) { clearErrorMessage(); } // If this field editor is not valid, show the related error message. else if (!result) { String errorMessage = getErrorMessage(); showErrorMessage(errorMessage); } return result; } /** * Initializes the field with the given property name and label. * @param name_p The field name. * @param text_p The label text of the field. * @param labelStyle_p The label style. * @param valueStyle_p The value control style. */ protected void init(String name_p, String text_p, int labelStyle_p, int valueStyle_p) { Assert.isNotNull(name_p); Assert.isNotNull(text_p); // Checks styles. _labelStyle = checkLabelStyle(labelStyle_p); _valueStyle = checkValueStyle(valueStyle_p); // Sets the label text and field name. setLabelText(text_p); setPreferenceName(name_p); } // Checks the label style. Does not allow the SEPARATOR style and the WRAP style. // In case of SWT.NONE style value, it applies a correction and return the default label style value SWT.LEFT. private int checkLabelStyle(int labelStyle_p) { int newStyle = labelStyle_p; if (0 != (SWT.SEPARATOR & newStyle)) { newStyle = newStyle - SWT.SEPARATOR; } if (0 != (SWT.WRAP & newStyle)) { newStyle = newStyle - SWT.WRAP; } if (SWT.NONE == newStyle) { newStyle = SWT.LEFT; } return newStyle; } /** * Checks the style of the value control and updates it.
* WARNING : This default implementation returns the specified style. * @param valueStyle_p The value control style. * @return The updated value control style. */ protected int checkValueStyle(int valueStyle_p) { return valueStyle_p; } /** * Does not remove the horizontal and the vertical margins. * @see org.eclipse.jface.preference.FieldEditor#createControl(org.eclipse.swt.widgets.Composite) */ @Override protected void createControl(Composite parent_p) { _parent = parent_p; GridLayout layout = new GridLayout(); layout.numColumns = getNumberOfControls(); layout.horizontalSpacing = HORIZONTAL_GAP; parent_p.setLayout(layout); doFillIntoGrid(parent_p, layout.numColumns); } /** * @see org.eclipse.jface.preference.StringButtonFieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int) */ @Override protected void doFillIntoGrid(Composite parent_p, int numColumns_p) { super.doFillIntoGrid(parent_p, numColumns_p); } /** * @see org.eclipse.jface.preference.StringButtonFieldEditor#changePressed() */ @Override protected abstract String changePressed(); // /////////////////////////////////// PUBLIC API //////////////////////////////////// /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getLabel() */ public Label getLabel() { return getLabelControl(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getValueControl() */ public Control getValueControl() { return getTextControl(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getHelperControl() */ public Control getHelperControl() { return getChangeControl(_parent); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#defaultLayout() */ public void defaultLayout() { Composite parent = getLabelControl().getParent(); GridLayout layout = (GridLayout) parent.getLayout(); fillIntoGrid(parent, layout.numColumns); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getFieldName() */ public String getFieldName() { return getPreferenceName(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getFieldPage() */ public DialogPage getFieldPage() { return getPage(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getValidator() */ public IValidator getValidator() { return _validator; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isFocused() */ public boolean isFocused() { Control valueControl = getValueControl(); Control helperControl = getHelperControl(); boolean focused = false; if (null != valueControl) { focused = valueControl.isFocusControl(); } if (null != helperControl) { focused |= helperControl.isFocusControl(); } return focused; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isHelperEnabled() */ public boolean isHelperEnabled() { boolean enabled = false; Control helperControl = getHelperControl(); if (null != helperControl) { enabled = helperControl.isEnabled(); } return enabled; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isValueEnabled() */ public boolean isValueEnabled() { boolean enabled = false; Control valueControl = getValueControl(); if (null != valueControl) { enabled = valueControl.isEnabled(); } return enabled; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#layout(int) */ public void layout(int numColumns_p) { adjustForNumColumns(numColumns_p); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setFieldPage(org.eclipse.jface.dialogs.DialogPage) */ public void setFieldPage(DialogPage page_p) { setPage(page_p); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setHelperEnabled(boolean) */ public void setHelperEnabled(boolean enabled_p) { Control helperControl = getHelperControl(); if (null != helperControl) { helperControl.setEnabled(enabled_p); } } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setValidator(org.eclipse.egf.common.ui.toolkit.validators.IValidator) */ public void setValidator(IValidator validator_p) { _validator = validator_p; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setValueEnabled(boolean) */ public void setValueEnabled(boolean enabled_p) { Control valueControl = getValueControl(); if (null != valueControl) { valueControl.setEnabled(enabled_p); } } /** * @see org.eclipse.jface.preference.StringFieldEditor#setFocus() */ @Override public void setFocus() { Control valueControl = getValueControl(); if (null != valueControl) { valueControl.setFocus(); } } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields/AbstractFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 11681 Text-content-md5: 2a7dfd94aefe1584f8680c9f7d5b3b72 Text-content-sha1: 5dfab1c9e7ddf5f18ea93c39e1e10fdb7f96f495 Content-length: 11726 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.fields; import org.eclipse.egf.common.ui.toolkit.validators.IValidator; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.dialogs.DialogPage; import org.eclipse.jface.preference.FieldEditor; 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.Label; /** * The field editor. * This implementation of field editor respect the IFieldEditor interface * which opens the old FieldEditor API. * It supports error message management, validator, input behavior and the databinding * (based on the already in place binding system : IPreferenceStore). * @author D. GATIBELZA */ public abstract class AbstractFieldEditor extends FieldEditor implements IFieldEditor { // The label control style. protected int _labelStyle = SWT.LEFT; // The value control style. protected int _valueStyle = SWT.NONE; // The validator. private IValidator _validator = null; // The current error message. private String _errorMessage = null; /** * Constructs the MDE field editor. */ protected AbstractFieldEditor() { // Do nothing. } /** * Constructs the MDE field editor with the specified field name and specified label text. Sets the default label control style to {@link SWT#LEFT} and the * default value control to {@link SWT#NONE}. * @param name_p The field name. * @param labelText_p The label text. * @param parent_p The parent control. */ protected AbstractFieldEditor(String name_p, String labelText_p, Composite parent_p) { this(name_p, labelText_p, parent_p, SWT.LEFT, SWT.NONE); } /** * Constructs the MDE field editor with the specified name, specified text label and applies the specified styles respectively to the label control and the * value control. For the label control style unsupported values are filtered : {@link SWT#SEPARATOR}, {@link SWT#WRAP}. * @param name_p The field name. * @param labelText_p The label text. * @param parent_p The parent control. * @param labelStyle_p The label control style {@link Label}. * @param valueStyle_p The value control style according to the value control type. */ protected AbstractFieldEditor(String name_p, String labelText_p, Composite parent_p, int labelStyle_p, int valueStyle_p) { init(name_p, labelText_p, labelStyle_p, valueStyle_p); createControl(parent_p); } /** * Initializes the field with the given property name and label. * @param name_p The field name. * @param text_p The label text of the field. * @param labelStyle_p The label style. * @param valueStyle_p The value control style. */ protected void init(String name_p, String text_p, int labelStyle_p, int valueStyle_p) { Assert.isNotNull(name_p); Assert.isNotNull(text_p); // Checks styles. _labelStyle = checkLabelStyle(labelStyle_p); _valueStyle = checkValueStyle(valueStyle_p); // Sets the label text and field name. setPreferenceName(name_p); setLabelText(text_p); } // Checks the label style. Does not allow the SEPARATOR style and the WRAP style. // In case of SWT.NONE style value, it applies a correction and return the default label style value SWT.LEFT. private int checkLabelStyle(int labelStyle_p) { int newStyle = labelStyle_p; if (0 != (SWT.SEPARATOR & newStyle)) { newStyle = newStyle - SWT.SEPARATOR; } if (0 != (SWT.WRAP & newStyle)) { newStyle = newStyle - SWT.WRAP; } if (SWT.NONE == newStyle) { newStyle = SWT.LEFT; } return newStyle; } /** * Checks the style of the value control and updates it.
* WARNING : This default implementation returns the specified style. * @param valueStyle_p The value control style. * @return The updated value control style. */ protected int checkValueStyle(int valueStyle_p) { return valueStyle_p; } /** * Does not remove the horizontal and the vertical margins. * @see org.eclipse.jface.preference.FieldEditor#createControl(org.eclipse.swt.widgets.Composite) */ @Override protected void createControl(Composite parent_p) { GridLayout layout = new GridLayout(); layout.numColumns = getNumberOfControls(); layout.horizontalSpacing = HORIZONTAL_GAP; parent_p.setLayout(layout); doFillIntoGrid(parent_p, layout.numColumns); } /** * @see org.eclipse.jface.preference.FieldEditor#getLabelControl(org.eclipse.swt.widgets.Composite) TODO DGA : propager dans les constructeurs le style du * label. */ @Override public Label getLabelControl(Composite parent_p) { Label label = super.getLabelControl(parent_p); GridData gd = new GridData(); gd.horizontalAlignment = SWT.FILL; label.setLayoutData(gd); int alignement = SWT.RIGHT & _labelStyle; if (0 == alignement) { alignement = SWT.CENTER & _labelStyle; } if (0 == alignement) { alignement = SWT.LEFT; } label.setAlignment(alignement); return label; } /** * Sets the error message that will be displayed when and if an error occurs. * @param message_p The error message. */ public void setErrorMessage(String message_p) { _errorMessage = message_p; } /** * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int) */ @Override protected abstract void doFillIntoGrid(Composite parent_p, int numColumns_p); /** * Gets the value from the specified control. * @param control_p The value control. * @return The value. */ protected abstract Object getValue(Control control_p); // /////////////////////////////////// PUBLIC API //////////////////////////////////// /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getLabel() */ public Label getLabel() { return getLabelControl(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getValueControl() */ public abstract Control getValueControl(); /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getHelperControl() */ public abstract Control getHelperControl(); /** * @see IFieldEditor#getErrorMessage() */ public String getErrorMessage() { return _errorMessage; } /** * @see IFieldEditor#getValidator() */ public IValidator getValidator() { return _validator; } /** * @see IFieldEditor#setValidator(IValidator) */ public void setValidator(IValidator validator_p) { _validator = validator_p; } /** * @see org.eclipse.jface.preference.FieldEditor#isValid() */ @Override public boolean isValid() { boolean isValid = true; if (null != _validator) { // Validate the field editor with the provided validator. Control control = getValueControl(); Object value = getValue(control); String oldMessage = _errorMessage; _errorMessage = _validator.isValid(value); // If no error message is returned, the field editor is valid. isValid = (null == _errorMessage); // If no page available, cannot displays the error message. if (null != getPage()) { // If not valid, set the error message. if (!isValid && (null == getPage().getErrorMessage())) { showErrorMessage(_errorMessage); } else if (isValid && (getPage().getErrorMessage() == oldMessage)) { clearErrorMessage(); } } } return isValid; } /** * Hook for subclasses to do specific state checks. *

* The default implementation of this framework method uses the validator to validate the field value.
* If no validator is available, the methods returns true. *

* @return true if the field value is valid, and false if invalid */ protected boolean doCheckState() { return isValid(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getFieldName() */ public String getFieldName() { return getPreferenceName(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#getFieldPage() */ public DialogPage getFieldPage() { return getPage(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setFieldPage(org.eclipse.jface.dialogs.DialogPage) */ public void setFieldPage(DialogPage page_p) { setPage(page_p); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isHelperEnabled() */ public boolean isHelperEnabled() { boolean enabled = false; Control helperControl = getHelperControl(); if (null != helperControl) { enabled = helperControl.isEnabled(); } return enabled; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setHelperEnabled(boolean) */ public void setHelperEnabled(boolean enabled_p) { Control helperControl = getHelperControl(); if (null != helperControl) { helperControl.setEnabled(enabled_p); } } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isValueEnabled() */ public boolean isValueEnabled() { boolean enabled = false; Control valueControl = getValueControl(); if (null != valueControl) { enabled = valueControl.isEnabled(); } return enabled; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#setValueEnabled(boolean) */ public void setValueEnabled(boolean enabled_p) { Control valueControl = getValueControl(); if (null != valueControl) { valueControl.setEnabled(enabled_p); } } /** * @see org.eclipse.jface.preference.FieldEditor#setFocus() */ @Override public void setFocus() { Control valueControl = getValueControl(); if (null != valueControl) { valueControl.setFocus(); } } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#isFocused() */ public boolean isFocused() { Control valueControl = getValueControl(); Control helperControl = getHelperControl(); boolean focused = false; if (null != valueControl) { focused = valueControl.isFocusControl(); } if (null != helperControl) { focused |= helperControl.isFocusControl(); } return focused; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#defaultLayout() */ public void defaultLayout() { Composite parent = getLabelControl().getParent(); GridLayout layout = (GridLayout) parent.getLayout(); fillIntoGrid(parent, layout.numColumns); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.IFieldEditor#layout(int) */ public void layout(int numColumns_p) { adjustForNumColumns(numColumns_p); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields/CRadioGroupFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 4627 Text-content-md5: 195a848f2376ef2fd9edb5922b1b8e0f Text-content-sha1: 5b025bae9369d6bf9503123a487ffa277b19dee5 Content-length: 4672 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.fields; import org.eclipse.jface.preference.RadioGroupFieldEditor; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; /** * This implementation customized the one provided by org.eclipse.jface.preference package. * @author fournier */ public class CRadioGroupFieldEditor extends RadioGroupFieldEditor { /** * Value of the selected radio button. */ protected Object _selectedRadioButtonValue; /** * Parent of the radio button group. */ private Composite _parent; /** * Use a group ? */ private boolean _useGroup; /** * Constructor. * @param name_p * @param labelText_p * @param numColumns_p * @param labelAndValues_p * @param parent_p * @param readOnly_p */ public CRadioGroupFieldEditor( String name_p, String labelText_p, int numColumns_p, String[][] labelAndValues_p, Composite parent_p ) { super(name_p, labelText_p, numColumns_p, labelAndValues_p, parent_p); initialize(parent_p, false); } /** * Constructor. * @param name_p * @param labelText_p * @param numColumns_p * @param labelAndValues_p * @param parent_p * @param useGroup_p */ public CRadioGroupFieldEditor( String name_p, String labelText_p, int numColumns_p, String[][] labelAndValues_p, Composite parent_p, boolean useGroup_p ) { super(name_p, labelText_p, numColumns_p, labelAndValues_p, parent_p, useGroup_p); initialize(parent_p, useGroup_p); } /** * Initialize a listener to be aware of selection changes. */ private void initialize(Composite parent_p, boolean useGroup_p) { setPropertyChangeListener( new IPropertyChangeListener() { /** * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) */ public void propertyChange(PropertyChangeEvent event_p) { _selectedRadioButtonValue = event_p.getNewValue(); } } ); // Store the parent. _parent = parent_p; // Store the use group _useGroup = useGroup_p; } /** * Select a radio value depending on given radio button value. * @param value_p */ public void selectRadioButtonFor(Object value_p) { // Precondition if (null == value_p) { return; } // Get the composite used to store radio buttons. Composite radioButtonGroup = getRadioBoxControl(_parent); // Get contained radio buttons. Control[] buttons = radioButtonGroup.getChildren(); // Loop over contained buttons for (Control control : buttons) { Button radioButton = (Button) control; // Get the related value for current radio button. Object radioButtonValue = radioButton.getData(); if (value_p.equals(radioButtonValue)) { // Select the UI button. radioButton.setSelection(true); // Set the radio button data as the selected radio button data. _selectedRadioButtonValue = radioButtonValue; } else { radioButton.setSelection(false); } } } /** * Return the value of the selected radio button. * @return a not null value. */ public Object getSelectedRadioButton() { return _selectedRadioButtonValue; } /** * @see org.eclipse.jface.preference.RadioGroupFieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int) */ @Override protected void doFillIntoGrid(Composite parent, int numColumns) { if (_useGroup) { Control control = getRadioBoxControl(parent); GridData gd = new GridData(); gd.horizontalAlignment = SWT.FILL; gd.horizontalSpan = numColumns; control.setLayoutData(gd); } else { super.doFillIntoGrid(parent, numColumns); } } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields/CStringFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 17701 Text-content-md5: b5e1513887532c3fa469f41b87c69416 Text-content-sha1: 37e6bb2de841bff4c8e8f6441cc2297b0b9ee105 Content-length: 17746 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2005-2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - Initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.fields; import org.apache.log4j.Logger; import org.eclipse.jface.preference.FieldEditor; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.FocusAdapter; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Text; /** * The custom string field editor. * The custom string field editor supports the text style. */ public class CStringFieldEditor extends AbstractFieldEditor { /** * Log4j reference logger. */ private static final Logger __logger = Logger.getLogger(CStringFieldEditor.class.getPackage().getName()); // Cached valid state. private boolean _isValid = false; // Old text value. private String _oldValue = null; // Width of text field in characters; initially unlimited. private int _widthInChars = UNLIMITED; // Text limit of text field in characters; initially unlimited. private int _textLimit = UNLIMITED; // Indicates whether the empty string is legal. private boolean _emptyStringAllowed = true; // The validation strategy. private int _validateStrategy = VALIDATE_ON_KEY_STROKE; /** * The text field, or null if none. */ protected Text _textField; /** * Validation strategy constant (value 0) indicating that the editor should perform validation after every key stroke (when key is released). * @see #setValidateStrategy */ public static final int VALIDATE_ON_KEY_STROKE = 0; /** * Validation strategy constant (value 1) indicating that the editor should perform validation only when the text widget loses focus. * @see #setValidateStrategy */ public static final int VALIDATE_ON_FOCUS_LOST = 1; /** * Validation strategy constant (value 2) indicating that the editor should perform validation after every change. * @see #setValidateStrategy */ public static final int VALIDATE_ON_MODIFICATION = 2; /** * Text limit constant (value -1) indicating unlimited text limit and width. */ public static int UNLIMITED = -1; /** * Creates a string field editor of unlimited width which supports style. Use the method setTextLimit to limit the text. By default the style * is {@value SWT#SINGLE}|{@value SWT#BORDER}. * @param name_p The name of field this field editor works on. * @param label_p The label text of the field editor * @param parent_p The parent of the field editor's control. */ public CStringFieldEditor(String name_p, String label_p, Composite parent_p) { this(name_p, label_p, UNLIMITED, parent_p, SWT.SINGLE | SWT.BORDER); } /** * Creates a string field editor of unlimited width which supports style. Use the method setTextLimit to limit the text. * @param name_p The name of field this field editor works on. * @param label_p The label text of the field editor * @param parent_p The parent of the field editor's control * @param valueStyle_p The text style. * @see Text#Text(Composite, int) */ public CStringFieldEditor(String name_p, String label_p, Composite parent_p, int valueStyle_p) { this(name_p, label_p, UNLIMITED, parent_p, valueStyle_p); } /** * Creates a string field editor which supports style. Use the method setTextLimit to limit the text. * @param name_p The name of field this field editor works on. * @param label_p The label text of the field editor * @param width_p The width of the text input field in characters, or UNLIMITED for no limit * @param parent_p The parent of the field editor's control * @param valueStyle_p The text style. * @see Text#Text(Composite, int) */ public CStringFieldEditor(String name_p, String label_p, int width_p, Composite parent_p, int valueStyle_p) { this(name_p, label_p, width_p, VALIDATE_ON_KEY_STROKE, parent_p, valueStyle_p); } /** * Creates a string field editor which supports style. Use the method setTextLimit to limit the text. * @param name_p The name of field this field editor works on. * @param label_p The label text of the field editor * @param width_p The width of the text input field in characters, or UNLIMITED for no limit * @param strategy_p either VALIDATE_ON_KEY_STROKE to perform on the fly checking (the default), or VALIDATE_ON_FOCUS_LOST to * perform validation only after the text has been typed in * @param parent_p The parent of the field editor's control * @param valueStyle_p The text style. * @see Text#Text(Composite, int) */ public CStringFieldEditor(String name_p, String label_p, int width_p, int strategy_p, Composite parent_p, int valueStyle_p) { init(name_p, label_p, SWT.LEFT, valueStyle_p); _widthInChars = width_p; setValidateStrategy(strategy_p); _isValid = false; setErrorMessage(JFaceResources.getString("StringFieldEditor.errorMessage"));//$NON-NLS-1$ createControl(parent_p); } /** * @see FieldEditor#adjustForNumColumns(int) */ @Override protected void adjustForNumColumns(int numColumns_p) { GridData gd = (GridData) _textField.getLayoutData(); gd.horizontalSpan = numColumns_p - 1; // We only grab excess space if we have to // If another field editor has more columns then // we assume it is setting the width. gd.grabExcessHorizontalSpace = gd.horizontalSpan == 1; } /** * Checks whether the text input field contains a valid value or not. * @return true if the field value is valid, and false if invalid */ protected boolean checkState() { boolean result = false; // Keep the previous valid state boolean wasValid = _isValid; if (_emptyStringAllowed) { result = true; } if (_textField == null) { result = false; } String txt = _textField.getText(); result = (txt.trim().length() > 0) || _emptyStringAllowed; // Call hook for subclasses result = result && doCheckState(); // Clear error message only if this field editor was not valid and it gets valid now. if (!wasValid && result) { clearErrorMessage(); } // If this field editor is not valid, show the related error message. else if (!result) { showErrorMessage(getErrorMessage()); } return result; } /** * Fills this field editor's basic controls into the given parent. *

* The string field implementation of this FieldEditor framework method contributes the text field. Subclasses may override but must call * super.doFillIntoGrid. *

*/ @Override protected void doFillIntoGrid(Composite parent_p, int numColumns_p) { getLabelControl(parent_p); _textField = getTextControl(parent_p); GridData gd = new GridData(); gd.horizontalSpan = numColumns_p - 1; if (_widthInChars != UNLIMITED) { GC gc = new GC(_textField); try { Point extent = gc.textExtent("X");//$NON-NLS-1$ gd.widthHint = _widthInChars * extent.x; } finally { gc.dispose(); } } else { gd.horizontalAlignment = SWT.FILL; gd.grabExcessHorizontalSpace = true; } if (0 != (_textField.getStyle() & SWT.MULTI)) { gd.verticalAlignment = SWT.FILL; gd.verticalSpan = 2; gd.grabExcessVerticalSpace = true; } _textField.setLayoutData(gd); } /** * @see FieldEditor#doLoad() */ @Override protected void doLoad() { if (_textField != null) { String value = getPreferenceStore().getString(getPreferenceName()); _textField.setText(null == value ? "" : value); //$NON-NLS-1$ _oldValue = value; } } /** * @see FieldEditor#doLoadDefault() */ @Override protected void doLoadDefault() { if (_textField != null) { String value = getPreferenceStore().getDefaultString(getPreferenceName()); _textField.setText(value); } valueChanged(); } /** * @see FieldEditor#doStore() */ @Override protected void doStore() { getPreferenceStore().setValue(getPreferenceName(), _textField.getText()); } /** * @see FieldEditor#getNumberOfControls() */ @Override public int getNumberOfControls() { return 2; } /** * Returns the field editor's value. * @return the current value */ public String getStringValue() { if (_textField != null) { return _textField.getText(); } return getPreferenceStore().getString(getPreferenceName()); } /** * Returns this field editor's text control. * @return the text control, or null if no text field is created yet */ public Text getTextControl() { return _textField; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.AbstractFieldEditor#checkValueStyle(int) */ @Override protected int checkValueStyle(int valueStyle_p) { int newStyle = valueStyle_p; // Force BORDER style, if not specified. if (0 == (SWT.BORDER & valueStyle_p)) { newStyle |= SWT.BORDER; } // Force SINGLE style (single line), if only BORDER style is applied. if (SWT.BORDER == _valueStyle) { newStyle |= SWT.SINGLE; } return newStyle; } /** * Returns this field editor's text control. *

* The control is created if it does not yet exist *

* @param parent_p The parent * @return the text control */ protected Text getTextControl(Composite parent_p) { if (_textField == null) { _textField = doTextControl(parent_p, _valueStyle); _textField.setFont(parent_p.getFont()); switch (_validateStrategy) { case VALIDATE_ON_KEY_STROKE: _textField.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent event_p) { valueChanged(); } }); break; case VALIDATE_ON_MODIFICATION: _textField.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event_p) { valueChanged(); } }); break; case VALIDATE_ON_FOCUS_LOST: _textField.addKeyListener(new KeyAdapter() { @SuppressWarnings("synthetic-access") @Override public void keyPressed(KeyEvent event_p) { clearErrorMessage(); } }); _textField.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent event_p) { refreshValidState(); } @SuppressWarnings("synthetic-access") @Override public void focusLost(FocusEvent event_p) { valueChanged(); clearErrorMessage(); } }); break; default: StringBuilder loggerMessage = new StringBuilder("CStringFieldEditor.getTextControl(..) _ "); //$NON-NLS-1$ loggerMessage.append("Unknown validate strategy");//$NON-NLS-1$ __logger.error(loggerMessage.toString()); } _textField.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent event_p) { _textField = null; } }); if (_textLimit > 0) {// Only set limits above 0 - see SWT spec _textField.setTextLimit(_textLimit); } } else { checkParent(_textField, parent_p); } return _textField; } /** * Does the text control. * @param parent_p The parent composite. * @param style_p The text style. * @return The text control. */ protected Text doTextControl(Composite parent_p, int style_p) { return new Text(parent_p, style_p); } /** * Returns whether an empty string is a valid value. * @return true if an empty string is a valid value, and false if an empty string is invalid * @see #setEmptyStringAllowed */ public boolean isEmptyStringAllowed() { return _emptyStringAllowed; } /** * @see FieldEditor#isValid() */ @Override public boolean isValid() { return _isValid; } /** * @see FieldEditor#refreshValidState() */ @Override protected void refreshValidState() { _isValid = checkState(); } /** * Sets whether the empty string is a valid value or not. * @param allowed_p true if the empty string is allowed, and false if it is considered invalid */ public void setEmptyStringAllowed(boolean allowed_p) { _emptyStringAllowed = allowed_p; } /** * @see FieldEditor#setFocus() */ @Override public void setFocus() { if (_textField != null) { _textField.setFocus(); } } /** * Sets this field editor's value. * @param value_p The new value, or null meaning the empty string */ public void setStringValue(String value_p) { String value = value_p; if (_textField != null) { if (value == null) { value = "";//$NON-NLS-1$ } _oldValue = _textField.getText(); if (!_oldValue.equals(value)) { _textField.setText(value); valueChanged(); } } } /** * Sets this text field's text limit. * @param limit_p The limit on the number of character in the text input field, or UNLIMITED for no limit */ public void setTextLimit(int limit_p) { _textLimit = limit_p; if (_textField != null) { _textField.setTextLimit(limit_p); } } /** * Sets the strategy for validating the text. *

* Calling this method has no effect after createPartControl is called. Thus this method is really only useful for subclasses to call in their * constructor. However, it has public visibility for backward compatibility. *

* @param value_p either VALIDATE_ON_KEY_STROKE to perform on the fly checking (the default), or VALIDATE_ON_FOCUS_LOST to * perform validation only after the text has been typed in */ public void setValidateStrategy(int value_p) { if (value_p == VALIDATE_ON_FOCUS_LOST || value_p == VALIDATE_ON_KEY_STROKE || (value_p == VALIDATE_ON_MODIFICATION)) { _validateStrategy = value_p; } else { StringBuilder loggerMessage = new StringBuilder("CStringFieldEditor.setValidateStrategy(..) _ "); //$NON-NLS-1$ loggerMessage.append("Validation strategy unknown"); //$NON-NLS-1$ __logger.error(loggerMessage.toString()); } } /** * Shows the error message set via setErrorMessage. */ public void showErrorMessage() { showErrorMessage(getErrorMessage()); } /** * Informs this field editor's listener, if it has one, about a change to the value (VALUE property) provided that the old and new values are * different. *

* This hook is not called when the text is initialized (or reset to the default value) from the preference store. *

*/ protected void valueChanged() { setPresentsDefaultValue(false); boolean oldState = _isValid; refreshValidState(); if (_isValid != oldState) { fireStateChanged(IS_VALID, oldState, _isValid); } String newValue = _textField.getText(); if (!newValue.equals(_oldValue)) { fireValueChanged(VALUE, _oldValue, newValue); _oldValue = newValue; } } /** * @see FieldEditor#setEnabled(boolean, Composite) */ @Override public void setEnabled(boolean enabled_p, Composite parent_p) { super.setEnabled(enabled_p, parent_p); getTextControl(parent_p).setEnabled(enabled_p); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.AbstractFieldEditor#getHelperControl() */ @Override public Control getHelperControl() { return null; } /** * @see org.eclipse.egf.common.ui.toolkit.fields.AbstractFieldEditor#getValue(org.eclipse.swt.widgets.Control) */ @Override protected Object getValue(Control control_p) { return _textField.getText(); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.AbstractFieldEditor#getValueControl() */ @Override public Control getValueControl() { return _textField; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields/IFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3712 Text-content-md5: c532a80a85bea82577e5def472e9de5e Text-content-sha1: 009aff99867230c0e53a45c80eb87807d2ec086e Content-length: 3757 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.fields; import org.eclipse.egf.common.ui.toolkit.validators.IValidator; import org.eclipse.jface.dialogs.DialogPage; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; /** * The field editor interface. * This interface is used to make field editors services public, uniform and extends them. * @author D. GATIBELZA */ public interface IFieldEditor { /** * Gets the field name. * @return The name of this field. */ public String getFieldName(); /** * Gets the label control. * @return The label control or null if it doesn't exist. */ public Label getLabel(); /** * Gets the value control. * @return The value control or null if it doesn't exist. */ public Control getValueControl(); /** * Gets the helper control. * @return The helper control or null if it doesn't exist. */ public Control getHelperControl(); /** * Returns the error message that will be displayed when an error occurs. * @return The error message, or null if none. */ public String getErrorMessage(); /** * Sets the field validator. * @param validator_p The validator. */ public void setValidator(IValidator validator_p); /** * Gets the field validator. * @return The validator. */ public IValidator getValidator(); /** * Returns whether this field contains a valid value. * @return True if the field value is valid else false. */ public boolean isValid(); /** * Sets whether or not the value control in the field is enabled. * @param enabled_p True to enable else false. */ public void setValueEnabled(boolean enabled_p); /** * Sets whether or not the helper control in the field is enabled. * @param enabled_p True to enable else false. */ public void setHelperEnabled(boolean enabled_p); /** * Checks if the value control is enabled. * @return True if the value control is enabled else false. */ public boolean isValueEnabled(); /** * Checks if the helper control is enabled. * @return True if the value control is enabled else false. */ public boolean isHelperEnabled(); /** * Sets the page to be the receiver. * @param page_p The dialog page. */ public void setFieldPage(DialogPage page_p); /** * Gets the page that the field sends messages to. * @return The dialog page. */ public DialogPage getFieldPage(); /** * Sets the focus. */ public void setFocus(); /** * Returns if the current field editor is focused. * @return True if the fiedl editor is focused else false. */ public boolean isFocused(); /** * Layouts the current field editor with the default layout. */ public void defaultLayout(); /** * Layouts the current field editor into the specified number of columns. * @param numColumns_p The number of columns. */ public void layout(int numColumns_p); } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields/Messages.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1476 Text-content-md5: 0d16ddbe8225af193a92414e5ef71a47 Text-content-sha1: 7dcecd5e27e8b42cbdf9346c4f098ba2ddea0dd8 Content-length: 1521 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.fields; import java.util.MissingResourceException; import java.util.ResourceBundle; /** * The messages handler. * @author D. GATIBELZA */ public class Messages { // The bundle name. private static final String BUNDLE_NAME = "org.eclipse.egf.common.ui.toolkit.fields.messages"; //$NON-NLS-1$ // The resource bundle. private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); // Constructs the messages handler. private Messages() { // Do nothing. } /** * Gets the messages from the specified key. * @param key_p The key. * @return The corresponding messages. */ public static String getString(String key_p) { try { return RESOURCE_BUNDLE.getString(key_p); } catch (MissingResourceException e) { return '!' + key_p + '!'; } } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields/StringBrowserFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3773 Text-content-md5: 70ea4339fa56358785264519641f7c40 Text-content-sha1: 09785a30ab41ef35f67ec6e2ee7507792c73f2f2 Content-length: 3818 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.fields; import org.eclipse.egf.common.constant.ICommonConstants; import org.eclipse.egf.common.ui.toolkit.adapters.StringButtonFieldEditorAdapter; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; /** * The string browser field editor. * The string browser field editor is used to select element(s) which are in relation * with the current edited element. * @author D. GATIBELZA */ public class StringBrowserFieldEditor extends StringButtonFieldEditorAdapter { // The selected object. private Object _selectedObject = null; // The browser label provider. private ILabelProvider _labelProvider; /** * Constructs the string browser field editor. * @param name_p The field name. * @param label_p The field label. * @param parent_p The parent composite. * @param labelProvider_p The browser and text field label provider cannot be null. */ public StringBrowserFieldEditor( String name_p, String label_p, Composite parent_p, ILabelProvider labelProvider_p ) { this(name_p, label_p, parent_p, labelProvider_p, SWT.LEFT, SWT.NONE); } /** * Constructs the string browser field editor. * @param name_p The field name. * @param label_p The field label. * @param parent_p The parent composite. * @param labelProvider_p The browser and text field label provider cannot be null. * @param labelStyle_p The label control style. * @param valueStyle_p The value control style. */ public StringBrowserFieldEditor( String name_p, String label_p, Composite parent_p, ILabelProvider labelProvider_p, int labelStyle_p, int valueStyle_p ) { super(name_p, label_p, parent_p, labelStyle_p, valueStyle_p); // Register browser label provider. _labelProvider = labelProvider_p; } /** * @see org.eclipse.jface.preference.StringButtonFieldEditor#getChangeControl(org.eclipse.swt.widgets.Composite) */ @Override protected Button getChangeControl(Composite parent_p) { // Sets the button. setChangeButtonText(Messages.getString("StringBrowserFieldEditor.button.label")); //$NON-NLS-1$ // Calls super implementation. return super.getChangeControl(parent_p); } /** * Gets the current selected object. * @return The current selection. */ public Object getCurrentSelection() { return _selectedObject; } /** * Sets the current selected object. Updates the text field content and the current selection according to the specified object. * @param object_p The selected object. */ public void setCurrentSelection(Object object_p) { _selectedObject = object_p; String label = null; if (null != _labelProvider) { label = _labelProvider.getText(_selectedObject); } if (null != label) { setStringValue(label); } } /** * @see org.eclipse.egf.common.ui.toolkit.adapters.StringButtonFieldEditorAdapter#changePressed() Default behavior returns an empty string. */ @Override protected String changePressed() { return ICommonConstants.EMPTY_STRING; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields/ValidatingStringFieldEditor.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 4719 Text-content-md5: 671c3df23e796971b4f6cac045c52b30 Text-content-sha1: 4e567dbcf1ea78f32a8da8f748634d97271547b7 Content-length: 4764 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.fields; import org.eclipse.egf.common.ui.toolkit.validators.IValidator; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; /** * Implements a String field editor that delegated its validation to an {@link IValidator} object if provided. * @author fournier */ public class ValidatingStringFieldEditor extends CStringFieldEditor { /** * Creates a validating string field editor of unlimited width which supports style. Use the method setTextLimit to limit the text. By default the style * is {@value SWT#SINGLE}|{@value SWT#BORDER}. * @param name_p The name of field this field editor works on. * @param label_p The label text of the field editor. * @param parent_p The parent of the field editor's control. */ public ValidatingStringFieldEditor(String name_p, String label_p, Composite parent_p) { super(name_p, label_p, parent_p); } /** * Creates a validating string field editor of unlimited width which supports style. Use the method setTextLimit to limit the text. * @param name_p The name of field this field editor works on. * @param label_p The label text of the field editor * @param parent_p The parent of the field editor's control * @param style_p The text style. * @see Text#Text(Composite, int) */ public ValidatingStringFieldEditor(String name_p, String label_p, Composite parent_p, int style_p) { super(name_p, label_p, parent_p, style_p); } /** * Creates a validating string field editor which supports style. Use the method setTextLimit to limit the text. * @param name_p The name of field this field editor works on. * @param label_p The label text of the field editor * @param width_p The width of the text input field in characters, or UNLIMITED for no limit * @param parent_p The parent of the field editor's control * @param style_p The text style. * @see Text#Text(Composite, int) */ public ValidatingStringFieldEditor(String name_p, String label_p, int width_p, Composite parent_p, int style_p) { super(name_p, label_p, width_p, parent_p, style_p); } /** * Creates a validating string field editor which supports style. Use the method setTextLimit to limit the text. * @param name_p The name of field this field editor works on. * @param label_p The label text of the field editor * @param width_p The width of the text input field in characters, or UNLIMITED for no limit * @param strategy_p either VALIDATE_ON_KEY_STROKE to perform on the fly checking (the default), or VALIDATE_ON_FOCUS_LOST to * perform validation only after the text has been typed in * @param parent_p The parent of the field editor's control * @param style_p The text style. * @see Text#Text(Composite, int) */ public ValidatingStringFieldEditor(String name_p, String label_p, int width_p, int strategy_p, Composite parent_p, int style_p) { super(name_p, label_p, width_p, strategy_p, parent_p, style_p); } /** * @see org.eclipse.egf.common.ui.toolkit.fields.CStringFieldEditor#doCheckState() */ @Override protected boolean doCheckState() { // Default behavior executes the super method. boolean isValid = super.doCheckState(); if (null != getValidator()) { // Validate the field editor with provided validator. String errorMessage = getValidator().isValid(getStringValue()); // If no error message is returned, the field editor is valid. isValid = (null == errorMessage); // If not valid, set the error message. if (!isValid) { setErrorMessage(errorMessage); } } return isValid; } /** * Checks whether the text input field contains a valid value or not. * @param force_p true means force to compute the valid state again. * @return true if the field value is valid, and false if invalid. */ public boolean isValid(boolean force_p) { if (force_p) { refreshValidState(); } return super.isValid(); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/fields/messages.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 612 Text-content-md5: 8af4f0e239eb9a0241bfabda131de657 Text-content-sha1: 08c6e1629c58683d55a878b73df86b661fc096e8 Content-length: 657 K 13 svn:mime-type V 10 text/plain PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### StringBrowserFieldEditor.button.label=Browse... Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/internal Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/internal/IToolkitConstants.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 931 Text-content-md5: 5a58eaac72bc5a31730f93fdffcab2fb Text-content-sha1: 61321498a1fd70b1b431070bf6a1f9e6aa015f06 Content-length: 976 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.internal; import org.eclipse.egf.common.constant.ICommonConstants; /** * Common constants used in the toolkit. * @author Guillaume Brocard */ public interface IToolkitConstants { /** * Empty string constant. */ public static final String EMPTY_STRING = ICommonConstants.EMPTY_STRING; } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/internal/StringMatcher.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 13573 Text-content-md5: a079ca99ec29653069729ab2308e49d8 Text-content-sha1: 786898c068f201ce15d80d570502e5ab6013f7cf Content-length: 13618 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2005-2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - Initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.internal; import java.util.Vector; /** * A string pattern matcher, supporting "*" and "?" wildcards. */ public class StringMatcher { protected String fPattern; protected int fLength; // pattern length protected boolean fIgnoreWildCards; protected boolean fIgnoreCase; protected boolean fHasLeadingStar; protected boolean fHasTrailingStar; protected String fSegments[]; // the given pattern is split into * separated segments /* boundary value beyond which we don't need to search in the text */ protected int fBound = 0; protected static final char fSingleWildCard = '\u0000'; /** * */ public static class Position { int start; // inclusive int end; // exclusive /** * @param start_p * @param end_p */ public Position(int start_p, int end_p) { this.start = start_p; this.end = end_p; } /** * Gets the start index. * @return The start index. */ public int getStart() { return start; } /** * Gets the end index. * @return The end index */ public int getEnd() { return end; } } /** * StringMatcher constructor takes in a String object that is a simple pattern which may contain '*' for 0 and many characters and '?' for exactly one * character. Literal '*' and '?' characters must be escaped in the pattern e.g., "\*" means literal "*", etc. Escaping any other character (including the * escape character itself), just results in that character in the pattern. e.g., "\a" means "a" and "\\" means "\" If invoking the StringMatcher with string * literals in Java, don't forget escape characters are represented by "\\". * @param pattern the pattern to match text against * @param ignoreCase if true, case is ignored * @param ignoreWildCards if true, wild cards and their escape sequences are ignored (everything is taken literally). */ public StringMatcher(String pattern, boolean ignoreCase, boolean ignoreWildCards) { if (pattern == null) { throw new IllegalArgumentException(); } fIgnoreCase = ignoreCase; fIgnoreWildCards = ignoreWildCards; fPattern = pattern; fLength = pattern.length(); if (fIgnoreWildCards) { parseNoWildCards(); } else { parseWildCards(); } } /** * Find the first occurrence of the pattern between startend(exclusive). * @param text the String object to search in * @param start_p the starting index of the search range, inclusive * @param end_p the ending index of the search range, exclusive * @return an StringMatcher.Position object that keeps the starting * (inclusive) and ending positions (exclusive) of the first occurrence of the * pattern in the specified range of the text; return null if not found or subtext * is empty (start==end). A pair of zeros is returned if pattern is empty string * Note that for pattern like "*abc*" with leading and trailing stars, position of "abc" * is returned. For a pattern like"*??*" in text "abcdf", (1,3) is returned */ public StringMatcher.Position find(String text, int start_p, int end_p) { if (text == null) { throw new IllegalArgumentException(); } int start = start_p; int end = end_p; int tlen = text.length(); if (start < 0) { start = 0; } if (end > tlen) { end = tlen; } if (end < 0 || start >= end) { return null; } if (fLength == 0) { return new Position(start, start); } if (fIgnoreWildCards) { int x = posIn(text, start, end); if (x < 0) { return null; } return new Position(x, x + fLength); } int segCount = fSegments.length; if (segCount == 0) { return new Position(start, end); } int curPos = start; int matchStart = -1; int i; for (i = 0; i < segCount && curPos < end; ++i) { String current = fSegments[i]; int nextMatch = regExpPosIn(text, curPos, end, current); if (nextMatch < 0) { return null; } if (i == 0) { matchStart = nextMatch; } curPos = nextMatch + current.length(); } if (i < segCount) { return null; } return new Position(matchStart, curPos); } /** * match the given text with the pattern * @return true if matched otherwise false * @param text a String object */ public boolean match(String text) { if (text == null) { return false; } return match(text, 0, text.length()); } /** * Given the starting (inclusive) and the ending (exclusive) positions in the text, determine if the given substring matches with aPattern * @return true if the specified portion of the text matches the pattern * @param text a String object that contains the substring to match * @param start_p marks the starting position (inclusive) of the substring * @param end_p marks the ending index (exclusive) of the substring */ public boolean match(String text, int start_p, int end_p) { if (text == null) { throw new IllegalArgumentException(); } int start = start_p; int end = end_p; if (start > end) { return false; } if (fIgnoreWildCards) { return (end - start == fLength) && fPattern.regionMatches(fIgnoreCase, 0, text, start, fLength); } int segCount = fSegments.length; if (segCount == 0 && (fHasLeadingStar || fHasTrailingStar)) { return true; } if (start == end) { return fLength == 0; } if (fLength == 0) { return start == end; } int tlen = text.length(); if (start < 0) { start = 0; } if (end > tlen) { end = tlen; } int tCurPos = start; int bound = end - fBound; if (bound < 0) { return false; } int i = 0; String current = fSegments[i]; int segLength = current.length(); /* process first segment */ if (fHasLeadingStar == false) { if (regExpRegionMatches(text, start, current, 0, segLength) == false) { return false; } ++i; tCurPos = tCurPos + segLength; } if (fSegments.length == 1 && fHasLeadingStar == false && fHasTrailingStar == false) { // only one segment to match, no wildcards specified return tCurPos == end; } /* process middle segments */ while (i < segCount) { current = fSegments[i]; int currentMatch; int k = current.indexOf(fSingleWildCard); if (k < 0) { currentMatch = textPosIn(text, tCurPos, end, current); if (currentMatch < 0) { return false; } } else { currentMatch = regExpPosIn(text, tCurPos, end, current); if (currentMatch < 0) { return false; } } tCurPos = currentMatch + current.length(); i++; } /* process final segment */ if (fHasTrailingStar == false && tCurPos != end) { int clen = current.length(); return regExpRegionMatches(text, end - clen, current, 0, clen); } return i == segCount; } /** * This method parses the given pattern into segments seperated by wildcard '*' characters. Since wildcards are not being used in this case, the pattern * consists of a single segment. */ private void parseNoWildCards() { fSegments = new String[1]; fSegments[0] = fPattern; fBound = fLength; } /** * Parses the given pattern into segments separated by wildcard '*' characters. a String object that is a simple regular expression with '*' and/or '?' */ private void parseWildCards() { if (fPattern.startsWith("*")) { //$NON-NLS-1$ fHasLeadingStar = true; } if (fPattern.endsWith("*")) {//$NON-NLS-1$ /* make sure it's not an escaped wildcard */ if (fLength > 1 && fPattern.charAt(fLength - 2) != '\\') { fHasTrailingStar = true; } } Vector temp = new Vector(); int pos = 0; StringBuffer buf = new StringBuffer(); while (pos < fLength) { char c = fPattern.charAt(pos++); switch (c) { case '\\': if (pos >= fLength) { buf.append(c); } else { char next = fPattern.charAt(pos++); /* if it's an escape sequence */ if (next == '*' || next == '?' || next == '\\') { buf.append(next); } else { /* not an escape sequence, just insert literally */ buf.append(c); buf.append(next); } } break; case '*': if (buf.length() > 0) { /* new segment */ temp.addElement(buf.toString()); fBound += buf.length(); buf.setLength(0); } break; case '?': /* append special character representing single match wildcard */ buf.append(fSingleWildCard); break; default: buf.append(c); } } /* add last buffer to segment list */ if (buf.length() > 0) { temp.addElement(buf.toString()); fBound += buf.length(); } fSegments = new String[temp.size()]; temp.copyInto(fSegments); } /** * @param text a string which contains no wildcard * @param start the starting index in the text for search, inclusive * @param end the stopping point of search, exclusive * @return the starting index in the text of the pattern , or -1 if not found */ protected int posIn(String text, int start, int end) {// no wild card in pattern int max = end - fLength; if (fIgnoreCase == false) { int i = text.indexOf(fPattern, start); if (i == -1 || i > max) { return -1; } return i; } for (int i = start; i <= max; ++i) { if (text.regionMatches(true, i, fPattern, 0, fLength)) { return i; } } return -1; } /** * @param text a simple regular expression that may only contain '?'(s) * @param start the starting index in the text for search, inclusive * @param end the stopping point of search, exclusive * @param p a simple regular expression that may contains '?' * @return the starting index in the text of the pattern , or -1 if not found */ protected int regExpPosIn(String text, int start, int end, String p) { int plen = p.length(); int max = end - plen; for (int i = start; i <= max; ++i) { if (regExpRegionMatches(text, i, p, 0, plen)) { return i; } } return -1; } /** * @return boolean * @param text a String to match * @param start int that indicates the starting index of match, inclusive * @param end
int that indicates the ending index of match, exclusive * @param p String, String, a simple regular expression that may contain '?' * @param ignoreCase boolean indicating wether code>p is case sensitive */ protected boolean regExpRegionMatches(String text, int tStart_p, String p, int pStart_p, int plen_p) { int tStart = tStart_p; int pStart = pStart_p; int plen = plen_p; while (plen-- > 0) { char tchar = text.charAt(tStart++); char pchar = p.charAt(pStart++); /* process wild cards */ if (!fIgnoreWildCards) { /* skip single wild cards */ if (pchar == fSingleWildCard) { continue; } } if (pchar == tchar) { continue; } if (fIgnoreCase) { if (Character.toUpperCase(tchar) == Character.toUpperCase(pchar)) { continue; } // comparing after converting to upper case doesn't handle all cases; // also compare after converting to lower case if (Character.toLowerCase(tchar) == Character.toLowerCase(pchar)) { continue; } } return false; } return true; } /** * @param text the string to match * @param start the starting index in the text for search, inclusive * @param end the stopping point of search, exclusive * @param p a pattern string that has no wildcard * @return the starting index in the text of the pattern , or -1 if not found */ protected int textPosIn(String text, int start, int end, String p) { int plen = p.length(); int max = end - plen; if (fIgnoreCase == false) { int i = text.indexOf(p, start); if (i == -1 || i > max) { return -1; } return i; } for (int i = start; i <= max; ++i) { if (text.regionMatches(true, i, p, 0, plen)) { return i; } } return -1; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/internal/UI.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3662 Text-content-md5: 9193ef3ff35f2027a375337a25a123c3 Text-content-sha1: 87635aca41e51d84248d0ab05ac1334f81cbd1cc Content-length: 3707 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2005-2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - Initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.internal; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.FontMetrics; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; /** * The UI internal tool. * @author D. GATIBELZA */ public abstract class UI { // Initializes the colors disposer. static { Display.getDefault().disposeExec( new Runnable() { public void run() { dispose(); } } ); } /** * The error color (red color). */ public static final Color ERROR_COLOR = Display.getDefault().getSystemColor(SWT.COLOR_RED); /** * The default text color (black color). */ public static final Color DEFAULT_COLOR = Display.getDefault().getSystemColor(SWT.COLOR_BLACK); /** * Disposes the color resources. */ protected static void dispose() { ERROR_COLOR.dispose(); DEFAULT_COLOR.dispose(); } /** * Returns the number of pixels corresponding to the given number of horizontal dialog units. *

* Clients may call this framework method, but should not override it. *

* @param control The control being sized. * @param dlus The number of horizontal dialog units. * @return The number of pixel. */ public static int convertHorizontalDLUsToPixels(Control control, int dlus) { GC gc = new GC(control); gc.setFont(control.getFont()); int averageWidth = gc.getFontMetrics().getAverageCharWidth(); gc.dispose(); double horizontalDialogUnitSize = averageWidth * 0.25; return (int) Math.round(dlus * horizontalDialogUnitSize); } /** * Returns the number of pixels corresponding to the given number of vertical dialog units. *

* Clients may call this framework method, but should not override it. *

* @param control The control being sized. * @param dlus The number of vertical dialog units. * @return the number of pixels */ public static int convertVerticalDLUsToPixels(Control control, int dlus) { GC gc = new GC(control); gc.setFont(control.getFont()); int height = gc.getFontMetrics().getHeight(); gc.dispose(); double verticalDialogUnitSize = height * 0.125; return (int) Math.round(dlus * verticalDialogUnitSize); } /** * Sets the GridData on button to be one that is spaced for the current font. * @param button The button the data is being set on. */ public static void setButtonLayoutData(Button button) { GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL); // Compute and store a font metric GC gc = new GC(button); gc.setFont(button.getFont()); FontMetrics fontMetrics = gc.getFontMetrics(); gc.dispose(); int widthHint = org.eclipse.jface.dialogs.Dialog.convertVerticalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH); data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x); button.setLayoutData(data); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/validators Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/validators/AbstractValidator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1665 Text-content-md5: 5b7394b946cb0254a17ab156d6133e87 Text-content-sha1: 4c4ab567916a4aefe2f761d1dc3e4819f93d71cf Content-length: 1710 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.validators; /** * The abstract implementation of the IValidator interface. * @author fournier */ public abstract class AbstractValidator implements IValidator { /** * Returned formatted message when isValid method returned false. */ private String _errorMessage; /** * Constructs the abstract implementation of the validator.. *

* It is the responsibility of the caller to fully format the message. *

* @param errorMessage_p The message displayed when {@link #isValid(Object)} returned false. */ protected AbstractValidator(String errorMessage_p) { _errorMessage = errorMessage_p; } /** * Returns the error message. * @return a not null string. */ protected String getErrorMessage() { return _errorMessage; } /** * Set the error message to given one. * @param errorMessage_p the errorMessage to set */ protected void setErrorMessage(String errorMessage_p) { _errorMessage = errorMessage_p; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/validators/CompoundValidator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2390 Text-content-md5: 0530b260ad1442df3651b26607e05292 Text-content-sha1: 4799f0b21d4451502833f40aa87ef55ddc41ea44 Content-length: 2435 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.validators; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * Implements a compound validator that contains other validators.
* The validation is done in applying all contained validators.
* Overall validation is stopped as soon as a contained validator returns an error message. * @author Guillaume Brocard */ public class CompoundValidator extends AbstractValidator { /** * Validators involved in validation process. */ List _validators; /** * Constructor.
* Construct an empty compound validator. */ public CompoundValidator() { super(null); _validators = new ArrayList(0); } /** * Constructor.
* Construct a compound validator with given validator as first one. * @param validator_p */ public CompoundValidator(IValidator validator_p) { this(); addValidator(validator_p); } /** * Add given validator into the list of {@link IValidator} tested when {@link #isValid(Object)} method is called. * @param validator_p */ public void addValidator(IValidator validator_p) { _validators.add(validator_p); } /** * Validate given value against all contained validators. * @see IValidator#isValid(java.lang.Object) */ public String isValid(Object value_p) { String errorMessage = null; Iterator validators = _validators.iterator(); // Iterate over all contained validators, stop as soon as an error is encountered. while (validators.hasNext() && (null == errorMessage)) { IValidator currentValidator = validators.next(); errorMessage = currentValidator.isValid(value_p); } return errorMessage; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/validators/IValidator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1385 Text-content-md5: fb334c5a12d48d107a5be245baaee3c6 Text-content-sha1: 0dad1b2767d825ac9e4a4036ce6f517765bf17be Content-length: 1430 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.validators; /** * An interface for validating any UI data input. *

* This interface should be implemented by classes that wish to act as UI data input validators. *

* @author fournier */ public interface IValidator { /** * Returns a string indicating whether the given value is valid; null means valid, and non-null means invalid, with the result * being the error message to display to the end-user. *

* It is the responsibility of the implementor to fully format the message before returning it. *

* @param value the value to be validated * @return the error message, or null indicating that the value is valid. */ public String isValid(Object value); } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/validators/NotEmptyStringValidator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1864 Text-content-md5: b94c2a3003ab36b788fafee8719ed973 Text-content-sha1: 033ec5dec513f67b300a78e81359e59bb79ee4a4 Content-length: 1909 K 13 svn:mime-type V 10 text/plain PROPS-END /** * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation */ package org.eclipse.egf.common.ui.toolkit.validators; import org.apache.log4j.Logger; /** * Implements a validator that checks if given value is not an empty string. * @author fournier */ public class NotEmptyStringValidator extends AbstractValidator { // Log4j reference logger. private static final Logger __logger = Logger.getLogger(NotEmptyStringValidator.class.getPackage().getName()); /** * Constructs the not empty string validator. * @param errorMessage_p The message displayed when {@link #isValid(Object)} returned false. */ public NotEmptyStringValidator(String errorMessage_p) { super(errorMessage_p); } /** * @see org.eclipse.egf.common.ui.toolkit.validators.IValidator#isValid(java.lang.Object) */ public String isValid(Object value_p) { String result = getErrorMessage(); try { // Value must be a string here. String stringValue = (String) value_p; // Test that the string is not empty. if (stringValue != null && stringValue.trim().length() > 0) { // Returning null indicates that the value is valid. result = null; } } catch (ClassCastException exception_p) { StringBuilder loggerMessage = new StringBuilder("NotEmptyStringValidator.isValid(..) _ "); //$NON-NLS-1$ __logger.error(loggerMessage.toString(), exception_p); } return result; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidator.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2257 Text-content-md5: 4a88b2c5811189ea88e2dccc4b43956f Text-content-sha1: 0dd9dfc1b69eb1a653321a67fcd061dda06fcb60 Content-length: 2302 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.validators; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Implements a validator that checks if given value matches a regular expression. * @author D. GATIBELZA */ public class RegExpValidator extends AbstractValidator { /** * The regular expression to match. */ private Pattern _regExpPattern; /** * Constructs the regular expression validator. * @param errorMessage_p the error message displayed when given value do not match the regular expression. * @param regularExpression_p the regular expression to match. */ public RegExpValidator(String errorMessage_p, String regularExpression_p) { super(errorMessage_p); _regExpPattern = Pattern.compile(regularExpression_p); } /** * Return the regular expression to match. * @return The regular expression pattern. */ public Pattern getPattern() { return _regExpPattern; } /** * @see org.eclipse.egf.common.ui.toolkit.validators.IValidator#isValid(Object) */ public String isValid(Object value_p) { boolean isValid = false; // Precondition : given object must be a string. if (value_p instanceof String) { String value = (String) value_p; if (value.length() > 0) { // Create a matcher for given value. Matcher matcher = _regExpPattern.matcher(value); // Does it match the regular expression ? isValid = matcher.matches(); } } // If given value is not valid, returns the error message; otherwise null that means 'valid'. return (!isValid) ? getErrorMessage() : null; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/validators/RegExpValidatorFactory.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 5571 Text-content-md5: 5cde83000570a8cba15f47c7c132f3cd Text-content-sha1: 92f9289dc883b13bc77d5827f679d111b58186f0 Content-length: 5616 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.validators; /** * The regular expression validators factory. * @author D. GATIBELZA */ public abstract class RegExpValidatorFactory { // Id of the validator created by this validators factory. private final String _id; /** * Creates a new regular expression validator with the given identifier. * @param validatorId_p The identifier of the validator factory. */ protected RegExpValidatorFactory(String validatorId_p) { _id = validatorId_p; } /** * Creates a new standard regular expression validator. * @param errorMessage_p The error message. * @return The regular expression validator. */ public abstract RegExpValidator create(String errorMessage_p); /** * Gets the identifier of this validator factory. * @return The identifier of this validator factory. */ public String getId() { return _id; } /** * The validator which allows only digits. */ public static final RegExpValidatorFactory ONLY_DIGITS = new RegExpValidatorFactory("onlyDigits") { //$NON-NLS-1$ /** * @see org.eclipse.egf.common.ui.toolkit.validators.RegExpValidatorFactory#create(java.lang.String) */ @Override public RegExpValidator create(String errorMessage_p) { return new RegExpValidator(errorMessage_p, "\\d*"); //$NON-NLS-1$ } }; /** * The validator which allows only lower case characters. */ public static final RegExpValidatorFactory ONLY_LOWER_CASE = new RegExpValidatorFactory("onlyLowerCase") { //$NON-NLS-1$ /** * @see org.eclipse.egf.common.ui.toolkit.validators.RegExpValidatorFactory#create(java.lang.String) */ @Override public RegExpValidator create(String errorMessage_p) { return new RegExpValidator(errorMessage_p, "\\p{Lower}"); //$NON-NLS-1$ } }; /** * The validator which allows only upper case characters. */ public static final RegExpValidatorFactory ONLY_UPPER_CASE = new RegExpValidatorFactory("onlyUpperCase") { //$NON-NLS-1$ /** * @see org.eclipse.egf.common.ui.toolkit.validators.RegExpValidatorFactory#create(java.lang.String) */ @Override public RegExpValidator create(String errorMessage_p) { return new RegExpValidator(errorMessage_p, "\\{Upper}"); //$NON-NLS-1$ } }; /** * The validator which doesn't allow numeric start. */ public static final RegExpValidatorFactory NOT_NUMERIC_START = new RegExpValidatorFactory("notNumericStart") { //$NON-NLS-1$ /** * @see org.eclipse.egf.common.ui.toolkit.validators.RegExpValidatorFactory#create(java.lang.String) */ @Override public RegExpValidator create(String errorMessage_p) { return new RegExpValidator(errorMessage_p, "\\D+(.| )+"); //$NON-NLS-1$ } }; /** * The validator which doesn't allow punctuation characters (One of ! " # $ % & ' ( ) * + , - . / : ; < => ? @ [ \ ] ^ _ ` { | } ~). */ public static final RegExpValidatorFactory NO_PUNCTUATION = new RegExpValidatorFactory("noPunctuation") { //$NON-NLS-1$ /** * @see org.eclipse.egf.common.ui.toolkit.validators.RegExpValidatorFactory#create(java.lang.String) */ @Override public RegExpValidator create(String errorMessage_p) { return new RegExpValidator(errorMessage_p, "[^\\p{Punct}]*"); //$NON-NLS-1$ } }; /*** * The validator which doesn't allow space characters (One of [ ] \t \n \x0B \f \r). */ public static final RegExpValidatorFactory NO_SPACE = new RegExpValidatorFactory("noSpace") { //$NON-NLS-1$ /** * @see org.eclipse.egf.common.ui.toolkit.validators.RegExpValidatorFactory#create(java.lang.String) */ @Override public RegExpValidator create(String errorMessage_p) { return new RegExpValidator(errorMessage_p, "[^\\s]*"); //$NON-NLS-1$ } }; /** * The IP digit validator is used to validate each digit of an IP Address. each digit must respect */ public static final RegExpValidatorFactory IP_DIGIT = new RegExpValidatorFactory("ipDigit") { //$NON-NLS-1$ /** * @see org.eclipse.egf.common.ui.toolkit.validators.RegExpValidatorFactory#create(java.lang.String) */ @Override public RegExpValidator create(String errorMessage_p) { return new RegExpValidator(errorMessage_p, "[1]{0,1}\\d{0,2}|[2][0-5]{0,2}"); //$NON-NLS-1$ } }; /** * The not empty validator doesn't allow empty strings. */ public static final RegExpValidatorFactory NOT_EMPTY = new RegExpValidatorFactory("notEmpty") { //$NON-NLS-1$ /** * @see org.eclipse.egf.common.ui.toolkit.validators.RegExpValidatorFactory#create(java.lang.String) */ @Override public RegExpValidator create(String errorMessage_p) { return new RegExpValidator(errorMessage_p, ".+"); //$NON-NLS-1$ } }; } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers/AbstractStructuredContentProvider.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3261 Text-content-md5: 8173d8003f510327f833f2b0cec70f38 Text-content-sha1: 40af977a52aa989e2afbc2069c4567c07922251c Content-length: 3306 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.viewers; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.Viewer; /** * Base class to implement content provider.
* This implementation handles input changes.
* Algorithm of the inputChanged method :
* *
 * if (null == oldInput) && (null != newInput) then we call handleElementAdded method with newInput as argument.
 * if (null != oldInput) && (null == newInput) then we call handleElementRemoved method with oldInput as argument.
 * if (newInput == oldInput) && (null != newInput) then we call handleElementUpdated method with both inputs as arguments.
 * 
* * @author fournier */ public abstract class AbstractStructuredContentProvider implements IStructuredContentProvider { /** * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ public void inputChanged(Viewer viewer_p, Object oldInput_p, Object newInput_p) { handleViewer(viewer_p); // Handle the case : elements are removed. if ((null != oldInput_p) && (null == newInput_p)) { handleElementRemoved(viewer_p, oldInput_p); } // Handle the case : elements are added. else if ((null == oldInput_p) && (null != newInput_p)) { handleElementAdded(viewer_p, newInput_p); } // Handle the case : elements are updated. else if ((oldInput_p == newInput_p) && (null != newInput_p)) { handleElementUpdated(viewer_p, oldInput_p, newInput_p); } } /** * Give an opportunity to handle the viewer when {@link #inputChanged(Viewer, Object, Object)} is called. * @param viewer_p The viewer. */ protected abstract void handleViewer(Viewer viewer_p); /** * Called when elements are updated in the viewer. * @param viewer_p The viewer. * @param oldInput_p The old input value. * @param newInput_p The new input value. */ protected abstract void handleElementUpdated(Viewer viewer_p, Object oldInput_p, Object newInput_p); /** * Called when elements are added in the viewer. * @param viewer_p The viewer. * @param addedElements_p The elements which are added to this viewer. */ protected abstract void handleElementAdded(Viewer viewer_p, Object addedElements_p); /** * Called when elements are removed from the viewer. * @param viewer_p The viewer. * @param removedElements_p The elements which are removed from this viewer. */ protected abstract void handleElementRemoved(Viewer viewer_p, Object removedElements_p); } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers/AbstractTransferViewer.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 32068 Text-content-md5: 6fddead29ca8ba07914330cc11ff6bdb Text-content-sha1: bccd3a44a516b56f5c126d589f54d28a291c087e Content-length: 32113 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.viewers; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.eclipse.egf.common.ui.toolkit.internal.UI; import org.eclipse.egf.common.ui.toolkit.widgets.handler.SelectionChangedHandler; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.viewers.ContentViewer; import org.eclipse.jface.viewers.IBaseLabelProvider; import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ControlAdapter; import org.eclipse.swt.events.ControlEvent; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Point; 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.Text; import org.eclipse.swt.widgets.Widget; /** * Base class to implement a transfer viewer that allows the end-user to transfer objects between a left {@link StructuredViewer} and a right * {@link StructuredViewer}.
* This viewer provides the end-user with different buttons to add, add all, remove and remove all objects from a viewer to another one.
* Theses different buttons can be displayed or not, depending on style provided in the constructor. The enable state of theses buttons can be controlled by * {@link SelectionChangedHandler}.
* Under the viewers, a status text field is displayed to provide contextual information related to viewers' selection. This status field can be displayed or * not, depending on style provided in the constructor.
*

* Implementors must have to provide {@link IContentProvider} and {@link ILabelProvider}. * @author D. GATIBELZA */ public abstract class AbstractTransferViewer extends Viewer { // The logger. private static Logger _logger = Logger.getLogger(AbstractTransferViewer.class.getPackage().getName()); /** * Style constant for displaying the status text field. */ public static final int STATUS_TEXT_FIELD = 1 << 1; /** * Style constant for displaying the 'addAll' button. */ public static final int ADD_ALL_BUTTON = 1 << 2; /** * Style constant for displaying the 'addSelected' button. */ public static final int ADD_SELECTED_BUTTON = 1 << 3; /** * Style constant for displaying the 'removeSelected' button. */ public static final int REMOVE_SELECTED_BUTTON = 1 << 4; /** * Style constant for displaying the 'removeAll' button. */ public static final int REMOVE_ALL_BUTTON = 1 << 5; /** * Style constant for having only one selection available in both viewers.
* Hence, select an element in the left viewer can deselect previous selection is the right viewer. */ public static final int SINGLE_SELECTION_VIEWER = 1 << 6; /** * Style constant for displaying all default buttons. */ public static final int ALL_BUTTONS = ADD_ALL_BUTTON | ADD_SELECTED_BUTTON | REMOVE_SELECTED_BUTTON | REMOVE_ALL_BUTTON; /** * Style constant for displaying all default widgets. */ public static final int ALL_WIDGETS = STATUS_TEXT_FIELD | ALL_BUTTONS; // Style field. private int _style; // Composite that host every widgets and viewers. private Composite _composite; // The bottom status control. private Text _statusBar; // Buttons. private Composite _buttonsPanel; private Button _addAllBtn; private Button _addSelectedBtn; private Button _removeSelectedBtn; private Button _removeAllBtn; // Left structured viewer. protected StructuredViewer _leftViewer; private int _leftViewerStyleBits; // Right structured viewer. protected StructuredViewer _rightViewer; private int _rightViewerStyleBits; // Listener registered on each button. It performs the action due to the end-user click. private SelectionListener _buttonClickedListener; // The listener is registered on both viewers and listens to selection changes. private ISelectionChangedListener _viewerSelectionChangedListener; // List of selection handler used to manage buttons states, those handlers are applied independently for a new selection event coming from both viewers. private List _selectionChangedHandlersForBothViewers; // List of selection handler used to manage buttons states, those handlers are applied for a new selection event coming from the left viewer. private List _selectionChangedHandlersForLeftViewer; // List of selection handler used to manage buttons states, those handlers are applied for a new selection event coming from the right viewer. private List _selectionChangedHandlersForRightViewer; /** * Constructs the abstract implementation of the transfer viewers. * @param parent_p The parent composite. * @param style_p The style constant is used to determine which widgets are displayed.
* {@link #ADD_ALL_BUTTON}, {@link #ADD_SELECTED_BUTTON}, {@link #REMOVE_SELECTED_BUTTON}, {@link #REMOVE_ALL_BUTTON}, {@link #ALL_WIDGETS}, * {@link #ALL_BUTTONS}.
* If {@link SWT#NONE} is used, style is automatically set to {@link #ALL_WIDGETS}. * @param leftViewerStyleBits_p style bits constant used for the left viewer. * @param rightViewerStyleBits_p style bits constant used for the right viewer. */ protected AbstractTransferViewer(Composite parent_p, int style_p, int leftViewerStyleBits_p, int rightViewerStyleBits_p) { // Store the style of this viewer. if (SWT.NONE == style_p) { _style = ALL_WIDGETS; } else { _style = style_p; } // Initialize the selection changed handlers. _selectionChangedHandlersForBothViewers = new ArrayList(0); _selectionChangedHandlersForLeftViewer = new ArrayList(0); _selectionChangedHandlersForRightViewer = new ArrayList(0); // Store the left viewer style. _leftViewerStyleBits = leftViewerStyleBits_p; // Store the right viewer style. _rightViewerStyleBits = rightViewerStyleBits_p; // Finally, create the viewer. createViewer(parent_p); } // Create the contained viewers. private void createViewer(Composite parent_p) { createInternalComposite(parent_p); // Initialization of the common listeners. initializeListeners(); // Create the left viewer. createLeftViewer(_composite); // The middle buttons area. createButtonArea(_composite); // Create the right viewer. createRightViewer(_composite); // Create the status text field. createStatusTextField(_composite); } // Create the composite that hosts all widgets and viewers. private void createInternalComposite(Composite parent_p) { _composite = new Composite(parent_p, SWT.NONE); // Install a layout manager, all widgets are displayed on 3 columns. _composite.setLayout(new GridLayout(3, false)); // Set its layout. GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); _composite.setLayoutData(gridData); } // Create the left viewer. private void createLeftViewer(Composite parent_p) { // If the left viewer is not already set, delegate its creation. if (null == _leftViewer) { // Create the left viewer from delegated method. _leftViewer = doLeftViewer(parent_p); } // Layout it. layoutViewer(_leftViewer, Messages.getString("AbstractTransferViewer.list.available.tooltip")); //$NON-NLS-1$ } // Create the right viewer. private void createRightViewer(Composite parent_p) { // If the right viewer is not already set, delegate its creation. if (null == _rightViewer) { // Create the right viewer from delegated method. _rightViewer = doRightViewer(parent_p); } layoutViewer(_rightViewer, Messages.getString("AbstractTransferViewer.list.selected.tooltip")); //$NON-NLS-1$ } /** * Create the button area. * @param parent_p The parent composite. */ protected void createButtonArea(Composite parent_p) { // The panel. _buttonsPanel = new Composite(parent_p, SWT.NONE); GridData gdData = new GridData(); gdData.widthHint = UI.convertHorizontalDLUsToPixels(_buttonsPanel, IDialogConstants.BUTTON_WIDTH); gdData.verticalAlignment = GridData.CENTER; gdData.grabExcessVerticalSpace = true; _buttonsPanel.setLayoutData(gdData); // Sets the panel layout. GridLayout buttonsLayout = new GridLayout(1, true); _buttonsPanel.setLayout(buttonsLayout); // Adds buttons according to the style. if ((ADD_ALL_BUTTON & _style) != 0) { _addAllBtn = createButton(_buttonsPanel, ">>", Messages.getString("AbstractTransferViewer.addallelements.tooltip")); //$NON-NLS-1$ //$NON-NLS-2$ } if ((ADD_SELECTED_BUTTON & _style) != 0) { _addSelectedBtn = createButton(_buttonsPanel, ">", Messages.getString("AbstractTransferViewer.addselectedelements.tooltip")); //$NON-NLS-1$ //$NON-NLS-2$ } if ((REMOVE_SELECTED_BUTTON & _style) != 0) { _removeSelectedBtn = createButton(_buttonsPanel, "<", Messages.getString("AbstractTransferViewer.removeselectedelements.tooltip")); //$NON-NLS-1$ //$NON-NLS-2$ } if ((REMOVE_ALL_BUTTON & _style) != 0) { _removeAllBtn = createButton(_buttonsPanel, "<<", Messages.getString("AbstractTransferViewer.removeallelements.tooltip")); //$NON-NLS-1$ //$NON-NLS-2$ } } // Create the status text field according to the style. private void createStatusTextField(Composite parent_p) { // Adds the status text field, if the style constant is set. if ((STATUS_TEXT_FIELD & _style) != 0) { _statusBar = new Text(parent_p, SWT.READ_ONLY | SWT.BORDER); _statusBar.setEditable(false); GridData gdData = new GridData(); gdData.horizontalAlignment = SWT.FILL; gdData.grabExcessHorizontalSpace = true; gdData.horizontalSpan = 3; _statusBar.setLayoutData(gdData); } } // Initialize the different listeners used within this viewer component. private void initializeListeners() { // Called when the end-user clicks on a button. _buttonClickedListener = new SelectionAdapter() { /** * @see SelectionAdapter#widgetSelected(SelectionEvent) */ @SuppressWarnings("synthetic-access") @Override public void widgetSelected(SelectionEvent event_p) { Widget button = event_p.widget; handleButtonClicked(button); } }; // Called when the selection changed in both left and right viewers. _viewerSelectionChangedListener = new ISelectionChangedListener() { /** * @see ISelectionChangedListener#selectionChanged(SelectionChangedEvent) */ public void selectionChanged(SelectionChangedEvent event_p) { // Handle the viewers selection mode. handleViewersSelectionMode(event_p); // Handle the selection itself. ISelection selection = event_p.getSelection(); if (!selection.isEmpty()) { // Update the buttons state according to the selection. updateButtons(selection, event_p.getSelectionProvider()); // Gets the last element of the current selection. IStructuredSelection structSelection = (IStructuredSelection) selection; Object lastSelected = structSelection.toList().get(structSelection.size() - 1); // Updates the status line. ContentViewer source = (ContentViewer) event_p.getSource(); ILabelProvider labelProvider = (ILabelProvider) source.getLabelProvider(); updateStatusLine(labelProvider.getText(lastSelected)); } } }; // Called when the internal composite is layout. _composite.addControlListener(new ControlAdapter() { /** * @see org.eclipse.swt.events.ControlAdapter#controlResized(org.eclipse.swt.events.ControlEvent) */ @Override public void controlResized(ControlEvent event_p) { Control leftControl = _leftViewer.getControl(); Point leftViewerSize = leftControl.computeSize(SWT.DEFAULT, SWT.DEFAULT); Control rightControl = _rightViewer.getControl(); Point rightViewerSize = rightControl.computeSize(SWT.DEFAULT, SWT.DEFAULT); int width = Math.max(leftViewerSize.x, rightViewerSize.x); GridData gd = (GridData) leftControl.getLayoutData(); gd.widthHint = width; gd = (GridData) rightControl.getLayoutData(); gd.widthHint = width; } }); } // Layouts the specified viewer. private void layoutViewer(StructuredViewer viewer_p, String tooltip_p) { // Precondition. if (null == viewer_p) { return; } // Improve performances. viewer_p.setUseHashlookup(true); // Updates viewer control. Control control = viewer_p.getControl(); control.setToolTipText(tooltip_p); viewer_p.addSelectionChangedListener(_viewerSelectionChangedListener); // Sets the viewer layout data. GridData gdData = new GridData(); gdData.horizontalAlignment = SWT.FILL; gdData.verticalAlignment = SWT.FILL; gdData.grabExcessHorizontalSpace = true; gdData.grabExcessVerticalSpace = true; control.setLayoutData(gdData); } // Creates and layout a single button. private Button createButton(Composite parent_p, String text_p, String tooltip_p) { Button button = new Button(parent_p, SWT.CENTER); GridData gdData = new GridData(); gdData.horizontalAlignment = SWT.FILL; gdData.grabExcessHorizontalSpace = true; button.setLayoutData(gdData); button.setText(text_p); button.setToolTipText(tooltip_p); button.addSelectionListener(_buttonClickedListener); return button; } // Handle button click. It performs changes between viewers according to the selected button given as argument. // This method is not intended to be overridden. // To manage the buttons differently, please override doHandle'ButtonName' methods (e.g doHanldeAddAllButton). private void handleButtonClicked(Widget button_p) { boolean somethingWasDone = false; if (button_p == _addAllBtn) { somethingWasDone = doHandleAddAllButton(); } else if (button_p == _addSelectedBtn) { somethingWasDone = doHandleAddSelectedButton(); } else if (button_p == _removeSelectedBtn) { somethingWasDone = doHandleRemoveSelectedButton(); } else if (button_p == _removeAllBtn) { somethingWasDone = doHandleRemoveAllButton(); } else { _logger.warn("Unsupported source button :" + button_p); //$NON-NLS-1$ } // Layout the the composite because objects are transfered from a viewer to the other one. if (somethingWasDone) { doLayout(); } } /** * Layouts the transfer viewer control. */ protected void doLayout() { _composite.layout(); } /** * Handle the "Add all" button click. * @return True if a change occurs else false. */ protected boolean doHandleAddAllButton() { boolean changed = false; Object input = _leftViewer.getInput(); if (null != input) { changed = true; _leftViewer.setInput(null); _rightViewer.setInput(input); } return changed; } /** * Handle the "Add selected" button click. * @return True if a change occurs else false. */ protected boolean doHandleAddSelectedButton() { boolean changed = false; ISelection leftSelection = _leftViewer.getSelection(); if (!leftSelection.isEmpty()) { changed = true; IStructuredSelection structuredSelection = (IStructuredSelection) leftSelection; Object[] elements = structuredSelection.toArray(); _leftViewer.getContentProvider().inputChanged(_leftViewer, elements, null); _rightViewer.getContentProvider().inputChanged(_rightViewer, null, elements); } return changed; } /** * Handle the "Remove selected" button click. * @return True if a change occurs else false. */ protected boolean doHandleRemoveSelectedButton() { boolean changed = false; ISelection rightSelection = _rightViewer.getSelection(); if (!rightSelection.isEmpty()) { changed = true; IStructuredSelection structuredSelection = (IStructuredSelection) rightSelection; Object[] elements = structuredSelection.toArray(); _leftViewer.getContentProvider().inputChanged(_leftViewer, null, elements); _rightViewer.getContentProvider().inputChanged(_rightViewer, elements, null); } return changed; } /** * Handle the "Remove all" button click. * @return True if a change occurs else false. */ protected boolean doHandleRemoveAllButton() { boolean changed = false; Object input = _rightViewer.getInput(); if (null != input) { changed = true; _rightViewer.setInput(null); _leftViewer.setInput(input); } return changed; } /** * Update the status text field. * @param text_p The text field. */ protected void updateStatusLine(String text_p) { if (null != _statusBar) { _statusBar.setText(text_p); } } /** * Update buttons through provided selection changed handlers. * @param selection_p The selection. * @param selectionProvider_p The selection provider. */ protected void updateButtons(ISelection selection_p, ISelectionProvider selectionProvider_p) { List handlersForSelectionProvider = null; // Get the selection changed handlers for appropriate viewer : the one that the selection is coming from. if (selectionProvider_p == _leftViewer) { handlersForSelectionProvider = _selectionChangedHandlersForLeftViewer; } else if (selectionProvider_p == _rightViewer) { handlersForSelectionProvider = _selectionChangedHandlersForRightViewer; } // Notify selection changed handlers if at least one is registered for the selection provider. notifySelectionChangedHandler(selection_p, handlersForSelectionProvider); // Notify selection changed handlers if at least one is registered for both viewers. notifySelectionChangedHandler(selection_p, _selectionChangedHandlersForBothViewers); } /** * Notify given list of selection changed handler with specified selection. * @param selection_p The selection. * @param handlers_p The selection handlers. */ private void notifySelectionChangedHandler(ISelection selection_p, List handlers_p) { if (null != handlers_p) { for (SelectionChangedHandler handler : handlers_p) { handler.handleSelection(selection_p); } } } /** * Handle viewers selection mode depending on the style provided at construction time.
* If style is set to {@link #SINGLE_SELECTION_VIEWER}, the selection is revealed in only one viewer ie the selection in the other viewer is unset. * @param event_p The selection changed event. */ protected void handleViewersSelectionMode(SelectionChangedEvent event_p) { // If single selection viewer is set, handle the new given selection only if this one is not empty. // Indeed, the call to 'disableSelectionViewer.setSelection(StructuredSelection.EMPTY)' is reentrant. if (0 != (_style & SINGLE_SELECTION_VIEWER) && !event_p.getSelection().isEmpty()) { // It must be one of the two viewers : left or right. ISelectionProvider selectionProvider = event_p.getSelectionProvider(); // If the originator of the new selection is the left viewer, disable the selection in the right viewer. StructuredViewer disableSelectionViewer = null; Button buttonDrivenByOppositeViewer = null; if (selectionProvider == _leftViewer) { disableSelectionViewer = _rightViewer; // Selection is coming from the left viewer, the button linked to the opposite viewer is 'removeSelectedBtn'. buttonDrivenByOppositeViewer = _removeSelectedBtn; } // If the originator of the new selection is the left viewer, disable the selection in the right viewer. else if (selectionProvider == _rightViewer) { disableSelectionViewer = _leftViewer; // Selection is coming from the right viewer, the button linked to the opposite viewer is 'addSelectedBtn'. buttonDrivenByOppositeViewer = _addSelectedBtn; } // Disable the button driven by the opposite viewer. if (null != buttonDrivenByOppositeViewer) { buttonDrivenByOppositeViewer.setEnabled(false); } // Disable the selection on the appropriate viewer if it has a non empty selection. if (!disableSelectionViewer.getSelection().isEmpty()) { disableSelectionViewer.setSelection(StructuredSelection.EMPTY); } } } /** * Does the right viewer. * @param composite_p This composite. * @return The right viewer. */ protected abstract StructuredViewer doRightViewer(Composite composite_p); /** * Does the left viewer. * @param composite_p This composite. * @return The left composite. */ protected abstract StructuredViewer doLeftViewer(Composite composite_p); // ////////////////////// ---- Public API ---- //////////////////////// /** * Set a selection changed handler used to compute enable state of given button. * @param handler_p The selection changed handler. * @param buttonStyleConstant_p The button style. */ public void setSelectionChangedHandler(SelectionChangedHandler handler_p, int buttonStyleConstant_p) { // Register the given selection changed handler according to style constant. if ((null != _addAllBtn) && (ADD_ALL_BUTTON & buttonStyleConstant_p) != 0) { handler_p.addControl(_addAllBtn); _selectionChangedHandlersForBothViewers.add(handler_p); } if ((null != _removeAllBtn) && (REMOVE_ALL_BUTTON & buttonStyleConstant_p) != 0) { handler_p.addControl(_removeAllBtn); _selectionChangedHandlersForBothViewers.add(handler_p); } if ((null != _addSelectedBtn) && (ADD_SELECTED_BUTTON & buttonStyleConstant_p) != 0) { handler_p.addControl(_addSelectedBtn); _selectionChangedHandlersForLeftViewer.add(handler_p); } if ((null != _removeSelectedBtn) && (REMOVE_SELECTED_BUTTON & buttonStyleConstant_p) != 0) { handler_p.addControl(_removeSelectedBtn); _selectionChangedHandlersForRightViewer.add(handler_p); } } /** * Gets the left content provider. * @return The left content provider or null. */ public IContentProvider getLeftContentProvider() { IContentProvider provider = null; if (null != _leftViewer) { provider = _leftViewer.getContentProvider(); } return provider; } /** * Gets the left viewer input. * @return The left viewer input or null. */ public Object getLeftInput() { Object object = null; if (null != _leftViewer) { object = _leftViewer.getInput(); } return object; } /** * Gets the left viewer. * @return The left viewer. */ public StructuredViewer getLeftViewer() { return _leftViewer; } /** * Gets the label provider for the left viewer. * @return The label provider or null. */ public IBaseLabelProvider getLeftLabelProvider() { IBaseLabelProvider provider = null; if (null != _leftViewer) { provider = _leftViewer.getLabelProvider(); } return provider; } /** * Sets the content provider for the left viewer. * @param provider_p The content provider. */ public void setLeftContentProvider(IContentProvider provider_p) { _leftViewer.setContentProvider(provider_p); } /** * Sets the left viewer input. * @param input_p The input to set. */ public void setLeftInput(Object input_p) { _leftViewer.setInput(input_p); } /** * Sets the label provider for the left viewer. * @param provider_p The label provider. */ public void setLeftLabelProvider(ILabelProvider provider_p) { _leftViewer.setLabelProvider(provider_p); } /** * Gets the right content provider. * @return the right content provider or null. */ public IContentProvider getRightContentProvider() { IContentProvider provider = null; if (null != _rightViewer) { provider = _rightViewer.getContentProvider(); } return provider; } /** * Gets the right viewer input. * @return The right viewer input or null. */ public Object getRightInput() { Object object = null; if (null != _rightViewer) { object = _rightViewer.getInput(); } return object; } /** * Gets the right viewer. * @return the right viewer. */ public StructuredViewer getRightViewer() { return _rightViewer; } /** * Gets the label provider for the right viewer. * @return The label provider or null. */ public IBaseLabelProvider getRightLabelProvider() { IBaseLabelProvider provider = null; if (null != _rightViewer) { provider = _rightViewer.getLabelProvider(); } return provider; } /** * Sets the content provider for the right viewer. * @param provider_p The content provider */ public void setRightContentProvider(IContentProvider provider_p) { _rightViewer.setContentProvider(provider_p); } /** * Sets the right viewer input. * @param input_p The input. */ public void setRightInput(Object input_p) { _rightViewer.setInput(input_p); } /** * Sets the label provider for the right viewer. * @param provider_p The label provider. */ public void setRightLabelProvider(ILabelProvider provider_p) { _rightViewer.setLabelProvider(provider_p); } /** * @see Widget#dispose() */ public void dispose() { // Dispose the composite that hosts everything. if (null != _composite && !_composite.isDisposed()) { _composite.dispose(); _composite = null; } _buttonClickedListener = null; _addAllBtn = null; _addSelectedBtn = null; _removeSelectedBtn = null; _removeAllBtn = null; if (null != _leftViewer) { _leftViewer.removeSelectionChangedListener(_viewerSelectionChangedListener); } if (null != _rightViewer) { _rightViewer.removeSelectionChangedListener(_viewerSelectionChangedListener); } _viewerSelectionChangedListener = null; } /** * Gets the viewer control. * @return The viewer control. */ @Override public Control getControl() { return _composite; } /** * Does nothing. Use the {@link #getLeftInput()} and {@link #getRightInput()} methods instead of this one. */ @Override public Object getInput() { // Do nothing. return null; } /** * Do nothing. * @return null * @see org.eclipse.jface.viewers.Viewer#getSelection() */ @Override public ISelection getSelection() { return null; } /** * @see org.eclipse.jface.viewers.Viewer#refresh() */ @Override public void refresh() { _leftViewer.refresh(); _rightViewer.refresh(); } /** * Does nothing. Use the {@link #setLeftInput(Object)} and {@link #setRightInput(Object)} methods instead of this one. */ @Override public void setInput(Object input_p) { // Do nothing. } /** * Do nothing. * @see org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers.ISelection, boolean) */ @Override public void setSelection(ISelection selection_p, boolean reveal_p) { // Do nothing. } /** * Returns the style bit constant used for the left viewer. * @return The left viewer style bits. */ protected int getLeftViewerStyleBits() { return _leftViewerStyleBits; } /** * Returns the style bit constant used for the right viewer. * @return The right viewer style bits. */ protected int getRightViewerStyleBits() { return _rightViewerStyleBits; } /** * Sets the specified buttons enabled or not. The style supports OR'ed defined button style constants. * @param buttonStyle_p The button style. * @param enable_p True to enable button(s) else false. * @see #ADD_ALL_BUTTON * @see #ADD_SELECTED_BUTTON * @see #REMOVE_SELECTED_BUTTON * @see #REMOVE_ALL_BUTTON */ public void setButtonEnabled(int buttonStyle_p, boolean enable_p) { if (0 != (buttonStyle_p & ADD_ALL_BUTTON)) { _addAllBtn.setEnabled(enable_p); } if (0 != (buttonStyle_p & ADD_SELECTED_BUTTON)) { _addSelectedBtn.setEnabled(enable_p); } if (0 != (buttonStyle_p & REMOVE_SELECTED_BUTTON)) { _removeSelectedBtn.setEnabled(enable_p); } if (0 != (buttonStyle_p & REMOVE_ALL_BUTTON)) { _removeAllBtn.setEnabled(enable_p); } } /** * Checks is the specified button is enabled or not. The style does not support OR'ed defined button style constants. * @param buttonStyle_p The button style. * @return True if the specified button is enabled else false. * @see #ADD_ALL_BUTTON * @see #ADD_SELECTED_BUTTON * @see #REMOVE_SELECTED_BUTTON * @see #REMOVE_ALL_BUTTON */ public boolean isButtonEnabled(int buttonStyle_p) { boolean enabled = true; switch (buttonStyle_p) { case ADD_ALL_BUTTON: { enabled = _addAllBtn.isEnabled(); break; } case ADD_SELECTED_BUTTON: { enabled = _addSelectedBtn.isEnabled(); break; } case REMOVE_SELECTED_BUTTON: { enabled = _removeSelectedBtn.isEnabled(); break; } case REMOVE_ALL_BUTTON: { enabled = _removeAllBtn.isEnabled(); break; } } return enabled; } /** * Return the buttons container. * @return a not null {@link Composite}. */ public Composite getButtonsContainer() { return _buttonsPanel; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers/DefaultListContentProvider.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 4046 Text-content-md5: c93b0db828346d010ca916728f492e28 Text-content-sha1: c0b0c97d685c7f8be26d940166137447d38e02fb Content-length: 4091 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.viewers; import java.util.Collection; import org.eclipse.jface.viewers.AbstractListViewer; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.Viewer; /** * The default list content provider. * @author D. GATIBELZA */ public class DefaultListContentProvider extends AbstractStructuredContentProvider { /** * Constructs the default list content provider. */ public DefaultListContentProvider() { // Do nothing. } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractStructuredContentProvider#handleElementAdded(org.eclipse.jface.viewers.Viewer, java.lang.Object) */ @SuppressWarnings("unchecked") @Override protected void handleElementAdded(Viewer viewer_p, Object addedElements_p) { AbstractListViewer abstractListViewer = (AbstractListViewer) viewer_p; if (addedElements_p instanceof Object[]) { Object[] array = (Object[]) addedElements_p; abstractListViewer.add(array); } else if (addedElements_p instanceof Collection) { Collection collection = (Collection) addedElements_p; Object[] array = collection.toArray(); abstractListViewer.add(array); } else { abstractListViewer.add(addedElements_p); } } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractStructuredContentProvider#handleElementRemoved(org.eclipse.jface.viewers.Viewer, * java.lang.Object) */ @SuppressWarnings("unchecked") @Override protected void handleElementRemoved(Viewer viewer_p, Object removedElements_p) { AbstractListViewer abstractListViewer = (AbstractListViewer) viewer_p; if (removedElements_p instanceof Object[]) { Object[] array = (Object[]) removedElements_p; abstractListViewer.remove(array); } else if (removedElements_p instanceof Collection) { Collection collection = (Collection) removedElements_p; Object[] array = collection.toArray(); abstractListViewer.remove(array); } else { abstractListViewer.remove(removedElements_p); } } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractStructuredContentProvider#handleElementUpdated(org.eclipse.jface.viewers.Viewer, * java.lang.Object, java.lang.Object) */ @Override protected void handleElementUpdated(Viewer viewer_p, Object oldInput_p, Object newInput_p) { ((AbstractListViewer) viewer_p).refresh(oldInput_p); } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractStructuredContentProvider#handleViewer(org.eclipse.jface.viewers.Viewer) */ @Override protected void handleViewer(Viewer viewer_p) { if (!(viewer_p instanceof AbstractListViewer)) { throw new IllegalArgumentException("Viewer must be an instance of AbstractListViewer"); //$NON-NLS-1$ } } /** * @see IStructuredContentProvider#getElements(Object) */ @SuppressWarnings("unchecked") public Object[] getElements(Object inputElement_p) { if (inputElement_p instanceof Object[]) { return (Object[]) inputElement_p; } if (inputElement_p instanceof Collection) { return ((Collection) inputElement_p).toArray(); } return new Object[0]; } /** * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { // Do nothing. } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers/DefaultTableContentProvider.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3878 Text-content-md5: 26284aeea525187357fbb804afc20ff3 Text-content-sha1: 8e3ff366baee8f6aa14a3101023dac05b24cb9ed Content-length: 3923 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.viewers; import java.util.Collection; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; /** * The default table content provider. * @author D. GATIBELZA */ public class DefaultTableContentProvider extends AbstractStructuredContentProvider { /** * Constructs the default table content provider. */ public DefaultTableContentProvider() { // Do nothing. } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractStructuredContentProvider#handleElementAdded(org.eclipse.jface.viewers.Viewer, java.lang.Object) */ @SuppressWarnings("unchecked") @Override protected void handleElementAdded(Viewer viewer_p, Object addedElements_p) { TableViewer tableViewer = (TableViewer) viewer_p; if (addedElements_p instanceof Object[]) { Object[] array = (Object[]) addedElements_p; tableViewer.add(array); } else if (addedElements_p instanceof Collection) { Collection collection = (Collection) addedElements_p; tableViewer.add(collection.toArray()); } else { tableViewer.add(addedElements_p); } } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractStructuredContentProvider#handleElementRemoved(org.eclipse.jface.viewers.Viewer, * java.lang.Object) */ @SuppressWarnings("unchecked") @Override protected void handleElementRemoved(Viewer viewer_p, Object removedElements_p) { TableViewer tableViewer = (TableViewer) viewer_p; if (removedElements_p instanceof Object[]) { Object[] array = (Object[]) removedElements_p; tableViewer.remove(array); } else if (removedElements_p instanceof Collection) { Collection collection = (Collection) removedElements_p; tableViewer.remove(collection.toArray()); } else { tableViewer.remove(removedElements_p); } } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractStructuredContentProvider#handleElementUpdated(org.eclipse.jface.viewers.Viewer, * java.lang.Object, java.lang.Object) */ @Override protected void handleElementUpdated(Viewer viewer_p, Object oldInput_p, Object newInput_p) { ((TableViewer) viewer_p).refresh(newInput_p); } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractStructuredContentProvider#handleViewer(org.eclipse.jface.viewers.Viewer) */ @Override protected void handleViewer(Viewer viewer_p) { if (!(viewer_p instanceof TableViewer)) { throw new IllegalArgumentException("Viewer must be an instance of TableViewer"); //$NON-NLS-1$ } } /** * @see IStructuredContentProvider#getElements(Object) */ @SuppressWarnings("unchecked") public Object[] getElements(Object inputElement_p) { if (inputElement_p instanceof Object[]) { return (Object[]) inputElement_p; } if (inputElement_p instanceof Collection) { return ((Collection) inputElement_p).toArray(); } return new Object[0]; } /** * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { // Do nothing. } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers/Messages.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1528 Text-content-md5: 8c81f4221b98abd5126d7186a7cbccb6 Text-content-sha1: b9e2226ddd2406308043acdf5565dc4717a22e6b Content-length: 1573 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.viewers; import java.util.MissingResourceException; import java.util.ResourceBundle; /** * The message handler for the viewers package. * @author D. GATIBELZA */ public class Messages { // The bundle name. private static final String BUNDLE_NAME = "org.eclipse.egf.common.ui.toolkit.viewers.messages"; //$NON-NLS-1$ // The resource bundle. private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); // Constructs the message handler. private Messages() { // Do nothing. } /** * Gets the string corresponding from the specified key. * @param key_p The key. * @return The string corresponding to the given key.. */ public static String getString(String key_p) { try { return RESOURCE_BUNDLE.getString(key_p); } catch (MissingResourceException e) { return '!' + key_p + '!'; } } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers/TransferListViewer.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 3272 Text-content-md5: 6df961d5d8aa0e998ab40b5eb7774160 Text-content-sha1: ff6cced4d78cb685a2a75b0ed1dc9e4990627349 Content-length: 3317 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.viewers; import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.ListViewer; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; /** * Implementation of an {@link AbstractTransferViewer} where both left and right viewers are {@link ListViewer}.
* Implementors must have to provide {@link IContentProvider} and {@link ILabelProvider} according to {@link ListViewer}. * @author D. GATIBELZA */ public class TransferListViewer extends AbstractTransferViewer { /** * Default list viewer style bits constant. */ private final static int DEFAULT_LIST_VIEWER_STYLE = SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER; /** * Constructs the transfer list viewer. ListViewers used as left and right viewers are instantiated with default {@link ListViewer} style bits. * @param parent_p parent composite of this viewer. * @param style_p style of this viewer. */ public TransferListViewer(Composite parent_p, int style_p) { this(parent_p, style_p, DEFAULT_LIST_VIEWER_STYLE, DEFAULT_LIST_VIEWER_STYLE); } /** * Constructs the transfer list viewer. * @param parent_p parent composite of this viewer. * @param style_p style of this viewer. * @param leftViewerStyleBits_p style bits used for the left list viewer. * @param rightViewerStyleBits_p style bits used for the right list viewer. */ public TransferListViewer(Composite parent_p, int style_p, int leftViewerStyleBits_p, int rightViewerStyleBits_p) { super(parent_p, style_p, leftViewerStyleBits_p, rightViewerStyleBits_p); DefaultListContentProvider provider = new DefaultListContentProvider(); setLeftContentProvider(provider); setRightContentProvider(provider); LabelProvider labelProvider = new LabelProvider(); setLeftLabelProvider(labelProvider); setRightLabelProvider(labelProvider); } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractTransferViewer#doLeftViewer(org.eclipse.swt.widgets.Composite) */ @Override protected StructuredViewer doLeftViewer(Composite parent_p) { return new ListViewer(parent_p, getLeftViewerStyleBits()); } /** * @see org.eclipse.egf.common.ui.toolkit.viewers.AbstractTransferViewer#doRightViewer(org.eclipse.swt.widgets.Composite) */ @Override protected StructuredViewer doRightViewer(Composite parent_p) { return new ListViewer(parent_p, getRightViewerStyleBits()); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers/TransferTreeViewer.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2825 Text-content-md5: 45bc98c767db9406850e2271e2cbcc5c Text-content-sha1: e8aa0cd36cd069f053593b805b473f974010525f Content-length: 2870 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.viewers; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; /** * Implementation of an {@link AbstractTransferViewer} where both left and right viewers are {@link TreeViewer}.
* Implementors must have to provide {@link ITreeContentProvider} and {@link ILabelProvider} according to {@link TreeViewer}. * @author D. GATIBELZA */ public class TransferTreeViewer extends AbstractTransferViewer { /** * Default TreeViewer style bits constant. */ private final static int DEFAULT_TREE_VIEWER_STYLE = SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER; /** * Constructs the transfer tree viewer. TreeViewers used as left and right viewers are instantiated with default {@link TreeViewer} style bits. * @param parent_p parent composite of this viewer. * @param style_p style of this viewer. */ public TransferTreeViewer(Composite parent_p, int style_p) { this(parent_p, style_p, DEFAULT_TREE_VIEWER_STYLE, DEFAULT_TREE_VIEWER_STYLE); } /** * Constructs the transfer tree viewer. * @param parent_p parent composite of this viewer. * @param style_p style of this viewer. * @param leftViewerStyleBits_p style bits used for the left tree viewer. * @param rightViewerStyleBits_p style bits used for the right tree viewer. */ public TransferTreeViewer(Composite parent_p, int style_p, int leftViewerStyleBits_p, int rightViewerStyleBits_p) { super(parent_p, style_p, leftViewerStyleBits_p, rightViewerStyleBits_p); } /** * @see AbstractTransferViewer#doLeftViewer(AbstractTransferViewer) */ @Override protected StructuredViewer doLeftViewer(Composite parent_p) { return new TreeViewer(parent_p, getLeftViewerStyleBits()); } /** * @see AbstractTransferViewer#doRightViewer(AbstractTransferViewer) */ @Override protected StructuredViewer doRightViewer(Composite parent_p) { return new TreeViewer(parent_p, getRightViewerStyleBits()); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/viewers/messages.properties Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 990 Text-content-md5: 0d6efc77cd2a8f5c700824c6cc71624a Text-content-sha1: 723f2f6f78f63b78572b099c25d03158de95b764 Content-length: 1035 K 13 svn:mime-type V 10 text/plain PROPS-END ############################################################################### # Copyright (c) 2009 Thales Corporate Services S.A.S. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Thales Corporate Services S.A.S - initial API and implementation ############################################################################### AbstractTransferViewer.addallelements.tooltip=Add all elements. AbstractTransferViewer.list.available.tooltip=Available elements. AbstractTransferViewer.list.selected.tooltip=Selected elements AbstractTransferViewer.addselectedelements.tooltip=Add selected element(s). AbstractTransferViewer.removeselectedelements.tooltip=Remove selected element(s). AbstractTransferViewer.removeallelements.tooltip=Remove all elements. Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/widgets Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/widgets/handler Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/toolkit/widgets/handler/SelectionChangedHandler.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 2302 Text-content-md5: 8e338e7b79823eea15e724ef9a102845 Text-content-sha1: 458ed72367af3253e09e5ca70d5f9211a9c5c137 Content-length: 2347 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.toolkit.widgets.handler; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.viewers.ISelection; import org.eclipse.swt.widgets.Control; /** * A selection changed handler set the enable state to the managed control list according to a selection.
* Client must override {@link #doHandleSelection(ISelection)}, to provide the rule which really computes the enable state depending on the given selection. * @author fournier */ public abstract class SelectionChangedHandler { /** * Control that the selection changed handler computes the state enable value for. */ private List _controls; /** * Add a control in the list of managed controls. * @param control_p The control. */ public void addControl(Control control_p) { // Lazy pattern creation. if (null == _controls) { _controls = new ArrayList(1); } _controls.add(control_p); } /** * Handle selection and recompute the enable state of all managed controls. * @param selection_p The selection. */ public void handleSelection(ISelection selection_p) { // Delegate the enable computation to class that overrides this class. boolean enabled = doHandleSelection(selection_p); // Set the enable state to the control. for (Control control : _controls) { control.setEnabled(enabled); } } /** * Handle selection to enable or disable the managed controls. * @param selection_p The selection. * @return True means enable, false means disable. */ protected abstract boolean doHandleSelection(ISelection selection_p); } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/AbstractTooltipLabelProvider.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 5470 Text-content-md5: 54a3fb63241b6ccbd1e8659bcaffd359 Text-content-sha1: 9c9c96ff14ea901014d2be3abe62ab9ad17e2199 Content-length: 5515 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; import org.eclipse.jface.viewers.CellLabelProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ViewerCell; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; /** * Base class to implement label providers with tooltip support to use in JFace viewers. * @author Guillaume Brocard */ public abstract class AbstractTooltipLabelProvider extends CellLabelProvider implements ILabelProvider { /** * The time in milliseconds the tool tip is shown for. */ protected static final int TOOLTIP_TIME_DISPLAYED = 7000; /** * The time in milliseconds until the tool tip is displayed. */ protected static final int DISPLAY_DELAY_TIME = 2000; /** * Time in milliseconds the tool tip is shown for. */ private int _tooltipTimeDisplayed; /** * Rime in milliseconds until the tool tip is displayed. */ private int _tooltipDisplayDelayTime; /** * Label provider used to get text and image for given object. */ private ILabelProvider _labelProvider; /** * Constructor. * @param labelProvider_p label provider that provides the text and the image for given element. * @param tooltipTimeDisplayed_p time in milliseconds the tool tip is shown for. * @param tooltipDisplayDelayTime_p time in milliseconds until the tool tip is displayed. */ protected AbstractTooltipLabelProvider(ILabelProvider labelProvider_p, int tooltipTimeDisplayed_p, int tooltipDisplayDelayTime_p) { _labelProvider = labelProvider_p; _tooltipTimeDisplayed = tooltipTimeDisplayed_p; _tooltipDisplayDelayTime = tooltipDisplayDelayTime_p; } /** * Constructor. * @param labelProvider_p label provider that provides the text and the image for given element. * @param tooltipTimeDisplayed_p time in milliseconds the tool tip is shown for. * @param tooltipDisplayDelayTime_p time in milliseconds until the tool tip is displayed. */ protected AbstractTooltipLabelProvider(ILabelProvider labelProvider_p) { this(labelProvider_p, TOOLTIP_TIME_DISPLAYED, DISPLAY_DELAY_TIME); } /** * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipText(java.lang.Object) */ @Override public abstract String getToolTipText(Object element_p); /** * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipShift(java.lang.Object) */ @Override public Point getToolTipShift(Object object_p) { return new Point(5, 5); } /** * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipDisplayDelayTime(java.lang.Object) */ @Override public int getToolTipDisplayDelayTime(Object object_p) { return _tooltipDisplayDelayTime; } /** * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipTimeDisplayed(java.lang.Object) */ @Override public int getToolTipTimeDisplayed(Object object_p) { return _tooltipTimeDisplayed; } /** * @see org.eclipse.jface.viewers.CellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell) */ @Override public void update(ViewerCell viewer_p) { Object element = viewer_p.getElement(); viewer_p.setText(getText(element)); viewer_p.setImage(getImage(element)); } /** * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) */ public Image getImage(Object element_p) { return _labelProvider.getImage(element_p); } /** * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) */ public String getText(Object element_p) { return _labelProvider.getText(element_p); } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener) */ @Override public void addListener(ILabelProviderListener listener_p) { super.addListener(listener_p); _labelProvider.addListener(listener_p); } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ @Override public void dispose() { super.dispose(); _labelProvider.dispose(); } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String) */ @Override public boolean isLabelProperty(Object element_p, String property_p) { return super.isLabelProperty(element_p, property_p) && _labelProvider.isLabelProperty(element_p, property_p); } /** * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener) */ @Override public void removeListener(ILabelProviderListener listener_p) { super.removeListener(listener_p); _labelProvider.removeListener(listener_p); } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/AbstractViewerWithButtons.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 11629 Text-content-md5: 2e9b82ca3208f1dbc300ab0b0224785e Text-content-sha1: 1518c0a63cdacf06ec712257f09a4658629c4418 Content-length: 11674 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; import org.eclipse.egf.common.ui.toolkit.widgets.handler.SelectionChangedHandler; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredViewer; 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.Label; /** * Base class to implement a viewer with buttons located on the right side(e.g to change list elements order). * @author Guillaume Brocard */ public abstract class AbstractViewerWithButtons { /** * Buttons located on the right side of this viewer. */ private Button[] _buttons; /** * Button data related to created buttons on the right side of this viewer. */ protected ButtonData[] _buttonData; /** * Composite that hosts the viewer and the composite that contains the buttons. */ private Composite _composite; /** * The decorated viewer. */ protected StructuredViewer _decoratedViewer; /** * Listener called when a button is clicked. */ private IButtonClickedListener _buttonClickedListener; /** * Selection listener used to update buttons according selection changes. */ private ISelectionChangedListener _viewerSelectionChangedListener; /** * Default constructor.
* Need to call {@link #init(Composite)} explicitly in implementation. */ protected AbstractViewerWithButtons() { // Does nothing. } /** * Constructor with no information on buttons.
* Calls {@link #getButtonData()} to resolve buttons information. * @param parent_p */ protected AbstractViewerWithButtons(Composite parent_p) { init(parent_p); } /** * Initialize viewer content. * @param parent_p */ protected void init(Composite parent_p) { // Create the internal composite. _composite = createInternalComposite(parent_p); // Create the decorated viewer. _decoratedViewer = createViewer(_composite); // Called when the selection changes in the viewer. _viewerSelectionChangedListener = new ISelectionChangedListener() { /** * @see ISelectionChangedListener#selectionChanged(SelectionChangedEvent) */ public void selectionChanged(SelectionChangedEvent event_p) { // Handle the selection itself. ISelection selection = event_p.getSelection(); // Precondition: the selection must not be empty. if (selection.isEmpty()) { return; } updateButtons(selection); } }; // Add the selection listener on the created viewer. _decoratedViewer.addSelectionChangedListener(_viewerSelectionChangedListener); // Get button data. createButtons(_composite, createButtonData()); } /** * Is viewer editable ? * If not, buttons are disabled. * @return */ protected boolean isEditable() { return true; } /** * Update the buttons enablement property. * @param selection_p */ protected void updateButtons(ISelection selection_p) { // Loop over each one to handle the new selection. for (ButtonData buttonData : _buttonData) { SelectionChangedHandler selectionChangedHandler = buttonData.getSelectionChangedHandler(); if (null != selectionChangedHandler) { selectionChangedHandler.handleSelection(selection_p); } } } /** * Create button data, that is an array of {@link ButtonData}, descriptors for buttons to create. * @return must not return null or an empty array. */ protected abstract ButtonData[] createButtonData(); /** * Create a viewer which is decorated with buttons on the right side. * @param composite_p */ protected abstract StructuredViewer createViewer(Composite composite_p); /** * Create the composite that hosts all widgets and viewer. * @param parent_p */ private Composite createInternalComposite(Composite parent_p) { Composite composite = new Composite(parent_p, SWT.NONE); // Install a layout manager, all widgets are displayed on 2 columns. composite.setLayout(new GridLayout(2, false)); // Set its layout. GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); composite.setLayoutData(gridData); return composite; } /** * Create buttons if provided. * @param parent_p * @param buttonData_p */ private void createButtons(Composite parent_p, ButtonData[] buttonData_p) { // Preconditions. if ((null == buttonData_p) || (buttonData_p.length == 0)) { return; } // Create a button container. Composite buttonContainer = new Composite(parent_p, SWT.NONE); // Set button composite activation. buttonContainer.setEnabled(isEditable()); // create its layout. GridLayout layout = new GridLayout(1, false); layout.marginWidth = layout.marginHeight = 0; // Set the created layout. buttonContainer.setLayout(layout); // Create and set its layout data. GridData gridData = new GridData(SWT.RIGHT, SWT.CENTER, false, true); buttonContainer.setLayoutData(gridData); // Create the buttons. _buttonData = buttonData_p; _buttons = new Button[buttonData_p.length]; SelectionAdapter listener = new SelectionAdapter() { /** * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetDefaultSelected(SelectionEvent e_p) { buttonSelected(e_p); } /** * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent e_p) { buttonSelected(e_p); } private void buttonSelected(SelectionEvent e) { AbstractViewerWithButtons.this.buttonSelected((Button) e.widget, e.widget.getData()); } }; // Loop over given label for (int i = 0; i < buttonData_p.length; i++) { ButtonData buttonData = buttonData_p[i]; String label = buttonData.getLabel(); int style = buttonData.getStyle(); if (null != label) { Button button = createButton(buttonContainer, label, style); button.addSelectionListener(listener); // Set user data. button.setData(buttonData.getData()); // Add the created button to the selection changed handler if any. SelectionChangedHandler handler = buttonData.getSelectionChangedHandler(); if (null != handler) { handler.addControl(button); } _buttons[i] = button; } else { createEmptySpace(buttonContainer, 1); } } } /** * Called when a button is selected. * @param selectedButton_p * @param data_p user data */ protected void buttonSelected(Button selectedButton_p, Object data_p) { // Notify the listener if any. if (null != _buttonClickedListener) { _buttonClickedListener.buttonClicked(selectedButton_p, data_p); } // Update buttons state. ISelection selection = _decoratedViewer.getSelection(); updateButtons(selection); } /** * Create a button. * @param parent_p * @param label_p * @param style_p * @return a not null {@link Button} */ protected Button createButton(Composite parent_p, String label_p, int style_p) { Button button = new Button(parent_p, SWT.PUSH | style_p); // at least, PUSH is set. button.setText(label_p); GridData gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, false); button.setLayoutData(gridData); return button; } /** * Create an empty space. * @param parent_p * @param span_p * @return */ protected Label createEmptySpace(Composite parent_p, int span_p) { Label label = new Label(parent_p, SWT.NULL); GridData gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, true);// new GridData(GridData.VERTICAL_ALIGN_BEGINNING); gridData.horizontalSpan = span_p; gridData.widthHint = 0; gridData.heightHint = 0; label.setLayoutData(gridData); return label; } /** * Return the decorated viewer. * @return the decoratedViewer */ public StructuredViewer getDecoratedViewer() { return _decoratedViewer; } /** * Set the listener that is called when a button is clicked. * @param buttonClickedListener_p. */ public void setButtonClickedListener(IButtonClickedListener buttonClickedListener_p) { _buttonClickedListener = buttonClickedListener_p; } /** * Button data.
* Facade to a button creation for this viewer.
* Label and style are mandatory to create a new widget.
* The given user data is set to the created button widget, if not null. * @author Guillaume Brocard */ public class ButtonData { /** * The button label. */ private String _label; /** * The button style. */ private int _style; /** * The user data, set as data for corresponding button. */ private Object _data; /** * Handler called when the selection changes inside the viewer hosted by the {@link AbstractViewerWithButtons}. */ private SelectionChangedHandler _selectionChangedHandler; /** * Button data constructor. * @param label_p The label of the future button. * @param style_p The style of the future button. * @param data_p The user data of the future button, can be null. * @param selectionChangedHandler_p The selection changed handler called when selection changes in the {@link AbstractViewerWithButtons}. */ public ButtonData(String label_p, int style_p, Object data_p, SelectionChangedHandler selectionChangedHandler_p) { _label = label_p; _style = style_p; _data = data_p; _selectionChangedHandler = selectionChangedHandler_p; } /** * Get button label. * @return */ protected String getLabel() { return _label; } /** * Get button style. * @return */ protected int getStyle() { return _style; } /** * Get user data. * @return */ protected Object getData() { return _data; } /** * Get the selection changed handler. * @return */ protected SelectionChangedHandler getSelectionChangedHandler() { return _selectionChangedHandler; } } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/DefaultTreeNode.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1896 Text-content-md5: ce84105df9d8ff8b43b81ad4a3b81d03 Text-content-sha1: acbc9ec4b024eae88a48fca58120f1047a38a079 Content-length: 1941 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; /** * A default abstract implementation of the tree node.
* Parent node is as specified at construction time.
* By default assumes that there is no child, thus returns null to {@link #getChildren()} implementation. * @author t007626 */ public abstract class DefaultTreeNode implements ITreeNode { /** * Parent tree node. */ private ITreeNode _parent; /** * Constructor. * @param parent_p */ public DefaultTreeNode(ITreeNode parent_p) { _parent = parent_p; } /** * @see org.eclipse.egf.common.ui.viewers.ITreeNode#getChildren() */ public ITreeNode[] getChildren() { return null; } /** * @see org.eclipse.egf.common.ui.viewers.ITreeNode#getParent() */ public ITreeNode getParent() { return _parent; } /** * @see org.eclipse.egf.common.ui.viewers.ITreeNode#hasChildren() */ public boolean hasChildren() { return true; } /** * @see org.eclipse.egf.common.ui.viewers.ITreeNode#isHandling(java.lang.Object) */ public boolean isHandling(Object element_p) { return false; } /** * @see org.eclipse.egf.common.ui.viewers.ITreeNode#comparisonPriority() */ public int comparisonPriority() { return 0; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/IButtonClickedListener.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1213 Text-content-md5: 57b992d2901956691ceca5443c42a4f2 Text-content-sha1: 3476da000968231b422630264cae8f4fd77f4275 Content-length: 1258 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; import org.eclipse.swt.widgets.Button; /** * Classes which implement this interface provide methods
* that deal with the event that is generated when a button, located in AbstractViewerWithButtons viewer, is clicked. * @see AbstractViewerWithButtons * @author Guillaume Brocard */ public interface IButtonClickedListener { /** * Sent when a button in {@link AbstractViewerWithButtons} is clicked. * @param clickedButton_p the clicked button. * @param data_p the button's user data. */ public void buttonClicked(Button clickedButton_p, Object data_p); } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/IContentHandler.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1009 Text-content-md5: e2bd04e7acb8f3c04b529ca739bfee05 Text-content-sha1: 7c991f2a0481f6fd7b6976af70326a32dc458505 Content-length: 1054 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; /** * Viewer content handler.
* Allows to handle displayed elements life-cycle. * @author Guillaume Brocard */ public interface IContentHandler { /** * Create a new element. * @return */ public Object createNewElement(); /** * Remove given element from handled ones. * @param element_p */ public void removeElement(Object element_p); } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/IOrderedContentProvider.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1350 Text-content-md5: da1778b77631ac642465a3144f97968b Text-content-sha1: 4d8fcd566370096dc4666b63d7b098c50a074d4f Content-length: 1395 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; import org.eclipse.jface.viewers.IStructuredContentProvider; /** * Classes which implement this interface provide a method
* that allows to swap content elements to be stored in a specific order. * @author Guillaume Brocard */ public interface IOrderedContentProvider extends IStructuredContentProvider { /** * Swap elements according to given element positions.
* Element at elementPosition1_p is moved to elementPosition2_p and
* Element at elementPosition2_p is moved to elementPosition1_p. * @param elementPosition1_p * @param elementPosition2_p */ public void swap(int elementPosition1_p, int elementPosition2_p); } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/ITreeNode.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1513 Text-content-md5: 049f393668365df87a0dde04a6a26d50 Text-content-sha1: 8c1c4e079879a8c9d17d316189de4d1fcfe48439 Content-length: 1558 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; /** * A default tree node interface for tree viewers.
* Forces the use of tree nodes all along the tree. * @author Guillaume Brocard */ public interface ITreeNode { /** * Get children nodes. * @return null if none. */ ITreeNode[] getChildren(); /** * Get parent node. * @return null if none. */ ITreeNode getParent(); /** * Has current node any children ? * @return true if so, false otherwise. */ boolean hasChildren(); /** * Is node handling/representing given element ? * @param element_p * @return */ boolean isHandling(Object element_p); /** * An integer value that represents the priority of this kind of node.
* Should always be the same for objects of the same implementation of {@link ITreeNode}. * @return 0 stands for neutral priority. */ int comparisonPriority(); } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/Messages.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 1323 Text-content-md5: faae67b77e9cb866dbeed71e5c566beb Text-content-sha1: 4f0bfa02a32bea2c6ddd6a1a026300cef7d8be55 Content-length: 1368 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; import org.eclipse.osgi.util.NLS; /** * I18n support. * @author Guillaume Brocard */ public class Messages extends NLS { private static final String BUNDLE_NAME = "org.eclipse.egf.common.ui.viewers.messages"; //$NON-NLS-1$ public static String OrderedListViewerWithAddAndRemove_AddButton_Label; public static String OrderedListViewerWithAddAndRemove_RemoveButton_Label; public static String SortedListViewer_DownButton_Title; public static String SortedListViewer_UpButton_Title; static { // initialize resource bundle NLS.initializeMessages(BUNDLE_NAME, Messages.class); } /** * Constructor. */ private Messages() { // Do nothing. } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/OrderedListViewer.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 9174 Text-content-md5: 3ded940e58715ac60986d4af6bee4480 Text-content-sha1: 09beb1bb3e793f413bc22da6627334f6c90a795c Content-length: 9219 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; import java.util.ArrayList; import org.eclipse.egf.common.ui.toolkit.widgets.handler.SelectionChangedHandler; import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Table; /** * A concrete viewer based on an SWT List control with 2 buttons on the right side to move up (or down) elements in the list. * @author Guillaume Brocard */ public class OrderedListViewer extends AbstractViewerWithButtons { /** * Constant that defines the 'Up' button data. */ private static final Object UP_BUTTON_DATA = new Object(); /** * Constant that defines the 'Down' button data. */ private static final Object DOWN_BUTTON_DATA = new Object(); /** * Button labels. */ private static String[] __buttonsLabels = { Messages.SortedListViewer_UpButton_Title, Messages.SortedListViewer_DownButton_Title }; /** * Button styles. */ private static int[] __buttonsStyles = { SWT.PUSH, SWT.PUSH }; /** * Default Viewer style bits constant: SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER. */ private final static int DEFAULT_LIST_VIEWER_STYLE = SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER; /** * Selection changed handler used to control the up button. */ private SelectionChangedHandler _selectionChangedHandlerForUpButton; /** * Selection changed handler used to control the down button. */ private SelectionChangedHandler _selectionChangedHandlerForDownButton; /** * Constructor. * @param parent_p */ public OrderedListViewer(Composite parent_p) { super(parent_p); // Set the button clicked listener. setButtonClickedListener(new IButtonClickedListener() { /** * @see org.eclipse.egf.common.ui.viewers.IButtonClickedListener#buttonClicked(org.eclipse.swt.widgets.Button, Object) */ @SuppressWarnings("synthetic-access") public void buttonClicked(Button clickedButton_p, Object data_p) { // Get the selected element. StructuredViewer decoratedViewer = getDecoratedViewer(); ISelection selection = decoratedViewer.getSelection(); if (UP_BUTTON_DATA.equals(data_p) || DOWN_BUTTON_DATA.equals(data_p)) { // Precondition : selection must not be empty. if (selection.isEmpty()) { return; } // Get the position of the selected element. int selectionElementIndex = getSelectionIndex(); // The 'element to swap with' position. int elementToSwapWithIndex = 0; // If button is either up or down one, go for a swap. if (UP_BUTTON_DATA.equals(data_p)) { elementToSwapWithIndex = selectionElementIndex - 1; } else if (DOWN_BUTTON_DATA.equals(data_p)) { elementToSwapWithIndex = selectionElementIndex + 1; } // Get the content provider. IContentProvider contentProvider = decoratedViewer.getContentProvider(); if (contentProvider instanceof IOrderedContentProvider) { // Swap elements. ((IOrderedContentProvider) contentProvider).swap(selectionElementIndex, elementToSwapWithIndex); } } else { delegateButtonClicked(clickedButton_p, data_p); } } }); } /** * Delegate button clicked event, if default listener implementation ain't enough.
* This implementation does nothing. Should be implemented by subclasses. * @param clickedButton_p * @param data_p */ protected void delegateButtonClicked(Button clickedButton_p, Object data_p) { // Nothing to do. } /** * Initialize selection changed handlers to either enable or disable the up and down buttons. */ private void initializeSelectionChangedHandlers() { _selectionChangedHandlerForUpButton = new SelectionChangedHandler() { /** * @see org.eclipse.egf.common.ui.toolkit.widgets.handler.SelectionChangedHandler#doHandleSelection(org.eclipse.jface.viewers.ISelection) */ @Override protected boolean doHandleSelection(ISelection selection_p) { boolean result = false; // Get the selected index. int selectionIndex = getSelectionIndex(); // Disable the up button when the first element is selected. result = (0 == selectionIndex) ? false : true; return result; } }; _selectionChangedHandlerForDownButton = new SelectionChangedHandler() { /** * @see org.eclipse.egf.common.ui.toolkit.widgets.handler.SelectionChangedHandler#doHandleSelection(org.eclipse.jface.viewers.ISelection) */ @Override protected boolean doHandleSelection(ISelection selection_p) { boolean result = false; // Get the selected index. int selectionIndex = getSelectionIndex(); // Disable the down button when the last element is selected. result = (getElementCount() - 1 == selectionIndex) ? false : true; return result; } }; } /** * Returns the zero-relative index of the element which is currently selected in the viewer. * @return */ protected int getSelectionIndex() { int selectionIndex = -1; Control control = getUnderlyingViewerControl(); if (control instanceof List) { List list = (List) control; selectionIndex = list.getSelectionIndex(); } else if (control instanceof Table) { Table table = (Table) control; selectionIndex = table.getSelectionIndex(); } return selectionIndex; } /** * Return the number of element contained in the viewer. * @return */ protected int getElementCount() { int itemCount = -1; Control control = getUnderlyingViewerControl(); if (control instanceof List) { List list = (List) control; itemCount = list.getItemCount(); } else if (control instanceof Table) { Table table = (Table) control; itemCount = table.getItemCount(); } return itemCount; } /** * Return the underlying control used by the current viewer. {@link #createViewer(Composite)}. * @return */ protected Control getUnderlyingViewerControl() { return getDecoratedViewer().getControl(); } /** * @see org.eclipse.egf.common.ui.viewers.AbstractViewerWithButtons#getButtonData() */ @Override protected ButtonData[] createButtonData() { // Initialize selection handlers. initializeSelectionChangedHandlers(); // Create extra button data. java.util.List buttonData = createExtraButtonData(); // Create the needed data used to create the UI buttons. buttonData.add(new ButtonData(__buttonsLabels[0], __buttonsStyles[0], UP_BUTTON_DATA, _selectionChangedHandlerForUpButton)); buttonData.add(new ButtonData(__buttonsLabels[1], __buttonsStyles[1], DOWN_BUTTON_DATA, _selectionChangedHandlerForDownButton)); return buttonData.toArray(new ButtonData[buttonData.size()]); } /** * Create extra button data, if needed, before up and down are added.
* Subclasses must call super when overriding this method.
* Default implementation provides with an empty, but not null, list of {@link ButtonData}. * @return */ protected java.util.List createExtraButtonData() { return new ArrayList(0); } /** * Default viewer is {@link TableViewer} with one column (to support labels and icons). * @see org.eclipse.egf.common.ui.viewers.AbstractViewerWithButtons#createViewer(org.eclipse.swt.widgets.Composite) */ @Override protected StructuredViewer createViewer(Composite composite_p) { TableViewer listViewer = new TableViewer(composite_p, DEFAULT_LIST_VIEWER_STYLE); // Get its control. Control control = listViewer.getControl(); // Create and set its layout data. GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); control.setLayoutData(gridData); return listViewer; } } Node-path: plugins/org.eclipse.egf.common.ui/src/org/eclipse/egf/common/ui/viewers/OrderedListViewerWithAddAndRemove.java Node-kind: file Node-action: add Prop-content-length: 45 Text-content-length: 4030 Text-content-md5: ecefa64a29991df7a0779fcdac7c0146 Text-content-sha1: 0ac1ef0e118a4ecfbf0be82f6d3015e4d3f7772b Content-length: 4075 K 13 svn:mime-type V 10 text/plain PROPS-END /******************************************************************************* * Copyright (c) 2009 Thales Corporate Services S.A.S. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thales Corporate Services S.A.S - initial API and implementation *******************************************************************************/ package org.eclipse.egf.common.ui.viewers; import java.util.List; import org.eclipse.egf.common.ui.toolkit.widgets.handler.SelectionChangedHandler; import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.SWT;