Dialog anzeigen

Allgemeine Fragen zur Entwicklung von und mit ProjX.

Dialog anzeigen

Postby Gerhard » Tue Apr 29, 2014 1:18 pm

Ich versuche gerade dieser Beschreibung zu folgen, um einen Dialog zu öffnen:
http://forum.sibvisions.com/viewtopic.php?f=11&t=829
Leider scheitere ich daran...

Mein Vorgehen:

Ich habe in VisionX einen leeren WorkScreen erstellt und einen Button hinzugefügt.
Auf dem Button hängt ein eventListener
Code: Select all
button.eventAction().addListener(this, "doShowDialog");


In der Funktion doShowDialog versuche ich einen Dialog zu öffnen.
Code: Select all
   public void doShowDialog() throws Throwable {
      UIPanel buttonPanel = new UIPanel(new UIFormLayout());
      buttonPanel.add(new UILabel("testLabel"));
      Dialog dialog = new Dialog(buttonPanel);
//      Dialog.openInternalFrame(getApplication(), "Testdialog", true, dialog);
      getApplication().openContent(this, "Testdialog", false, dialog);
   }


Der Aufruf von openInternalFrame funktioniert nicht, da mir die passende Application-Klasse fehlt.
openContent liefert mir folgenden Fehler:
Method doCloseContent not found in class com.sibvisions.apps.projx.ProjX!


Wie kann ich den Dialog korrekt öffnen?
Gerhard
 
Posts: 15
Joined: Tue Apr 22, 2014 5:14 pm

Re: Dialog anzeigen

Postby manfrede » Tue Apr 29, 2014 1:30 pm

Hi,

welche Version verwenden sie? Das war ein Bug der in Version 1.4 von ProjX korrigiert wurde.
manfrede
 
Posts: 21
Joined: Tue Oct 22, 2013 11:45 am

Re: Dialog anzeigen

Postby Gerhard » Tue Apr 29, 2014 2:11 pm

VisionX 1.2.169

Die projx.jar im lib/client Ordner des Projekts hat folgendes Manifest
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_24-b07 (Sun Microsystems Inc.)
Implementation-Title: ProjX 1.4
Implementation-Version: b38 01.02.2014 13:10:54
Implementation-Vendor: SIB Visions GmbH

Das heißt um einen Dialog öffnen zu können, brauche ich eine neuere projx.jar. Danke, jetzt weiß ich zumdest mal, worans liegt.
Gerhard
 
Posts: 15
Joined: Tue Apr 22, 2014 5:14 pm

Re: Dialog anzeigen

Postby manfrede » Tue Apr 29, 2014 2:32 pm

Das Ticket wurde am 16. Februar geschlossen, also ja, neues projx.jar ist angesagt.

VisionX 2.0 ist bereits released, dort sollte das gelöst sein.
manfrede
 
Posts: 21
Joined: Tue Oct 22, 2013 11:45 am

Re: Dialog anzeigen

Postby Development@SIB » Tue Apr 29, 2014 2:39 pm

Besser hätte das nicht beantwortet werden können :D
Vielen Dank.

Mit Ihrer Version könnten Sie den Dialog weglassen und einen Content implementieren (siehe Dialog Source Code). Dann können Sie über openContent arbeiten, nur müssen Sie den Content auch selbst schließen.

Aktuell ist VisionX 2.0.2 und mit den darin enthaltenen libs tritt das Problem nicht mehr auf!
User avatar
Development@SIB
 
Posts: 311
Joined: Mon Sep 28, 2009 1:54 pm

Re: Dialog anzeigen

Postby Gerhard » Mon May 26, 2014 2:36 pm

Bin mittlerweile auf die neueste Version umgestiegen. Der Dialog geht nun auf. Allerdings kommt beim Klick aufs X, um den Dialog zu schließen, eine Exception.

Code: Select all
UIPanel panel = new UIPanel(new UIBorderLayout());
panel.add(new UILabel("Testtext"));
Dialog dialog = new Dialog(panel);
((ProjX)getApplication()).openContent(this, "Testdialog", false, dialog);


java.lang.NullPointerException
at com.sibvisions.apps.projx.ProjX.destroyContent(Unknown Source)
at com.sibvisions.apps.projx.ProjX.closeContainer(Unknown Source)
at com.sibvisions.apps.projx.ProjX.doCloseContent(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at javax.rad.util.EventHandler$ListenerHandler.dispatchEvent(EventHandler.java:875)
at javax.rad.util.EventHandler.dispatchEvent(EventHandler.java:502)
at javax.rad.util.RuntimeEventHandler.dispatchEvent(RuntimeEventHandler.java:73)
at com.sibvisions.rad.ui.swing.impl.container.SwingInternalFrame.internalFrameClosing(SwingInternalFrame.java:406)
at javax.swing.JInternalFrame.fireInternalFrameEvent(JInternalFrame.java:1570)
at javax.swing.JInternalFrame.doDefaultCloseAction(JInternalFrame.java:1613)
at javax.swing.plaf.basic.BasicInternalFrameTitlePane$CloseAction.actionPerformed(BasicInternalFrameTitlePane.java:610)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)


Außerdem fehlt, wenn ich die den Dialog in einer HTML5 Applikation im Browser starte, der OK Button.
Gerhard
 
Posts: 15
Joined: Tue Apr 22, 2014 5:14 pm

Re: Dialog anzeigen

Postby rjahn » Mon May 26, 2014 8:38 pm

Ist ein Bug in der Implementierung. Es wird 2x close des Contents aufgerufen und null wurde nicht gecheckt. Das sollte in einer einer der nächsten Versionen behoben sein.

In der Zwischenzeit muss der Content selbst erstellt werden, denn wenn kein Dialog verwendet wird gibt es keine Probleme. Der Dialog hat lediglich das Button Handling...
rjahn
 
Posts: 29
Joined: Sun Sep 13, 2009 1:54 pm


Return to Entwicklung