Domino 9 und frühere Versionen > ND8: Entwicklung

Composite Application: aus Notes Application 8.5 SWT-GUI aufrufen

<< < (2/4) > >>

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