Skip to main content



      Home
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 Go to next message
Eclipse UserFriend
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 Go to previous messageGo to next message
Eclipse UserFriend
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 #27384 is a reply to message #23029] Fri, 02 May 2003 09:15 Go to previous messageGo to next message
Eclipse UserFriend
This is a multipart message in MIME format.
--=_alternative 0048CB7B85256D1A_=
Content-Type: text/plain; charset="US-ASCII"

What is you need for:

plugins/org.eclipse.compare_2.1.0/plugin.xml,\

We did not find a need for it in our minimal plugin set.

ps. You can also hide the perspective and status bars.

-m@

--=_alternative 0048CB7B85256D1A_=
Content-Type: text/html; charset="US-ASCII"


<br><font size=2 face="sans-serif">What is you need for:</font>
<br>
<br><font size=2><tt>plugins/org.eclipse.compare_2.1.0/plugin.xml,\</tt ></font>
<br>
<br><font size=2 face="sans-serif">We did not find a need for it in our
minimal plugin set.</font>
<br>
<br><font size=2 face="sans-serif">ps. &nbsp;You can also hide the perspective
and status bars.</font>
<br>
<br><font size=2 face="sans-serif">-m@</font>
<br>
--=_alternative 0048CB7B85256D1A_=--
Architecture Pictures for Platform Plugins [message #27440 is a reply to message #23029] Fri, 02 May 2003 21:33 Go to previous messageGo to next message
Eclipse UserFriend
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
Re: Base Non-IDE Application Using the Workbench [message #27442 is a reply to message #27384] Fri, 02 May 2003 21:43 Go to previous messageGo to next message
Eclipse UserFriend
Matthew_Hatem@notesdev.ibm.com wrote:

> What is you need for:

> plugins/org.eclipse.compare_2.1.0/plugin.xml,\\

Right. As I noted, it is only included because I thought it would be
useful.

> We did not find a need for it in our minimal plugin set.

> ps. You can also hide the perspective and status bars.

SHOW_SHORTCUT_BAR and SHOW_STATUS_LINE parameters are included on the list.

Don


> -m@
Re: Base Non-IDE Application Using the Workbench [message #27447 is a reply to message #23029] Sat, 03 May 2003 09:15 Go to previous messageGo to next message
Eclipse UserFriend
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 Go to previous messageGo to next message
Eclipse UserFriend
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 #27634 is a reply to message #27440] Mon, 05 May 2003 17:49 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: John_Arthorne.oti.com_

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
>
>
>
Re: Architecture Pictures for Platform Plugins [message #28438 is a reply to message #27634] Tue, 06 May 2003 14:32 Go to previous message
Eclipse UserFriend
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
> >
> >
> >
Previous Topic:error on creating package explorer view
Next Topic:ANT view
Goto Forum:
  


Current Time: Fri May 09 01:39:00 EDT 2025

Powered by FUDForum. Page generated in 0.04109 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top