| Home » Eclipse Projects » Eclipse Platform » Base Non-IDE Application Using the Workbench
 Goto Forum:| 
| Base Non-IDE Application Using the Workbench [message #23029] | Tue, 29 April 2003 14:40  |  | 
| Eclipse User  |  |  |  |  | Included in this post is the code for a do-nothing application that uses the Eclipse Platform and Workbench as a base.  It is the starting point
 for creating a non-IDE application that can use the features supplied by
 Eclipse plug-ins.
 
 My purpose is
 
 1.  To ask if what I've done is a reasonable approach?  Will I run into
 trouble if I continue using this as a base?  Is this what the Eclipse
 folks had in mind when they supplied features to allow such an
 application?  Is there a better/easier way?  Have others used different
 approaches?  Are there future features coming that suggest a different
 approach?
 
 2.  Although there is not a lot of substance in this, what I've learned
 may be useful to others wanting to create a similar application, so
 adding something like this to the examples would be worthwhile.
 
 My requirements are
 
 1.  The user of the application may not know anything about Eclipse, and
 does not need know it is based on Eclipse.  It must just run like any
 other application.  The look and feel my be like Eclipse, but from the
 user's point of view, they will consider the look and feel to be that of
 the application.  Likewise, the user may take advantage of the nice
 features of Eclipse, but from the user point of view, they may consider
 them the nice features of the application.
 
 2.  If the user already has Eclipse installed on their computer, the
 application can use that installation for those parts of Eclipse that can
 be used as-is.  The application is installed in a separate area from
 Eclipse.  If the user does not have Eclipse installed, the parts needed
 will be installed in along with the application.
 
 3.  The application and Eclipse can be upgraded independently, within
 prescribed limits.
 
 4.  I have a GUI application in mind, although, in principle, a non-GUI
 application could be built using similar methods.
 
 5.  I assume the application has one or more features, each of which
 has one or more perspectives.  In application below, I have one feature,
 one perspective and one view.
 
 My environment is Eclipse 2.1/GTK on Debian Linux using JVM 1.4.1.
 
 Assume the install directory is /usr/share, so Eclipse is installed in
 /usr/share/eclipse and the application is installed in
 /usr/share/nonIdeApp.  What is installed is
 
 /usr/share/nonIdeApp:
 features  nonideapp  plugins
 
 /usr/share/nonIdeApp/features:
 org.eclipse.core.examples.nonideappfea1
 
 /usr/share/nonIdeApp/features/org.eclipse.core.examples.noni deappfea1:
 feature.properties  feature.xml
 
 /usr/share/nonIdeApp/plugins:
 org.eclipse.core.examples.nonideapp
 
 /usr/share/nonIdeApp/plugins/org.eclipse.core.examples.nonid eapp:
 nonideapp.jar  plugin_customization.ini  plugin.xml
 platform.cfg   plugin.properties
 
 The executable is nonideapp, which contains
 
 /usr/share/j2sdk1.4.1_01/bin/java \
 -classpath /usr/share/eclipse/startup.jar org.eclipse.core.launcher.Main \
 -noupdate \
 -configuration
 file:/usr/share/nonIdeApp/plugins/org.eclipse.core.examples. nonideapp/platform.cfg
 \
 -plugincustomization
 /usr/share/nonIdeApp/plugins/org.eclipse.core.examples.nonid eapp/plugin_customization.ini
 \
 -feature org.eclipse.core.examples.nonideappfea1 \
 -data /home/dgeg/.nonIdeApp \
 -os linux -ws gtk -arch x86 -nl en_US
 
 The platform.cfg file controls feature and plugin loading from one or
 more sites.  It contains
 
 # Mon Apr 21 23:28:35 PDT 2003
 version=2.1
 transient=true
 
 stamp=-656233145
 stamp.features=-4204659725
 stamp.plugins=3716372148
 bootstrap.org.eclipse.core.boot=file:/usr/share/eclipse/plug ins/org.eclipse.core.boot_2.1.0/
 
 feature.default.id=org.eclipse.platform
 
 feature.0.id=org.eclipse.platform
 feature.0.primary=true
 feature.0.version=2.1.0
 feature.0.application=org.eclipse.ui.workbench
 feature.0.root.0=file:/usr/share/eclipse/plugins/org.eclipse .platform_2.1.0/
 
 site.0.url=file:/usr/share/eclipse/
 site.0.stamp=1191060576
 site.0.stamp.features=-1048508903341
 site.0.stamp.plugins=-1049089481586
 site.0.updateable=true
 site.0.policy=USER-INCLUDE
 site.0.list.0=\
 plugins/org.apache.lucene_1.2.1/plugin.xml,\
 plugins/org.apache.xerces_4.0.7/plugin.xml,\
 plugins/org.eclipse.compare_2.1.0/plugin.xml,\
 plugins/org.eclipse.core.boot_2.1.0/plugin.xml,\
 plugins/org.eclipse.core.resources_2.1.0/plugin.xml,\
 plugins/org.eclipse.core.resources.linux_2.1.0/fragment.xml, \
 plugins/org.eclipse.core.runtime_2.1.0/plugin.xml,\
 plugins/org.eclipse.help_2.1.0/plugin.xml,\
 plugins/org.eclipse.help.appserver_2.1.0/plugin.xml,\
 plugins/org.eclipse.help.ui_2.1.0/plugin.xml,\
 plugins/org.eclipse.jface_2.1.0/plugin.xml,\
 plugins/org.eclipse.jface.text_2.1.0/plugin.xml,\
 plugins/org.eclipse.platform_2.1.0/plugin.xml,\
 plugins/org.eclipse.platform.linux.gtk_2.1.0/plugin.xml,\
 plugins/org.eclipse.search_2.1.0/plugin.xml,\
 plugins/org.eclipse.swt_2.1.0/plugin.xml,\
 plugins/org.eclipse.swt.gtk_2.1.0/fragment.xml,\
 plugins/org.eclipse.text_2.1.0/plugin.xml,\
 plugins/org.eclipse.ui_2.1.0/plugin.xml,\
 plugins/org.eclipse.ui.editors_2.1.0/plugin.xml,\
 plugins/org.eclipse.ui.views_2.1.0/plugin.xml,\
 plugins/org.eclipse.ui.workbench_2.1.0/plugin.xml,\
 plugins/org.eclipse.ui.workbench.texteditor_2.1.0/plugin.xml ,\
 plugins/org.eclipse.update.core_2.1.0/plugin.xml,\
 plugins/org.eclipse.update.core.linux_2.1.0/fragment.xml
 
 site.1.url=file:/usr/share/nonIdeApp/
 site.1.stamp=-2028857118
 site.1.stamp.features=1051639819168
 site.1.stamp.plugins=-1050641190342
 site.1.updateable=true
 site.1.policy=USER-INCLUDE
 site.1.list.0=plugins/org.eclipse.core.examples.nonideapp/pl ugin.xml
 
 eof=eof
 
 If this file is writable, then this file is re-written when Eclipse
 exits, which is inconvenient since some of your formating is lost and
 it may be rearranged.  The syntax of this file is not documented and not
 considered part of the API, but it is written by the PDE GUI (Run -> Run
 -> Plug-ins and Fragments -> Choose plug-ins and fragments to launch
 from the list) and used to launch a runtime Eclipse instance.
 
 The USER-INCLUDE policy says to only load the plugins listed, which is
 the way of specifying that only the minimum set should be used.
 Actually the compare and search plugins  are not required, but included
 because they will be useful.  Using this set produces no errors, but
 there are two warnings about core.resources using ant.core extension
 points.
 
 After loading plugins, further steps in the startup sequence are:
 
 1. The -feature option specifies the
 features/org.eclipse.core.examples.nonideapp folder.
 
 2. The feature.xml file in this directory specifies the application.
 
 3. The application attribute specifies the <pluginID>.<applicationID>,
 which in this case is org.eclipse.core.examples.nonideapp.nonIdeAppStartup
 
 4. In the plugin.xml, the extension to
 org.eclipse.core.runtime.applications specifies the application run
 class, which in this case is just org.eclipse.ui.internal.Workbench
 This is the same class used to implement the default feature
 org.eclipse.platform.  A customized class could be used instead.
 
 Here are the files:
 
 feature.xml:
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
 id="org.eclipse.core.examples.nonideappfea1"
 label="%name"
 version="1.0.0"
 primary="true"
 application="org.eclipse.core.examples.nonideapp.nonIdeAppStartup ">
 
 <description>
 %description
 </description>
 
 <plugin
 id="org.eclipse.core.examples.nonideapp"
 version="1.0.0">
 </plugin>
 
 </feature>
 
 feature.properties:
 name=My App Feature 1
 description=Non-IDE Application Base Feature 1
 
 plugin.xml:
 <?xml version="1.0" encoding="UTF-8"?>
 <plugin
 id="org.eclipse.core.examples.nonideapp"
 name="Non-IDE Application Base"
 version="1.0.0"
 class="org.eclipse.core.examples.nonideapp.NonIdeAppPlugin" >
 
 <runtime>
 <library name="nonideapp.jar"/>
 </runtime>
 
 <requires>
 <import plugin="org.eclipse.core.resources"/>
 <import plugin="org.eclipse.ui"/>
 </requires>
 
 <extension
 point="org.eclipse.ui.views">
 <category
 name="Sample Category"
 id="org.eclipse.core.examples.nonideapp">
 </category>
 <view
 name="Sample View"
 icon="icons/sample.gif"
 category="org.eclipse.core.examples.nonideapp"
 class="org.eclipse.core.examples.nonideapp.feature1.SampleView "
 id="org.eclipse.core.examples.nonideapp.feature1.SampleView ">
 </view>
 </extension>
 <extension
 point="org.eclipse.ui.perspectives">
 <perspective
 name="%Perspective.nonIdeAppFea1"
 
 class=" org.eclipse.core.examples.nonideapp.feature1.PerspectiveFact ory "
 id="org.eclipse.core.examples.nonideapp.feature1.Perspective ">
 </perspective>
 </extension>
 <extension
 id="nonIdeAppStartup"
 point="org.eclipse.core.runtime.applications">
 <application>
 <run class="org.eclipse.ui.internal.Workbench"/>
 </application>
 </extension>
 
 </plugin>
 
 plugin.properties:
 Perspective.nonIdeAppFea1=My App
 
 The -plugincustomization option specifies the file
 
 plugin_customization.ini:
 # plugin_customization.ini
 # sets default values for plug-in-specific preferences
 # keys are qualified by plug-in id
 # e.g., com.example.acmeplugin/myproperty=myvalue
 # java.io.Properties file (ISO 8859-1 with "\" escapes)
 # "%key" are externalized strings defined in
 plugin_customization.properties
 # This file does not need to be translated.
 
 org.eclipse.ui.workbench/SHOW_TOOL_BAR=false
 
 # Property "org.eclipse.ui/defaultPerspectiveId" controls the
 # perspective that the workbench opens initially
 org.eclipse.ui/defaultPerspectiveId=org.eclipse.core.example s.nonideapp.feature1.Perspective
 
 Besides setting the default perspective, the tool bar is not shown.  This
 is one of several customization parameters, which are printed using
 
 org.eclipse.core.runtime/preferences/debug=true
 
 in an options file using a -debug command line option.  Other parameters
 and their default values are
 
 org.eclipse.ui.workbench/DISABLE_DIALOG_FONT = false
 org.eclipse.ui.workbench/org.eclipse.jface.dialogfont = 1|Sans|10|0|GTK|1|;
 org.eclipse.ui.workbench/org.eclipse.jface.bannerfont = 1|Sans|12|1|GTK|1|;
 org.eclipse.ui.workbench/ACTIVE_HYPERLINK_COLOR = 0,0,255
 org.eclipse.ui.workbench/OPEN_ON_SINGLE_CLICK = false
 org.eclipse.ui.workbench/OPEN_AFTER_DELAY = false
 org.eclipse.ui.workbench/EDITOR_TAB_POSITION = 128
 org.eclipse.ui.workbench/REUSE_OPEN_EDITORS = 8
 org.eclipse.ui.workbench/SHOW_STATUS_LINE = true
 org.eclipse.ui.workbench/ERROR_COLOR = 255,0,0
 org.eclipse.ui.workbench/acceleratorConfigurationId =
 org.eclipse.ui.defaultAcceleratorConfiguration
 org.eclipse.ui.workbench/EDITORLIST_SELECTION_SCOPE = 1
 org.eclipse.ui.workbench/EDITOR_TAB_WIDTH = 3
 org.eclipse.ui.workbench/WELCOME_DIALOG = true
 org.eclipse.ui.workbench/AUTO_BUILD = true
 org.eclipse.ui.workbench/SHOW_SHORTCUT_BAR = true
 org.eclipse.ui.workbench/REUSE_DIRTY_EDITORS = true
 org.eclipse.ui.workbench/saveInterval = 5
 org.eclipse.ui.workbench/SWITCH_PERSPECTIVE_ON_PROJECT_CREAT ION = prompt
 org.eclipse.ui.workbench/EDITORLIST_DISPLAY_FULL_NAME = false
 org.eclipse.ui.workbench/CLOSE_EDITORS_ON_EXIT = false
 org.eclipse.ui.workbench/SELECT_ON_HOVER = false
 org.eclipse.ui.workbench/COLOR_ICONS = false
 org.eclipse.ui.workbench/OPEN_PERSPECTIVE_MODE = 0
 org.eclipse.ui.workbench/SAVE_ALL_BEFORE_BUILD = false
 org.eclipse.ui.workbench/ENABLE_CONFIGURABLE_PROJECT_WIZARD = false
 org.eclipse.ui.workbench/ENABLE_COOL_BARS = true
 org.eclipse.ui.workbench/SINGLE_CLICK_METHOD = 0
 org.eclipse.ui.workbench/RECENT_FILES = 4
 org.eclipse.ui.workbench/org.eclipse.jface.textfont = 1|Sans|11|0|GTK|1|;
 org.eclipse.ui.workbench/OPEN_VIEW_MODE = 0
 org.eclipse.ui.workbench/ENABLED_DECORATORS =
 org.eclipse.ui.workbench/SHOW_TASKS_ON_BUILD = true
 org.eclipse.ui.workbench/EXIT_PROMPT_ON_CLOSE_LAST_WINDOW = true
 org.eclipse.ui.workbench/VIEW_TAB_POSITION = 1024
 org.eclipse.ui.workbench/REFRESH_WORKSPACE_ON_STARTUP = false
 org.eclipse.ui.workbench/REUSE_OPEN_EDITORS_BOOLEAN = false
 org.eclipse.ui.workbench/EDITORLIST_SORT_CRITERIA = 0
 org.eclipse.ui.workbench/EDITORLIST_PULLDOWN_ACTIVE = false
 org.eclipse.ui.workbench/HYPERLINK_COLOR = 0,0,153
 org.eclipse.ui.workbench/ENABLE_NEW_MENUS = true
 org.eclipse.ui.workbench/org.eclipse.jface.headerfont = 1|Sans|12|1|GTK|1|;
 org.eclipse.ui/LINK_NAVIGATOR_TO_EDITOR = false
 org.eclipse.ui/ALTERNATE_OPEN_NEW_PERSPECTIVE = OPEN_PERSPECTIVE_REPLACE
 org.eclipse.ui/OPEN_NEW_PERSPECTIVE = OPEN_PERSPECTIVE_REPLACE
 org.eclipse.ui/SHIFT_OPEN_NEW_PERSPECTIVE = OPEN_PERSPECTIVE_REPLACE
 org.eclipse.ui/PROJECT_OPEN_NEW_PERSPECTIVE = OPEN_PERSPECTIVE_REPLACE
 
 Is there any one place where all these parameters are documented?  Also
 it seems one should be able to customize startup with the same parameters
 saved in .metadata/.plugins/org.eclipse.ui.workbench/workbench.xml.  Is
 this possible?  (Of course, one could do this by creating such a file.)
 
 The non-IDE application may not need a workspace, but a temporary area
 is still needed for .metadata, which I specify to be in a .nonideapp
 directory in the user's home directory.
 
 The following code defines the perspective:
 
 PerspectiveFactory.java:
 package org.eclipse.core.examples.nonideapp.feature1;
 
 import org.eclipse.ui.IPageLayout;
 import org.eclipse.ui.IPerspectiveFactory;
 
 public class PerspectiveFactory implements IPerspectiveFactory {
 public PerspectiveFactory() {
 super();
 }
 public void createInitialLayout(IPageLayout layout) {
 
 layout.addView("org.eclipse.core.examples.nonideapp.feature1.SampleView ",
 IPageLayout.LEFT, (float)0.95,
 IPageLayout.ID_EDITOR_AREA);
 layout.setEditorAreaVisible(false);
 }
 }
 
 The jar file contains:
 
 META-INF/MANIFEST.MF
 org/eclipse/core/examples/nonideapp/NonIdeAppPlugin.class
 org/eclipse/core/examples/nonideapp/feature1/SampleView$1.cl ass
 org/eclipse/core/examples/nonideapp/feature1/SampleView$2.cl ass
 org/eclipse/core/examples/nonideapp/feature1/SampleView$3.cl ass
 org/eclipse/core/examples/nonideapp/feature1/SampleView$4.cl ass
 org/eclipse/core/examples/nonideapp/feature1/SampleView$5.cl ass
 org/eclipse/core/examples/nonideapp/feature1/SampleView$Name Sorter.class
 org/eclipse/core/examples/nonideapp/feature1/SampleView$View ContentProvider.class
 org/eclipse/core/examples/nonideapp/feature1/SampleView$View LabelProvider.class
 org/eclipse/core/examples/nonideapp/feature1/SampleView.clas s
 org/eclipse/core/examples/nonideapp/feature1/PerspectiveFact ory.class
 icons/sample.gif
 
 The code for the plugin class and the sample view is just that
 automatically generated.
 
 What is shown is the install version of nonideapp.  For development, use
 an addition option "-dev bin" and soft links:
 
 /usr/share/nonIdeApp/features:
 org.eclipse.core.examples.nonideappfea1 ->
 /home/dgeg/eclipseWorkspace2/org.eclipse.core.examples.nonid eappfea1
 
 /usr/share/nonIdeApp/plugins:
 org.eclipse.core.examples.nonideapp ->
 /home/dgeg/eclipseWorkspace2/org.eclipse.core.examples.nonid eapp
 |  |  |  |  | 
| Re: Base Non-IDE Application Using the Workbench [message #23336 is a reply to message #23029] | Tue, 29 April 2003 15:41   |  | 
| Eclipse User  |  |  |  |  | Originally posted by: simon.ibm.oti.lab 
 For release 3.0, there is a plan item for a "rich client platform" to
 restructure the workbench to not be resource and ide specific, so a general
 client application could do without these if not required. You can add
 yourself to the bug report
 (http://bugs.eclipse.org/bugs/show_bug.cgi?id=36967) if you want to follow
 along and provide your suggestions.
 
 Simon :-)
 
 "Don Estberg" <destberg1@earthlink.net> wrote in message
 news:b8mgve$ieb$1@rogue.oti.com...
 > Included in this post is the code for a do-nothing application that uses
 > the Eclipse Platform and Workbench as a base.  It is the starting point
 > for creating a non-IDE application that can use the features supplied by
 > Eclipse plug-ins.
 >
 > My purpose is
 >
 > 1.  To ask if what I've done is a reasonable approach?  Will I run into
 > trouble if I continue using this as a base?  Is this what the Eclipse
 > folks had in mind when they supplied features to allow such an
 > application?  Is there a better/easier way?  Have others used different
 > approaches?  Are there future features coming that suggest a different
 > approach?
 >
 > 2.  Although there is not a lot of substance in this, what I've learned
 > may be useful to others wanting to create a similar application, so
 > adding something like this to the examples would be worthwhile.
 >
 > My requirements are
 >
 > 1.  The user of the application may not know anything about Eclipse, and
 > does not need know it is based on Eclipse.  It must just run like any
 > other application.  The look and feel my be like Eclipse, but from the
 > user's point of view, they will consider the look and feel to be that of
 > the application.  Likewise, the user may take advantage of the nice
 > features of Eclipse, but from the user point of view, they may consider
 > them the nice features of the application.
 >
 > 2.  If the user already has Eclipse installed on their computer, the
 > application can use that installation for those parts of Eclipse that can
 > be used as-is.  The application is installed in a separate area from
 > Eclipse.  If the user does not have Eclipse installed, the parts needed
 > will be installed in along with the application.
 >
 > 3.  The application and Eclipse can be upgraded independently, within
 > prescribed limits.
 >
 > 4.  I have a GUI application in mind, although, in principle, a non-GUI
 > application could be built using similar methods.
 >
 > 5.  I assume the application has one or more features, each of which
 > has one or more perspectives.  In application below, I have one feature,
 > one perspective and one view.
 >
 > My environment is Eclipse 2.1/GTK on Debian Linux using JVM 1.4.1.
 >
 > Assume the install directory is /usr/share, so Eclipse is installed in
 > /usr/share/eclipse and the application is installed in
 > /usr/share/nonIdeApp.  What is installed is
 >
 > /usr/share/nonIdeApp:
 > features  nonideapp  plugins
 >
 > /usr/share/nonIdeApp/features:
 > org.eclipse.core.examples.nonideappfea1
 >
 >  /usr/share/nonIdeApp/features/org.eclipse.core.examples.noni deappfea1:
 > feature.properties  feature.xml
 >
 > /usr/share/nonIdeApp/plugins:
 > org.eclipse.core.examples.nonideapp
 >
 >  /usr/share/nonIdeApp/plugins/org.eclipse.core.examples.nonid eapp:
 > nonideapp.jar  plugin_customization.ini  plugin.xml
 > platform.cfg   plugin.properties
 >
 > The executable is nonideapp, which contains
 >
 > /usr/share/j2sdk1.4.1_01/bin/java \
 > -classpath /usr/share/eclipse/startup.jar org.eclipse.core.launcher.Main \
 > -noupdate \
 > -configuration
 >
 file:/usr/share/nonIdeApp/plugins/org.eclipse.core.examples. nonideapp/platfo
 rm.cfg
 > \
 > -plugincustomization
 >
 /usr/share/nonIdeApp/plugins/org.eclipse.core.examples.nonid eapp/plugin_cust
 omization.ini
 > \
 > -feature org.eclipse.core.examples.nonideappfea1 \
 > -data /home/dgeg/.nonIdeApp \
 > -os linux -ws gtk -arch x86 -nl en_US
 >
 > The platform.cfg file controls feature and plugin loading from one or
 > more sites.  It contains
 >
 > # Mon Apr 21 23:28:35 PDT 2003
 > version=2.1
 > transient=true
 >
 > stamp=-656233145
 > stamp.features=-4204659725
 > stamp.plugins=3716372148
 >
 bootstrap.org.eclipse.core.boot=file:/usr/share/eclipse/plug ins/org.eclipse.
 core.boot_2.1.0/
 >
 > feature.default.id=org.eclipse.platform
 >
 > feature.0.id=org.eclipse.platform
 > feature.0.primary=true
 > feature.0.version=2.1.0
 > feature.0.application=org.eclipse.ui.workbench
 >
 feature.0.root.0=file:/usr/share/eclipse/plugins/org.eclipse .platform_2.1.0/
 >
 > site.0.url=file:/usr/share/eclipse/
 > site.0.stamp=1191060576
 > site.0.stamp.features=-1048508903341
 > site.0.stamp.plugins=-1049089481586
 > site.0.updateable=true
 > site.0.policy=USER-INCLUDE
 > site.0.list.0=\
 > plugins/org.apache.lucene_1.2.1/plugin.xml,\
 > plugins/org.apache.xerces_4.0.7/plugin.xml,\
 > plugins/org.eclipse.compare_2.1.0/plugin.xml,\
 > plugins/org.eclipse.core.boot_2.1.0/plugin.xml,\
 > plugins/org.eclipse.core.resources_2.1.0/plugin.xml,\
 >  plugins/org.eclipse.core.resources.linux_2.1.0/fragment.xml, \
 > plugins/org.eclipse.core.runtime_2.1.0/plugin.xml,\
 > plugins/org.eclipse.help_2.1.0/plugin.xml,\
 > plugins/org.eclipse.help.appserver_2.1.0/plugin.xml,\
 > plugins/org.eclipse.help.ui_2.1.0/plugin.xml,\
 > plugins/org.eclipse.jface_2.1.0/plugin.xml,\
 > plugins/org.eclipse.jface.text_2.1.0/plugin.xml,\
 > plugins/org.eclipse.platform_2.1.0/plugin.xml,\
 > plugins/org.eclipse.platform.linux.gtk_2.1.0/plugin.xml,\
 > plugins/org.eclipse.search_2.1.0/plugin.xml,\
 > plugins/org.eclipse.swt_2.1.0/plugin.xml,\
 > plugins/org.eclipse.swt.gtk_2.1.0/fragment.xml,\
 > plugins/org.eclipse.text_2.1.0/plugin.xml,\
 > plugins/org.eclipse.ui_2.1.0/plugin.xml,\
 > plugins/org.eclipse.ui.editors_2.1.0/plugin.xml,\
 > plugins/org.eclipse.ui.views_2.1.0/plugin.xml,\
 > plugins/org.eclipse.ui.workbench_2.1.0/plugin.xml,\
 >  plugins/org.eclipse.ui.workbench.texteditor_2.1.0/plugin.xml ,\
 > plugins/org.eclipse.update.core_2.1.0/plugin.xml,\
 > plugins/org.eclipse.update.core.linux_2.1.0/fragment.xml
 >
 > site.1.url=file:/usr/share/nonIdeApp/
 > site.1.stamp=-2028857118
 > site.1.stamp.features=1051639819168
 > site.1.stamp.plugins=-1050641190342
 > site.1.updateable=true
 > site.1.policy=USER-INCLUDE
 >  site.1.list.0=plugins/org.eclipse.core.examples.nonideapp/pl ugin.xml
 >
 > eof=eof
 >
 > If this file is writable, then this file is re-written when Eclipse
 > exits, which is inconvenient since some of your formating is lost and
 > it may be rearranged.  The syntax of this file is not documented and not
 > considered part of the API, but it is written by the PDE GUI (Run -> Run
 > -> Plug-ins and Fragments -> Choose plug-ins and fragments to launch
 > from the list) and used to launch a runtime Eclipse instance.
 >
 > The USER-INCLUDE policy says to only load the plugins listed, which is
 > the way of specifying that only the minimum set should be used.
 > Actually the compare and search plugins  are not required, but included
 > because they will be useful.  Using this set produces no errors, but
 > there are two warnings about core.resources using ant.core extension
 > points.
 >
 > After loading plugins, further steps in the startup sequence are:
 >
 > 1. The -feature option specifies the
 > features/org.eclipse.core.examples.nonideapp folder.
 >
 > 2. The feature.xml file in this directory specifies the application.
 >
 > 3. The application attribute specifies the <pluginID>.<applicationID>,
 > which in this case is org.eclipse.core.examples.nonideapp.nonIdeAppStartup
 >
 > 4. In the plugin.xml, the extension to
 > org.eclipse.core.runtime.applications specifies the application run
 > class, which in this case is just org.eclipse.ui.internal.Workbench
 > This is the same class used to implement the default feature
 > org.eclipse.platform.  A customized class could be used instead.
 >
 > Here are the files:
 >
 > feature.xml:
 > <?xml version="1.0" encoding="UTF-8"?>
 > <feature
 >    id="org.eclipse.core.examples.nonideappfea1"
 >    label="%name"
 >    version="1.0.0"
 >    primary="true"
 >    application="org.eclipse.core.examples.nonideapp.nonIdeAppStartup ">
 >
 >    <description>
 >       %description
 >    </description>
 >
 >   <plugin
 >     id="org.eclipse.core.examples.nonideapp"
 >     version="1.0.0">
 >   </plugin>
 >
 > </feature>
 >
 > feature.properties:
 > name=My App Feature 1
 > description=Non-IDE Application Base Feature 1
 >
 > plugin.xml:
 > <?xml version="1.0" encoding="UTF-8"?>
 > <plugin
 >    id="org.eclipse.core.examples.nonideapp"
 >    name="Non-IDE Application Base"
 >    version="1.0.0"
 >    class="org.eclipse.core.examples.nonideapp.NonIdeAppPlugin" >
 >
 >    <runtime>
 >       <library name="nonideapp.jar"/>
 >    </runtime>
 >
 >    <requires>
 >       <import plugin="org.eclipse.core.resources"/>
 >       <import plugin="org.eclipse.ui"/>
 >    </requires>
 >
 >    <extension
 >       point="org.eclipse.ui.views">
 >       <category
 >         name="Sample Category"
 >         id="org.eclipse.core.examples.nonideapp">
 >       </category>
 >       <view
 >         name="Sample View"
 >         icon="icons/sample.gif"
 >         category="org.eclipse.core.examples.nonideapp"
 >         class="org.eclipse.core.examples.nonideapp.feature1.SampleView "
 >         id="org.eclipse.core.examples.nonideapp.feature1.SampleView ">
 >       </view>
 >    </extension>
 >    <extension
 >       point="org.eclipse.ui.perspectives">
 >       <perspective
 >         name="%Perspective.nonIdeAppFea1"
 >
 > class=" org.eclipse.core.examples.nonideapp.feature1.PerspectiveFact ory "
 >         id="org.eclipse.core.examples.nonideapp.feature1.Perspective ">
 >       </perspective>
 >    </extension>
 >    <extension
 >       id="nonIdeAppStartup"
 >       point="org.eclipse.core.runtime.applications">
 >       <application>
 >         <run class="org.eclipse.ui.internal.Workbench"/>
 >       </application>
 >    </extension>
 >
 > </plugin>
 >
 > plugin.properties:
 > Perspective.nonIdeAppFea1=My App
 >
 > The -plugincustomization option specifies the file
 >
 > plugin_customization.ini:
 > # plugin_customization.ini
 > # sets default values for plug-in-specific preferences
 > # keys are qualified by plug-in id
 > # e.g., com.example.acmeplugin/myproperty=myvalue
 > # java.io.Properties file (ISO 8859-1 with "\" escapes)
 > # "%key" are externalized strings defined in
 > plugin_customization.properties
 > # This file does not need to be translated.
 >
 > org.eclipse.ui.workbench/SHOW_TOOL_BAR=false
 >
 > # Property "org.eclipse.ui/defaultPerspectiveId" controls the
 > # perspective that the workbench opens initially
 >
 org.eclipse.ui/defaultPerspectiveId=org.eclipse.core.example s.nonideapp.feat
 ure1.Perspective
 >
 > Besides setting the default perspective, the tool bar is not shown.  This
 > is one of several customization parameters, which are printed using
 >
 > org.eclipse.core.runtime/preferences/debug=true
 >
 > in an options file using a -debug command line option.  Other parameters
 > and their default values are
 >
 > org.eclipse.ui.workbench/DISABLE_DIALOG_FONT = false
 > org.eclipse.ui.workbench/org.eclipse.jface.dialogfont =
 1|Sans|10|0|GTK|1|;
 > org.eclipse.ui.workbench/org.eclipse.jface.bannerfont =
 1|Sans|12|1|GTK|1|;
 > org.eclipse.ui.workbench/ACTIVE_HYPERLINK_COLOR = 0,0,255
 > org.eclipse.ui.workbench/OPEN_ON_SINGLE_CLICK = false
 > org.eclipse.ui.workbench/OPEN_AFTER_DELAY = false
 > org.eclipse.ui.workbench/EDITOR_TAB_POSITION = 128
 > org.eclipse.ui.workbench/REUSE_OPEN_EDITORS = 8
 > org.eclipse.ui.workbench/SHOW_STATUS_LINE = true
 > org.eclipse.ui.workbench/ERROR_COLOR = 255,0,0
 > org.eclipse.ui.workbench/acceleratorConfigurationId =
 > org.eclipse.ui.defaultAcceleratorConfiguration
 > org.eclipse.ui.workbench/EDITORLIST_SELECTION_SCOPE = 1
 > org.eclipse.ui.workbench/EDITOR_TAB_WIDTH = 3
 > org.eclipse.ui.workbench/WELCOME_DIALOG = true
 > org.eclipse.ui.workbench/AUTO_BUILD = true
 > org.eclipse.ui.workbench/SHOW_SHORTCUT_BAR = true
 > org.eclipse.ui.workbench/REUSE_DIRTY_EDITORS = true
 > org.eclipse.ui.workbench/saveInterval = 5
 >  org.eclipse.ui.workbench/SWITCH_PERSPECTIVE_ON_PROJECT_CREAT ION = prompt
 > org.eclipse.ui.workbench/EDITORLIST_DISPLAY_FULL_NAME = false
 > org.eclipse.ui.workbench/CLOSE_EDITORS_ON_EXIT = false
 > org.eclipse.ui.workbench/SELECT_ON_HOVER = false
 > org.eclipse.ui.workbench/COLOR_ICONS = false
 > org.eclipse.ui.workbench/OPEN_PERSPECTIVE_MODE = 0
 > org.eclipse.ui.workbench/SAVE_ALL_BEFORE_BUILD = false
 > org.eclipse.ui.workbench/ENABLE_CONFIGURABLE_PROJECT_WIZARD = false
 > org.eclipse.ui.workbench/ENABLE_COOL_BARS = true
 > org.eclipse.ui.workbench/SINGLE_CLICK_METHOD = 0
 > org.eclipse.ui.workbench/RECENT_FILES = 4
 > org.eclipse.ui.workbench/org.eclipse.jface.textfont = 1|Sans|11|0|GTK|1|;
 > org.eclipse.ui.workbench/OPEN_VIEW_MODE = 0
 > org.eclipse.ui.workbench/ENABLED_DECORATORS =
 > org.eclipse.ui.workbench/SHOW_TASKS_ON_BUILD = true
 > org.eclipse.ui.workbench/EXIT_PROMPT_ON_CLOSE_LAST_WINDOW = true
 > org.eclipse.ui.workbench/VIEW_TAB_POSITION = 1024
 > org.eclipse.ui.workbench/REFRESH_WORKSPACE_ON_STARTUP = false
 > org.eclipse.ui.workbench/REUSE_OPEN_EDITORS_BOOLEAN = false
 > org.eclipse.ui.workbench/EDITORLIST_SORT_CRITERIA = 0
 > org.eclipse.ui.workbench/EDITORLIST_PULLDOWN_ACTIVE = false
 > org.eclipse.ui.workbench/HYPERLINK_COLOR = 0,0,153
 > org.eclipse.ui.workbench/ENABLE_NEW_MENUS = true
 > org.eclipse.ui.workbench/org.eclipse.jface.headerfont =
 1|Sans|12|1|GTK|1|;
 > org.eclipse.ui/LINK_NAVIGATOR_TO_EDITOR = false
 > org.eclipse.ui/ALTERNATE_OPEN_NEW_PERSPECTIVE = OPEN_PERSPECTIVE_REPLACE
 > org.eclipse.ui/OPEN_NEW_PERSPECTIVE = OPEN_PERSPECTIVE_REPLACE
 > org.eclipse.ui/SHIFT_OPEN_NEW_PERSPECTIVE = OPEN_PERSPECTIVE_REPLACE
 > org.eclipse.ui/PROJECT_OPEN_NEW_PERSPECTIVE = OPEN_PERSPECTIVE_REPLACE
 >
 > Is there any one place where all these parameters are documented?  Also
 > it seems one should be able to customize startup with the same parameters
 > saved in .metadata/.plugins/org.eclipse.ui.workbench/workbench.xml.  Is
 > this possible?  (Of course, one could do this by creating such a file.)
 >
 > The non-IDE application may not need a workspace, but a temporary area
 > is still needed for .metadata, which I specify to be in a .nonideapp
 > directory in the user's home directory.
 >
 > The following code defines the perspective:
 >
 > PerspectiveFactory.java:
 > package org.eclipse.core.examples.nonideapp.feature1;
 >
 > import org.eclipse.ui.IPageLayout;
 > import org.eclipse.ui.IPerspectiveFactory;
 >
 > public class PerspectiveFactory implements IPerspectiveFactory {
 >   public PerspectiveFactory() {
 >     super();
 >   }
 >   public void createInitialLayout(IPageLayout layout) {
 >
 > layout.addView("org.eclipse.core.examples.nonideapp.feature1.SampleView ",
 >                    IPageLayout.LEFT, (float)0.95,
 > IPageLayout.ID_EDITOR_AREA);
 >     layout.setEditorAreaVisible(false);
 >   }
 > }
 >
 > The jar file contains:
 >
 > META-INF/MANIFEST.MF
 > org/eclipse/core/examples/nonideapp/NonIdeAppPlugin.class
 >  org/eclipse/core/examples/nonideapp/feature1/SampleView$1.cl ass
 >  org/eclipse/core/examples/nonideapp/feature1/SampleView$2.cl ass
 >  org/eclipse/core/examples/nonideapp/feature1/SampleView$3.cl ass
 >  org/eclipse/core/examples/nonideapp/feature1/SampleView$4.cl ass
 >  org/eclipse/core/examples/nonideapp/feature1/SampleView$5.cl ass
 >  org/eclipse/core/examples/nonideapp/feature1/SampleView$Name Sorter.class
 >
 org/eclipse/core/examples/nonideapp/feature1/SampleView$View ContentProvider.
 class
 >
 org/eclipse/core/examples/nonideapp/feature1/SampleView$View LabelProvider.cl
 ass
 >  org/eclipse/core/examples/nonideapp/feature1/SampleView.clas s
 >  org/eclipse/core/examples/nonideapp/feature1/PerspectiveFact ory.class
 > icons/sample.gif
 >
 > The code for the plugin class and the sample view is just that
 > automatically generated.
 >
 > What is shown is the install version of nonideapp.  For development, use
 > an addition option "-dev bin" and soft links:
 >
 > /usr/share/nonIdeApp/features:
 > org.eclipse.core.examples.nonideappfea1 ->
 >  /home/dgeg/eclipseWorkspace2/org.eclipse.core.examples.nonid eappfea1
 >
 > /usr/share/nonIdeApp/plugins:
 > org.eclipse.core.examples.nonideapp ->
 >  /home/dgeg/eclipseWorkspace2/org.eclipse.core.examples.nonid eapp
 >
 |  |  |  |  |  |  |  |  |  |  | 
| Re: Base Non-IDE Application Using the Workbench [message #27447 is a reply to message #23029] | Sat, 03 May 2003 09:15   |  | 
| Eclipse User  |  |  |  |  | Originally posted by: muelleimer.usenet.katzien.de 
 * Don Estberg <destberg1@earthlink.net> wrote:
 > My environment is Eclipse 2.1/GTK on Debian Linux using JVM 1.4.1.
 
 Are you aware, that there are eclipse packages in debian/sid?
 
 > Assume the install directory is /usr/share, so Eclipse is installed in
 > /usr/share/eclipse and the application is installed in
 
 On debian, the original eclipse thingies are installed in
 /usr/lib/eclipse. Additional plugins may be installed in
 /usr/local/libs/eclipse.
 (and in $HOME/.eclipse/eclipse, if the maintainer accepts my patch
 to PlatformConfiguration.java. See Bug 36101)
 
 > The executable is nonideapp, which contains
 [...]
 
 Nice one. :) Thanks for some ideas.
 
 > site.0.updateable=true
 
 This should probably false, as otherwise the updatemanager will try
 to update files, which should not be touched by a user. IMO eclipse
 isn't really unix link, when it comes to 'system' and 'user' manages
 files. See
 http://bugs.eclipse.org/bugs/show_bug.cgi?id=36101
 
 > If this file is writable, then this file is re-written when Eclipse
 > exits, which is inconvenient since some of your formating is lost and
 > it may be rearranged.  The syntax of this file is not documented and not
 > considered part of the API, but it is written by the PDE GUI (Run -> Run
 > -> Plug-ins and Fragments -> Choose plug-ins and fragments to launch
 > from the list) and used to launch a runtime Eclipse instance.
 
 IMO, this file should not list sites, which are installed by root.
 For example, this file is also in
 <worspace>/.metadata/.config/platform.cfg and every linked in site
 (via /usr/lib/eclipse/links/*.links) will stay in this
 configuration, even if root deletes the links/abc.links file (but
 keeps the 'site' with all features and plugins). Also, updates in
 the *.links are not represented: You can change the site from
 read/write to readonly by writing
 -- user.links --
 |path=r <url to new site>
 
 IMO the 'user configuration', which is made by the suer, should be
 seperated from the 'saved state data'. ITM platform.cfg is used for
 both, which will give you this problems.
 
 > Is there any one place where all these parameters are documented?  Also
 
 Don't know, but I got one from a pde plugin, which states, that it is
 has the
 |#Master Tracing Options
 |#Tue Mar 25 21:58:08 CET 2003
 
 > The non-IDE application may not need a workspace, but a temporary area
 > is still needed for .metadata, which I specify to be in a .nonideapp
 > directory in the user's home directory.
 
 Probably for the .metadata dir. Is ther eany comandline switch to
 put this dir somewhere else?
 
 Jan
 |  |  |  |  | 
| Re: Base Non-IDE Application Using the Workbench [message #27487 is a reply to message #27447] | Sun, 04 May 2003 20:52   |  | 
| Eclipse User  |  |  |  |  | Jan Schulz wrote: 
 > * Don Estberg <destberg1@earthlink.net> wrote:
 > > My environment is Eclipse 2.1/GTK on Debian Linux using JVM 1.4.1.
 
 > Are you aware, that there are eclipse packages in debian/sid?
 
 I saw this in your other post - I'll start using it.
 
 > > Assume the install directory is /usr/share, so Eclipse is installed in
 > > /usr/share/eclipse and the application is installed in
 
 > On debian, the original eclipse thingies are installed in
 > /usr/lib/eclipse. Additional plugins may be installed in
 > /usr/local/libs/eclipse.
 > (and in $HOME/.eclipse/eclipse, if the maintainer accepts my patch
 > to PlatformConfiguration.java. See Bug 36101)
 
 Not quite what I need, but using the -addsite option may eliminate the
 problems with the platform.cfg file.
 
 > > site.0.updateable=true
 
 > This should probably false, as otherwise the updatemanager will try
 > to update files, which should not be touched by a user.
 
 I tried this and it didn't seem to help.  The -noupdate command-line
 option prevents update of the sites.
 
 > > If this file is writable, then this file is re-written when Eclipse
 > > exits, which is inconvenient since some of your formating is lost and
 > > it may be rearranged.  The syntax of this file is not documented and not
 > > considered part of the API, but it is written by the PDE GUI (Run -> Run
 > > -> Plug-ins and Fragments -> Choose plug-ins and fragments to launch
 > > from the list) and used to launch a runtime Eclipse instance.
 
 > IMO the 'user configuration', which is made by the suer, should be
 > seperated from the 'saved state data'. ITM platform.cfg is used for
 > both, which will give you this problems.
 
 Right - this is the problem.
 
 > > The non-IDE application may not need a workspace, but a temporary area
 > > is still needed for .metadata, which I specify to be in a .nonideapp
 > > directory in the user's home directory.
 
 > Probably for the .metadata dir. Is ther eany comandline switch to
 > put this dir somewhere else?
 
 That would be nice if there were.
 |  |  |  |  |  |  | 
| Re: Architecture Pictures for Platform Plugins [message #28438 is a reply to message #27634] | Tue, 06 May 2003 14:32  |  | 
| Eclipse User  |  |  |  |  | John, 
 I updated the Plugin Layers picture.  Thanks for the correction.
 
 Don
 
 John Arthorne wrote:
 
 > Thanks for the diagrams, I know many people have asked for something
 > like this in the past.  I have a small correction to the "plugin layers"
 > diagram.  You need to add a dependency between the "Workbench (GUI)" box
 > and the "Workspace and resource management" box.  This is one of the
 > dependencies we are interested in severing in the rich client work, but
 > it exists in the current state of the world.
 > --
 
 
 > Don Estberg wrote:
 > > In the process of determining what plugins I needed, I came up with some
 > > pictures showing how the platform plugins are related; see
 > >
 > > http://eclipsewiki.swiki.net/2587
 > >
 > > Don
 > >
 > >
 > >
 |  |  |  | 
 
 
 Current Time: Fri Oct 31 01:18:36 EDT 2025 
 Powered by FUDForum . Page generated in 0.04254 seconds |