Toon posts:

[Alg] Flexibele schermopbouw

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit momenteel te werken aan een ontwerp voor een applicatie. Het gaat hierbij met name over de schermopbouw. De volgende eisen worden gesteld aan het ontwerp:

- Het geheel moet draaien op Windows & Linux
- De eindgebruiker moet de mogelijkheid hebben om de schermopbouw naar eigen hand te kunnen zetten. Dit moet zo gedetailleerd mogelijk zijn
- Het programma bestaat uit een kern en uit modules. De modules voegen extra functionaliteit aan de kern toe. Uiteraard heeft dit ook als gevolg dat de schermlayout hierop aangepast moet worden.
- De eindgebruiker moet niet gedwongen worden een element toe te voegen in zijn systeem voor een module die niet wordt gebruikt. Het is dus geen optie om elementen gewoonweg niet te laten zien.
- Eindgebruikers zijn vrij in de keuze van modules.
- Gehele applicatie is te bouwen in C++ / wxWidgets

Even een simpel scenario:

- Een layout opbouwen a.d.h.v. een extern bestand of database geval met enkel de kern lukt wel. Dit is ook prima te doen met verschillende layouts voor verschillende eindgebruikers.
- Nu voer ik een extra module in. Deze module is een extra knop nodig. Met deze knop kun je de functionaliteit in de extra module gebruiken.
- Nu stellen we ons even voor dat er een tweetal eindgebruikers zijn:

Eindgebruiker A: deze maakt wel gebruik van de nieuwe module. Hier zal er dus een knop moeten
worden toegevoegd door het systeem zelf. De knop zal moeten worden toegevoegd door het systeem. Er is een kernlayout voor het betreffende scherm en de knop moet daar ergens worden ingepast zonder tussenkomst van de eindgebruiker.

Eindgebruiker B: Deze maakt geen gebruik van de module en voor hem veranderd er dus niets aan zijn schermopbouw.

Feitelijke vraag:
Hoe zorg ik ervoor dat mensen die modules invoegen automatisch een aangepaste variant krijgen van hun schermopbouw zonder menselijke tussenkomst? Bestaat er al een dergelijk systeem? Iemand een idee hoe dit te doen is? Zelfs met een paar zoekwoorden voor Google zou ik nu al blij zijn :P.

Het idee wat er eerst heerste was om iedereen te dwingen de meest uitgebreide variant van de schermopbouw te modelleren (Denk hierbij dus aan de kern met alle mogelijke modules actief) om dan gewoon de ongewenste element te verbergen. Dit is echter geen optie omdat er later modules bijgevoegd worden. Dit zou dan voor iedere eindgebruiker problemen opleveren. Ze zouden dwangmatig hun schermopbouw weer aan moeten passen om problemen voor iedereen te voorkomen.

Your help would be appreciated ;)

  • Antediluvian
  • Registratie: Maart 2002
  • Laatst online: 13-01 23:54
Bij het lezen van je uitleg moet ik denken aan eclipse. Die heeft ook zo'n core en voor de rest is alles een plugin. Het is wel Java maar wellicht kan je wel een aantal van hun ideeën gebruiken bij het kiezen van je algemene opzet.

  • Vedett.
  • Registratie: November 2005
  • Laatst online: 12:04
Idd, een plug-in.

Heb er juist een geschreven voor visual studio. Elke plugin moet een Interface implementeren die een Connect methode heeft. Deze connect methode geeft je de referenc met je 'kern' zeg maar. Op die kern kan je methodes voorzien om windows (je kent wel van die dockable panelen) en/of menuitems toe te voegen aan je GUI.

Hoe een plug-in systeem juist in Java moet weet ik niet, maar de opbouw lijkt me hetzelfde.

Oh ja, Visual Studio kent je scherm opbouw omdat je elk paneel van een Guid moet voorzien. Deze schrijft hij dan weg in een config file, samen met de laatste positie van het paneel. Bij een restart weet hij dan of het scherm al geladen is geweest, en kent hij de laatste positie.

[ Voor 24% gewijzigd door Vedett. op 08-08-2006 12:08 ]


  • Apache
  • Registratie: Juli 2000
  • Laatst online: 11-02 10:20

Apache

amateur software devver

Het "plugin" systeem in Eclipse is niet zomaar een plugin systeem, het is een implementatie van OSGI, nu zelfs een van de meest toonaangevende OSGI implementaties. Het heeft niet alleen "plugins" maar ook fragments, extension points, etc

Higher level hebben we de views/editors/perspective aanpak voor de layout, preferences manager etc.

IBM heeft net lotus notes een jaar vroeger op de markt kunnen brengen dan verwacht grotendeels dankzij het gebruik van eclipse rich client platform.

Plugins kunnen trouwens eenvoudig van een web based repository geinstalleerd worden, een herstart is vaak nodig, maar de enige menselijke tussenkomst daar is ff op [ok] duwen om je hele workbench te herstarten.

K'heb recent enkele grotere applicaties gebouwd in een record tempo dankzij het Eclipse framework, mijn laatste 3 professionele opdrachten waren eclipse RCP en heb nu ook een hobby projectje lopen. Des te meer pijn doet het nu om terug asp 3 te programmeren in visual interdev :X

Het is iig een stevige aanrader, misschien dat er ook wel OSGI implementaties beschikbaar zijn voor C++ maar met dat alleen heb je natuurlijk nog geen constructies voor je gui etc enkel een steengoed "plugin" systeem.

If it ain't broken it doesn't have enough features


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12-02 13:44
Vanuit de gebruiker gezien zou het heel logisch zijn als er een nieuwe plugin op het systeem beschikbaar is dat je de vraag krijgt of je deze wilt gebruiken. In dat schermpje zie je tevens de nieuwe button welke je simpelweg ergens je interface in kan slepen. Eventueel kan je hier ook een standaardpositie voor voorzien. Bijvoorbeeld dat je standaard de button "print etiket" rechts naar de button "print" zet.

Verwijderd

Volgens mij zoek je dit: http://www.openlaszlo.org/ of het komt dicht in de buurt. Installeren is een crime overigens.
Pagina: 1