Bij een project ben ik bezig met het maken van een beheerinterface. Deze interface beheert middels RPC-calls een in C++ geschreven server. De afhandeling van deze calls heb ik inmiddels voltooid. Echter bij het opzetten van de GUI heb ik wat vragen waar ik niet zelf dierct het antwoord op weet. Na lang zoeken in de documentatie en het lezen van howto's op internet leek het me handiger om een topic te starten.
Het idee is dat de beheerdersinterface uiteindelijk geladen wordt via Java web start. Indien geladen maakt deze applicatie verbinding met de server op basis van het IP-adres/hostnaam. De server wordt toegevoegd in een tweeview links en wanneer er op een van de nodes wordt geklikt moet er rechts informatie verschijnen (welke eerst van de server moet worden opgehaald). Zie het onderstaande screenshot voor een concept (het gaat puur om de lay-out, niet om de content):

Op dit moment is de TreeView opgebouwd uit DefaultMutableTreeNodes. Het centrale 'contentvak' is nu even een jInternalFrame maar dit moet nog worden aangepast. Het idee is dat als je links op een node klikt er rechts informatie over wordt getoond.
Er is een klasse genaamd server welke in een Vector wordt gestopt voor elke verbinding die wordt gelegd. De interface kan dus meerdere verbindingen tegelijk aan in principe. Binnen deze klasse wordt nu de verbinding onderhouden en het opbouwen van de DefaultMutableTreeNodes afgehandeld.
Echter nu is het volgens mij in Java het idee dat je geen DefaultMutableTreeNodes in zo'n treeview stopt maar zelf ge-extende klassen daarvan. Hiermee ben ik aan de slag geweest:
Echter loop ik vrij snel tegen een aantal praktische problemen op:
• Wanneer er op een node wordt geklikt in de treeview moet showPanel worden aangeroepen. Maar hoe krijg ik daar het beste bijv. de modulesNode terug (onderstaand is pseudo):
• Wie beheert wat? Moeeten de panels onderdeel zijn van de contentNodes, of moeten deze in een centrale Vector komen met een verwijzing naar een contentNode.
• Is de opzet met elke 'item' onderbrengen in een klasse juist of is het beter om 1 centrale controller te maken. Uiteindelijk is het wel de bedoeling om ook plugins mogelijk te maken.
Op dit moment gebruik ik sun-jdk-1.4.2.10 overigens.
Het idee is dat de beheerdersinterface uiteindelijk geladen wordt via Java web start. Indien geladen maakt deze applicatie verbinding met de server op basis van het IP-adres/hostnaam. De server wordt toegevoegd in een tweeview links en wanneer er op een van de nodes wordt geklikt moet er rechts informatie verschijnen (welke eerst van de server moet worden opgehaald). Zie het onderstaande screenshot voor een concept (het gaat puur om de lay-out, niet om de content):

Op dit moment is de TreeView opgebouwd uit DefaultMutableTreeNodes. Het centrale 'contentvak' is nu even een jInternalFrame maar dit moet nog worden aangepast. Het idee is dat als je links op een node klikt er rechts informatie over wordt getoond.
Er is een klasse genaamd server welke in een Vector wordt gestopt voor elke verbinding die wordt gelegd. De interface kan dus meerdere verbindingen tegelijk aan in principe. Binnen deze klasse wordt nu de verbinding onderhouden en het opbouwen van de DefaultMutableTreeNodes afgehandeld.
Echter nu is het volgens mij in Java het idee dat je geen DefaultMutableTreeNodes in zo'n treeview stopt maar zelf ge-extende klassen daarvan. Hiermee ben ik aan de slag geweest:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| interface contentNode { public void showPanel(); // aanroep voor bijwerken panel } class nodeBase extends DefaultMutableTreeNode { // centrale functies voor communicatie } class serverNode extends nodeBase implements contentNode { public void showPanel() { // afhandeling content } } class modulesNode extends nodeBase implements contentNode { public void showPanel() { // afhandeling content } } |
Echter loop ik vrij snel tegen een aantal praktische problemen op:
• Wanneer er op een node wordt geklikt in de treeview moet showPanel worden aangeroepen. Maar hoe krijg ik daar het beste bijv. de modulesNode terug (onderstaand is pseudo):
Java:
• Hoe kunnen de panels het beste worden ondergebracht. Een jInternalFrame lijkt me niet geschikt. Liefst heb ik dat er altijd maar 1 'contentpanel' tegelijk zichtbaar is.1
2
3
4
5
6
| public void mousePressed(MouseEvent e) { TreePath selPath = jTree1.getPathForLocation(e.getX(), e.getY()); nodeBase node; node = (doipNode)(selPath.getLastPathComponent()); node.showPanel(); } |
• Wie beheert wat? Moeeten de panels onderdeel zijn van de contentNodes, of moeten deze in een centrale Vector komen met een verwijzing naar een contentNode.
• Is de opzet met elke 'item' onderbrengen in een klasse juist of is het beter om 1 centrale controller te maken. Uiteindelijk is het wel de bedoeling om ook plugins mogelijk te maken.
Op dit moment gebruik ik sun-jdk-1.4.2.10 overigens.
Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!