Home » Eclipse Projects » Eclipse Platform » Base Non-IDE Application Using the Workbench
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
> >
> >
> >
|
|
|
Goto Forum:
Current Time: Fri May 09 01:39:00 EDT 2025
Powered by FUDForum. Page generated in 0.04109 seconds
|