SR-JRC | ein Framework für Java-Richclient-Anwendungen |
| Entitätseditor erstellen Ein Editor, bzw. die Detailansicht ist meist eine Fenster, welches sich erst auf spezielle Benutzeraktion bei der Übersicht öffnet (z.B. Doppelklick mit der Maus, oder Druck auf ein Toolbar-Symbol, o.ä.). Dafür ist die Klasse In besonderen Fällen kann es auch sinnvoll sein, die Detailansicht ständig anzuzeigen. Dafür ist dann die Klasse Fangen wir also mit unserer Detailansicht für Adressen an: public class AddressesDetails extends AbstractDetailsView<Addresses> { private static final long serialVersionUID = 1L; public AddressesDetails(String id, Addresses instance) { super(id, instance); } @Override public JComponent createView() { ... } } Das ist "alles" - für eine einfache Detailansicht. Die Klasse Die meiste Arbeit einer Detailansicht steckt in der Ausarbeitung des Formulars und somit in der Funktion Ich habe festgestellt, dass es sehr hilfreich ist, kleine Skizzen auf Papier zu machen und sich so schon Gedanken über das Aussehen zu machen. Ich will jetzt hier keine komplette Maske runter beten, sondern nur aufs Prinzip eingehen. FormLayout layout = new FormLayout("..."); PanelBuilder builder = new PanelBuilder(layout); builder.setDefaultDialogBorder(); CellConstraints cc = new CellConstraints(); return builder.getPanel(); Der Kernpunkt ist das Eine Erweiterung von SRJRCFrames besteht darin, die Texte auszulagern. Der Prompt für ein Eingabefeld wird z.B. so angelegt: builder.addLabel(msgSource.getMessage("Addresses." + Addresses.FLD_CITY, null, "Addresses." + Addresses.FLD_CITY, null), cc.xy(1, 1)); if (msgSource == null) msgSource = ApplicationServiceProvider.getService( MessageSource.class); if (componentFactory == null) componentFactory = ApplicationServiceProvider.getService( FormComponentFactory.class); Von der Superklasse JTextField tCity = componentFactory.createTextField( getPresentationModel(). getBufferedModel(Addresses.FLD_CITY)); builder.add(tCity, cc.xyw(3, 1, 5)); Ein Eingabefeld kann sich auch über mehrere Zellen erstrecken. Dafür sind die |