Domino 9 und frühere Versionen > ND8: Entwicklung
Composite Application: aus Notes Application 8.5 SWT-GUI aufrufen
Ahuga:
Ich habe in meiner Anwendung zwei plugin.xml:
- im Packet ... .service --> Zugriff auf die lokale DB
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<!--
/************************************************************************
* Licensed Materials - Property of IBM
* @CUTLASS_PID@
* © Copyright IBM Corp. 2004, 2009 All Rights Reserved.
*************************************************************************/
-->
<?eclipse version="3.2"?>
<plugin>
<!-- Define a class to provide the default preference values -->
<extension
point="org.eclipse.core.runtime.preferences">
<initializer class="com.ibm.rcp.samples.orderentry.service.impl.PreferenceInitializer"/>
</extension>
<!-- Define a managed data source to be used by Order Entry. This will be used
presuming that the Derby database provider is enabled in the platform. -->
<extension
id="OrderEntryBinding"
point="com.ibm.pvc.jndi.provider.java.binding">
<binding
jndi-name="jdbc/OrderEntry"
objectFactory-id="com.ibm.rcp.database.core.ManagedDSObjectFactory"/>
</extension>
<extension
id="OrderEntryDerbyDatabase"
point="com.ibm.rcp.database.core.datasource">
<datasource
databaseName="OEDB"
databaseProviderId="org.apache.derby"
jndiName="jdbc/OrderEntry"
location="db">
<action name="applySchema">
<property name="schema" value="OrderEntry"/>
</action>
</datasource>
</extension>
<extension
id="OrderEntrySchema"
point="com.ibm.rcp.database.core.schema">
<schema
name="OrderEntry"
version="6.1.2">
<create>
<script
id="create"
script="scripts/create.sql"/>
</create>
<populate>
<script
id="populate"
script="scripts/populate.sql"/>
</populate>
</schema>
</extension>
<!-- Define a secondary (backup) datasource that will be used if the managed datasource
is not available. This will occur if the Derby database provider is not available,
such as on the device runtime, where derby is not installed. -->
<extension
id="OrderEntryBindingBackup"
point="com.ibm.pvc.jndi.provider.java.binding">
<binding
jndi-name="jdbc/OrderEntryBackup"
objectFactory-id="com.ibm.pvc.jndi.provider.java.GenericObjectFactory"/>
</extension>
<extension
id="OrderEntryBackupDB"
point="com.ibm.pvc.jndi.provider.java.genericobject">
<object
class="com.ibm.db2e.jdbc.DB2eDataSource"
jndi-name="jdbc/OrderEntryBackup">
<method name="setUrl">
<method-parameter
type="String"
value="jdbc:db2e:${_workspace}/OEDBDB2e"/>
</method>
<method name="setSharedDatabaseAccess">
<method-parameter
type="boolean"
value="true"/>
</method>
</object>
</extension>
<extension
point="com.ibm.msg.client.jmsqueue">
<queue
jndi-name="jms/OERequestQueue"
provider-name="com.ibm.msg.client.mqtt.MQTTConstants.MQTT_PROVIDER_NAME"
queue-name="OERequestQueue"/>
</extension>
<extension
point="com.ibm.pvc.jndi.provider.java.binding">
<binding
jndi-name="jms/OERequestQueue"
objectFactory-id="com.ibm.msg.client.JMSQueueFactory"/>
</extension>
<extension
point="com.ibm.msg.client.jmsqueue">
<queue
jndi-name="jms/OEReplyQueue"
provider-name="com.ibm.msg.client.mqtt.MQTTConstants.MQTT_PROVIDER_NAME"
queue-name="OEReplyQueue"/>
</extension>
<extension
point="com.ibm.pvc.jndi.provider.java.binding">
<binding
jndi-name="jms/OEReplyQueue"
objectFactory-id="com.ibm.msg.client.JMSQueueFactory"/>
</extension>
<extension point="com.ibm.pvc.jndi.provider.java.binding">
<binding
jndi-name="services/OrderEntryService"
objectFactory-id="com.ibm.pvc.jndi.provider.java.GenericObjectFactory"/>
</extension>
<extension point="com.ibm.pvc.jndi.provider.java.genericobject">
<object jndi-name="services/OrderEntryService"
class="com.ibm.rcp.samples.orderentry.service.impl.OrderEntryServiceImpl"/>
</extension>
</plugin>
- im Packet ... .richapp --> mit beiden ViewPart's
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<!--
/************************************************************************
* Licensed Materials - Property of IBM
* @CUTLASS_PID@
* © Copyright IBM Corp. 2004, 2008 All Rights Reserved.
*************************************************************************/
-->
<plugin>
<extension
point="org.eclipse.ui.perspectives">
<perspective
class="com.ibm.rcp.samples.orderentry.richapp.OrderEntryPerspective"
name="%orderentry.perspective.name"
id="com.ibm.rcp.samples.orderentry.richapp.OrderEntryPerspective"
icon="icons/OEwctapp_16x16.gif"/>
</extension>
<extension
point="org.eclipse.ui.preferencePages">
<page
name="%orderentry.preferences.name"
class="com.ibm.rcp.samples.orderentry.richapp.preferences.OrderEntryPreferencesPage"
id="com.ibm.rcp.samples.orderentry.richapp.preferences.OrderEntryPreferencesPage">
</page>
</extension>
<extension
point="org.eclipse.ui.views">
<category
name="%orderentry.view.name"
id="com.ibm.rcp.samples.orderentry.richapp.views">
</category>
<view
name="%orderentry.view1.name"
category="com.ibm.rcp.samples.orderentry.richapp.views"
class="com.ibm.rcp.samples.orderentry.richapp.views.OrderStatusView"
id="com.ibm.rcp.samples.orderentry.richapp.views.OrderStatusView">
</view>
<view
name="%orderentry.view2.name"
category="com.ibm.rcp.samples.orderentry.richapp.views"
class="com.ibm.rcp.samples.orderentry.richapp.views.NewOrderView"
id="com.ibm.rcp.samples.orderentry.richapp.views.NewOrderView">
</view>
</extension>
<!-- Define launcherSet to add this perspective to the launcher -->
<extension
id="OrderEntryLauncherSet"
point="com.ibm.rcp.ui.launcherSet">
<LauncherSet
id="com.ibm.rcp.samples.orderentry.richapp.OrderEntry"
label="%orderentry.application.name">
<perspectiveLaunchItem
autoStart="false"
iconUrl="icons/OEwctapp_16x16.gif"
iconUrlMedium="icons/OEwctapp_32x32.gif"
id="com.ibm.rcp.samples.orderentry.richapp.OrderEntry"
label="%orderentry.application.name"
perspectiveId="com.ibm.rcp.samples.orderentry.richapp.OrderEntryPerspective"/>
</LauncherSet>
</extension>
</plugin>
Werde mich mal hinter das Tutorial im im Wiki machen.
Vielen Dank und Gruess
Martin
Ralf_M_Petter:
Hm.
Du solltest es vielleicht eventuell zuerst mal mit einem einfacheren Beispiel probieren. Zwei Sachen die mir aber aufgefallen sind. Du musst bei ViewParts die in Comp Apps verwendet werden die Eigenschaft AllowMultipe beim Extension Point der View angeben. Sonst funktioniert das nicht.
Eine View sollte also so definiert sein:
--- Code: ---<extension
point="org.eclipse.ui.views">
<view
allowMultiple="true"
category="test"
class="viewPartClass"
id="viewId"
name="Testview"
restorable="true">
</view>
--- Ende Code ---
Dann sollte sie auch in CA's funktionieren.
Zweitens wenn du Eigenschaften von einem Viewpart zum Anderen übertragen willst, brauchst du ein WSDL, dass du im Designer erstellen kannst und dann in Eclipse importieren musst. Dieses WSDL und deine Handler Klassen musst du dann im Extension Point com.ibm.rcp.propertybroker.PropertyBrokerDefinitions angeben. Das ist aber im Tutorial genau beschrieben.
Ahuga:
Ich habe das Beispiel nachgebaut und in eine Composite Application integriert, siehe Screenshot. (Links eine Notes view (sample_plugin.nsf), rechts das Plugin mit ViewPart und Browser gemäss Beispiel)
Was ich nicht richtig verstanden habe: Ich definiere Property (Daten zum Konsumieren für andere Komponenten) und Action (Logik, wie mit den Daten verfahren wird) in der wsdl-Datei, aber wo ist definiert, was diese Property und Action bedeuten, was die genau machen sollen? Der Inhalt der WSDL-Datei gibt mir keinen Aufschluss darüber.
Wenn ich also eine Komponente habe, welche Daten in einer ViewPart darstellen will, dann definiere ich über die Action, wie die Daten konsumiert werden sollen? Ist das korrekt?
Ich nehme an, dass ich auch im sample_plugin.nsf (Notes view) ein SampleNsf.wsdl mit Propertiy und Action definieren muss, damit die Namensfelder in der ViewPart ausgefüllt werden, wenn ich einen Namen in der View selektiere? Ist das korrekt?
Ralf_M_Petter:
Hm ich sehen keinen Screenshot?
Grüße
Ralf
Ahuga:
Ups ... vor lauter ...
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln