[eclipse] kill/verwijder VIEW en reinitalisatie?

Pagina: 1
Acties:

  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:03
We hebben een RCP ontwikkeld die automatisch een view laadt na een bepaalde handeling in het programma. In de betreffende view kunnen we dan bepaalde acties uitvoeren op een SVG plaatje die
daarvoor geladen wordt. Echter, als ik weer terug ga naar de vorige view om een andere bewerking te laten uitrekenen, wordt het nieuwe plaatje wel getoond maar werken de acties niet meer.
Na veel gepuzzel willen we proberen de view opnieuw te initialiseren. Weet iemand een manier om een view te killen en/of opnieuw te initialiseren?

  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:03
Nobody? :'(

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Ik denk dat je het gewoon in je huidige view op moet zien te lossen. De dispose() methode moet de view afbreken, en als ie dan later weer getoond wordt, worden de init functies wel weer aangeroepen...

"Beauty is the ultimate defence against complexity." David Gelernter


  • RSchellhorn
  • Registratie: Augustus 2001
  • Laatst online: 02-05 20:03
Hoe bedoel je "terug ga naar de vorige view", klik je alleen een andere view aan en verdwijnen de acties?

En is dat een view van dezelfde class alleen op een andere plek in de workbench of echt een geheel andere view?

Ik weet niet of je deze tutorial al kent, zo niet bekijk het laatste gedeelte eens, dat zal wellicht nuttig zijn.

[ Voor 81% gewijzigd door RSchellhorn op 21-08-2005 11:24 . Reden: aanvulling ]

"Ik heb zo veel soep gegeten, dat kan een mens niet aan. Ik heb zo veel soep gegeten, kan bijna niet meer staan. Ik zat daar maar te slurpen achter die grote kop en als ik bijna klaar was, dan schepten ze weer op!" (Hans Teeuwen)


  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:03
Slayer08 schreef op zondag 21 augustus 2005 @ 11:06:
Hoe bedoel je "terug ga naar de vorige view", klik je alleen een andere view aan en verdwijnen de acties?

En is dat een view van dezelfde class alleen op een andere plek in de workbench of echt een geheel andere view?
Ik heb 2 views in mijn RCP. Een view waarmee je bepaalde dingen berekent die vervolgens worden getoond in de 2e view.
Als ik dingen heb berekend dmv view 1 (waar allerhande settings staan) krijg ik automatisch view 2 te zien. Daar zie ik nu een (svg) plaatje te zien. In het SVG plaatje zitten bepaalde actions zodat ik selecties in het plaatje kan maken zodat ik die verder kan processen. Dit gaat de 1e keer perfect.
Echter, als ik nu na zo'n terug ga naar view 1 om iets opnieuw te berekenen, kom ik daarna nog wel weer in view 2 met een correcte SVG, alleen werken de actions opeens niet meer.

[edit]
Leuke link thanks.

[ Voor 3% gewijzigd door Red devil op 21-08-2005 11:27 ]


  • RSchellhorn
  • Registratie: Augustus 2001
  • Laatst online: 02-05 20:03
Niet meer dan giswerk, maar ik zou het in die richting zoeken:

Je hebt de bewerking-view en de svg-view, met een image-canvas en selecteer-action. Heeft de selecteer-action een referentie naar de image-canvas en wordt de image-canvas opnieuw gezet na een nieuwe berekening uit de bewerking-view.

Humm beetje erg giswerk zo :/ Maar loop met de debugger eens alle acties langs die optreden als je een selecteer-action start, want er zal gok ik ergens een variabele perongeluk overschreven worden.

PS: Hoe communiceren je twee views, ben zelf opzoek naar hoe Eclipse dit doet, maar heb het nog niet kunnen vinden. O-)

[ Voor 13% gewijzigd door RSchellhorn op 21-08-2005 11:50 ]

"Ik heb zo veel soep gegeten, dat kan een mens niet aan. Ik heb zo veel soep gegeten, kan bijna niet meer staan. Ik zat daar maar te slurpen achter die grote kop en als ik bijna klaar was, dan schepten ze weer op!" (Hans Teeuwen)


  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:03
Slayer08 schreef op zondag 21 augustus 2005 @ 11:40:
Niet meer dan giswerk, maar ik zou het in die richting zoeken:

Je hebt de bewerking-view en de svg-view, met een image-canvas en selecteer-action. Heeft de selecteer-action een referentie naar de image-canvas en wordt de image-canvas opnieuw gezet na een nieuwe berekening uit de bewerking-view.

Humm beetje erg giswerk zo :/ Maar loop met de debugger eens alle acties langs die optreden als je een selecteer-action start, want er zal gok ik ergens een variabele perongeluk overschreven worden.

PS: Hoe communiceren je twee views, ben zelf opzoek naar hoe Eclipse dit doet, maar heb het nog niet kunnen vinden. O-)
Thanks for thinking!

Durf eigenlijk goed te vertellen hoe we dat gedaan hebben met de 2 views, beetje hokkie wokkie nl maar goed. Komt ie.

We hebben een observable / observer systeem ingesteld waarbij de 2e view een bepaald object telkens in de gaten houdt. Zodra view 1 iets heeft gedaan, dan wordt view 2 geinitialiseerd dmv een switch view aanroep:

code:
1
getSite().getPage().showView(DataView.ID_VIEW);


Vervolgens verandert view1 een bepaalde String in het object wat door view2 wordt geobserveerd. Vervolgens ziet view2 dit, en wordt een bepaalde actie uitgevoerd en voila het werkt.

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Wat voor code gebruik je eigenlijk voor de SVG view? Is dat je eigen code of hergebruik je de Batik Eclipse plug-in hiervoor?

Ik zelf hergebruik deze batik plugin, maar het is een beetje een hack omdat er geen makkelijk interface is om een SVG te tonen. Normaal reageert de plug-in op een selectie in de navigation view van een SVG file. Ik krijg de plug-in nu zo ver om de SVG te tonen door het een fake selection event te sturen. Dit werkt, maar is niet echt super mooi natuurlijk.

Tevens kan ik geen interactie doen met de SVG, dus ik vraag me af hoe jij dit oplost?

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:03
flowerp schreef op zondag 21 augustus 2005 @ 13:49:
Wat voor code gebruik je eigenlijk voor de SVG view? Is dat je eigen code of hergebruik je de Batik Eclipse plug-in hiervoor?

Ik zelf hergebruik deze batik plugin, maar het is een beetje een hack omdat er geen makkelijk interface is om een SVG te tonen. Normaal reageert de plug-in op een selectie in de navigation view van een SVG file. Ik krijg de plug-in nu zo ver om de SVG te tonen door het een fake selection event te sturen. Dit werkt, maar is niet echt super mooi natuurlijk.

Tevens kan ik geen interactie doen met de SVG, dus ik vraag me af hoe jij dit oplost?
Ik weet dat we de Batik libraries gebruiken, de preciese details van je overige vragen weet ik niet precies. Ik heb een student die hieraan werkt, zal hem morgen vragen hoe hij het e.e.a. regelt ok?

  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:03
flowerp schreef op zondag 21 augustus 2005 @ 13:49:
Wat voor code gebruik je eigenlijk voor de SVG view? Is dat je eigen code of hergebruik je de Batik Eclipse plug-in hiervoor?

Ik zelf hergebruik deze batik plugin, maar het is een beetje een hack omdat er geen makkelijk interface is om een SVG te tonen. Normaal reageert de plug-in op een selectie in de navigation view van een SVG file. Ik krijg de plug-in nu zo ver om de SVG te tonen door het een fake selection event te sturen. Dit werkt, maar is niet echt super mooi natuurlijk.

Tevens kan ik geen interactie doen met de SVG, dus ik vraag me af hoe jij dit oplost?
We gebruiken de Batik jars, en een composite met een SWT embedded style die swing componenten kan laten zien. Deze stopt de JSVG canvast in een SWT widget

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
svgComp = new Composite(parent, SWT.EMBEDDED | SWT.BORDER);
        final java.awt.Frame svgFrame = SWT_AWT.new_Frame(svgComp);
        
        //Schedule a job for the Swing event-dispatching thread:
        //creating and showing this Swing application's GUI.
        // This is done for thread safety, this method should be
        // invoked from an event-dispatching thread.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            viewer = new SVGViewer(svgFrame);
            viewer.showGUI(svgFrame);
          }
        });


Voor de interactie, die vangen we af in SWT, maar we doen niet echt lastige dingen daarmee. Na een click bijv, roepen we de DOM op van de SVG, en laten een extra vierkantje zien bijv.

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Red devil schreef op maandag 22 augustus 2005 @ 10:31:
[...]

We gebruiken de Batik jars, en een composite met een SWT embedded style die swing componenten kan laten zien. Deze stopt de JSVG canvast in een SWT widget
Dit is ongeveer de zelfde aanpak als Dirk Lemmermann doet met z'n plugin die je kunt vinden op http://eclipse-plugins.2y...plugin_details.jsp?id=154 .

Hij is er al wel wat langer mee bezig, dus ik vraag me af wat hij dan precies meer doet dan alleen een swing widget in een SWT widget stoppen. Er zijn namelijk nog steeds wat problemen met de plug-in, waaronder sax parser errors.

Mischien zou je die plugin eens (laten) kunnen bestuderen?

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:03
flowerp schreef op maandag 22 augustus 2005 @ 12:51:
[...]


Dit is ongeveer de zelfde aanpak als Dirk Lemmermann doet met z'n plugin die je kunt vinden op http://eclipse-plugins.2y...plugin_details.jsp?id=154 .

Hij is er al wel wat langer mee bezig, dus ik vraag me af wat hij dan precies meer doet dan alleen een swing widget in een SWT widget stoppen. Er zijn namelijk nog steeds wat problemen met de plug-in, waaronder sax parser errors.

Mischien zou je die plugin eens (laten) kunnen bestuderen?
Deze hebben we al eens eerder gezien, alleen werden we er gestoord van. Weinig documentatie enzo, nu hebben we meer controle.
Wij zijn ook tegen Sax Parser errors aangelopen, het blijkt dat ergens in een JAR file een xlm properties file staat waarin de betreffende XML parser gehard code staat. Deze moet je dan wijzigen in de JAR file en vervolgens werkt het wel.
Dit laatste was echt een k*t probleem, niet te geloven.
Pagina: 1