Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
PropertyBroker.getProperty liefert null zurück
(1/1)
Sebastianh:
Hallo,
ich habe eine CA und ein PlugIn in der Sidebar. Nun möchte ich, dass diese beiden kommunizieren. Nehmen wir der Einfachheit halber an, ich gebe in der Sidebar einen Wert ein, der auf Knopfdruck an den Propertybroker übertragen werden soll, und auf einen Knopfdruck in der CA in einer View in dieser angezeigt werden soll. Nun habe ich inzwischen allerlei gelesen von WSDL, Actions, und eben diesem PropertyBroker. Wenn ich in der Sidebar eine Property wie folgt anlege:
--- Code: ---final PropertyValue value = PBUtil.createPropertyValue("SampleNsfProperty", "SampleNsfPropertyValue");
SWTHelper.changedProperties(new PropertyValue[]{value}, SideBarView.this);
--- Ende Code ---
mit PBUtil.createPropertyValue:
--- Code: ---public static PropertyValue createPropertyValue(String propertyName, String propertyValue){
PropertyBroker broker = null;
broker = PropertyBrokerFactory.getBroker();
try {
Property prop = PropertyFactory.createProperty();
return PropertyFactory.createPropertyValue(prop, propertyValue);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
--- Ende Code ---
und dann via
--- Code: ---PropertyBroker broker = null;
Property newProp = null;
try{
broker = PropertyBrokerFactory.getBroker();
newProp = broker.getProperty(XMLNS_XSD, propertyName);
...
--- Ende Code ---
auf die Property zugreifen will, bekomme ich null zurück.
Wie komme ich denn nun an meine gesetzte Property (oder geht dies ausschliesslich über den WSDL/Action-Weg)?
Sebastianh:
ok, der Namespace war falsch gesetzt, mein Fehler, aber..wenn ich jetzt die Property "zurück geholt" habe, und auf dieser
--- Code: ---getDefaultValue()
--- Ende Code ---
aufrufe, bekomme ich wiederrum null zurück. Wie komme ich denn jetzt an die Daten der Property, die ich gesetzt habe?
Sebastianh:
Property-Objekte die über
--- Code: ---broker.getProperty(x,y);
--- Ende Code ---
zurückkommen, sehen im Debugger IMMER so aus:
--- Code: ------Property---
name = sampleProperty
type = string
namespace = http://www.w3.org/2001/XMLSchema
class = java.lang.String
direction = OUT
title key =
description key =
nls file name = null
content type = {}
context data = {}
------
--- Ende Code ---
obwohl ich vorher wie oben gezeigt, einen Wert zugewiesen habe. Sollte dieser jetzt nicht in "context data" stehen?
Sebastianh:
ok, inzwischen habe ich eine WSDL angelegt, eine Action und Sidebar und View im CAE miteinander verbunden. Die Action löst aber nicht aus. Sollte die execute Methode der Action nicht aufgerufen werden, sobald
--- Code: ---SWTHelper.changedProperties(...);
--- Ende Code ---
aufgerufen wurde?
Sebastianh:
inzwischen habe ich rausgefunden, dass ich in der entsprechenden View an den PropertyBroker einen PropertyBrokerListener hängen kann, und dieser feuert sofort, wenn sich was ändert. Von dem mitgeliefertem Event kann man dann das zu übertragende Objekt bekommen. Ist zwar nicht wirklich schön, zunächst tut es aber das was es soll.
--- Code: ---broker.addPropertyBrokerListener(new PropertyBrokerListener() {
public void handleEvent(PropertyBrokerEvent arg0) {
if (arg0 instanceof PropertyBrokerEvent) {
PropertyValue value = arg0.getPropertyValue();
Object v = value.getValue();
--- Ende Code ---
(trotzdem würde ich ganz gerne die Sache mit den Actions, Wires und Co irgendwie hinbekommen, also falls noch jemand einen Tip hat, wäre ich dankbar)
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln