Trace: • Benutzerdefinierte Komponenten
Das JVx Enterprise Application Framework bietet den Vorteil eines Technologie unabhängigen User Interfaces. Für manche Aufgabenstellungen ist das jedoch nicht nötig und es kann ohne weiteres eine bestimmte Technologie eingesetzt werden wie z.B. klassisches Java Swing.
Da mit JVx bereits eine Swing Implementierung des User Interfaces vorliegt können Sie einerseits die Swing Komponenten von JVx direkt in Ihre Applikationen einbinden und andererseits können Sie beliebige Swing Komponenten in JVx integrieren oder einfach nur verwenden, ohne Anpassungs- oder Implementierungsaufwand.
Die Integrationsmöglichkeit beschränkt sich nicht nur auf Swing Komponenten. Auch z.B. SWT ist denkbar, sofern eine JVx Implementierung vorhanden ist.
Anhand eines kurzen Beispiels erläutern wir die Integration von Standard Swing Komponenten in das JVx Enterprise Application Framework.
Anwendungsbeispiel
Wir werden einen Chart von JFreeChart in eine bestehende JVx Applikation einbinden. Nachfolgend die integrierte Komponente:
Der Source Code für das Beispiel:
//create the chart DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("Germany", 29); dataset.setValue("Spain", 20); dataset.setValue("Austria", 51); JFreeChart chart = ChartFactory.createPieChart3D("JVx integration", dataset, true, true, false); PiePlot3D plot = (PiePlot3D) chart.getPlot(); plot.setStartAngle(290); plot.setDirection(Rotation.CLOCKWISE); plot.setForegroundAlpha(0.5f); ChartPanel chartPanel = new ChartPanel(chart); panDetails.setLayout(layout); panDetails.add(gpanDedails, layout.getConstraints(0, 0, -1, 0)); //ADD the chart as custom component panDetails.add(new UICustomComponent(chartPanel), layout.getConstraints(0, 1, -1, -1));
Mit einer einzigen Zeile Code
panDetails.add(new UICustomComponent(chartPanel), layout.getConstraints(0, 1, -1, -1));
wird jede beliebige Swing Komponente in JVx integriert. Dabei haben sie vollen Zugriff auf die JVx und Swing Komponenten.
Durch die Integration von Technologie abhängigen Komponenten, wie in unserem Beispiel, ist ein Einsatz mit anderen Technologien nicht mehr oder nur sehr eingeschränkt möglich (Swing Komponenten mit SWT zu verwenden wird nicht ohne weiteres funktionieren).
Mit JVx ist es jedoch ohne weiteres möglich eine Technologie unabhängige Implementierung von speziellen Komponenten bereitzustellen und diese in die Applikationen zu integrieren. Die jeweilige Technologie verwendet dann stets kompatible Komponenten.