Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Jnex Einführung Präsentationsunterlagen für die Softwareentwickler Schulung Dipl. El. Ing. ETH Marcel Baumann 2003.

Ähnliche Präsentationen


Präsentation zum Thema: "Jnex Einführung Präsentationsunterlagen für die Softwareentwickler Schulung Dipl. El. Ing. ETH Marcel Baumann 2003."—  Präsentation transkript:

1 jnex Einführung Präsentationsunterlagen für die Softwareentwickler Schulung Dipl. El. Ing. ETH Marcel Baumann 2003

2 jnex Einführung Nexirius GmbH www.nexirius.ch 2 Ziele des Kurses  Erlernen des Umgangs mit den wichtigsten Klassen von jnex  Anhand einfacher Beispiele Zusammenhänge verstehen  Sinn des Frameworks verstehen  Erfolgserlebnisse provozieren

3 jnex Einführung Nexirius GmbH www.nexirius.ch 3 Model View Controller Design Pattern (MVC)

4 jnex Einführung Nexirius GmbH www.nexirius.ch 4 Model View Controller bei jnex DataModel Viewable SimpleModelContainerModel ArrayModelStructModel DataViewer StructViewer SimpleViewer ArrayViewer DataModelMethod ButtonViewer 0..n 1 dataModelChangeValue setValue DataModelListener

5 jnex Einführung Nexirius GmbH www.nexirius.ch 5 Model View Controller // create a string model and initialize its value to "Hello World!" DataModel model = new StringModel("Hello World!"); // create a viewer for the model (produces a JLabel by default) DataViewer viewer = factory.createViewer(model, false); // create an editor for the same model (produces a JTextField by default) DataViewer editor = factory.createViewer(model, true); // access the Swing JComponents JComponent viewerComponent = viewer.getJComponent(); JComponent editorComponent = editor.getJComponent(); model.setText(“Test”); String value = model.getText();

6 jnex Einführung Nexirius GmbH www.nexirius.ch 6 Das Management ViewerMap ViewerMapEntry DataModelClass ViewerCreator DataLayout DefaultViewerMap 0..n ViewerFactory Erzeugt einen passenden Editor oder Viewer eines DataModel DataViewer createViewer(DataModel)

7 jnex Einführung Nexirius GmbH www.nexirius.ch 7 Properties (Mehrsprachigkeit) Number=Nr. LastName=Name FirstName=Vorname FirstName.tip=einer oder mehrere… Sex=Geschlecht Telephone=Telefonnummer Country=Land Department=Abteilung Birthdate=Geburtstag File=Datei Exit=Beenden Cancel=Abbrechen ABCApplication.properties

8 jnex Einführung Nexirius GmbH www.nexirius.ch 8 Hello World! ViewerFactory factory = ViewerFactory.getDefaultInstance("HelloWorld"); DataModel model = new StringModel("Hello World!"); DataModelCommand resetCommand = new ResetCommand(); model.appendMethod(resetCommand); DataViewer viewer = factory.createViewer(model, false); DataViewer editor = factory.createViewer(model, true); DataViewer resetViewer = factory.createViewer(resetCommand, true); JComponent viewerComponent = viewer.getJComponent(); JComponent editorComponent = editor.getJComponent(); JComponent resetComponent = resetViewer.getJComponent();

9 jnex Einführung Nexirius GmbH www.nexirius.ch 9 Verschachtelte Datenmodelle (StructModel)  Die Klasse StructModel ist ein Behälter für andere DataModel  Die Methode append(DataModel) fügt ein Member (Kind) in die Struktur ein. Kinder von Strukturen sollten immer einen eindeutigen Feldnamen haben.  Die Kinder können per Feldname ( getChild(String FieldName) ) angesprochen werden können  Grosskinder können mit getChild(„Kind;Grosskind“) erreicht werden.

10 jnex Einführung Nexirius GmbH www.nexirius.ch 10 DataModelListener einrichten  Jedes DataModel sendet DataModelEvent s, falls sich sein Wert ändert  Die Events werden in einer verschachtelten Struktur jeweils zum Vater weitergereicht  Es gibt eine vorgefertigte Klasse DataModelAdaptor, die alle Listener Funktionen als leere Methoden enthält

11 jnex Einführung Nexirius GmbH www.nexirius.ch 11 public class DataModelAdaptor implements DataModelEditListener { public void dataModelChangeValue(DataModelEvent event) { } public void dataModelChangeStructure(DataModelEvent event) { } public void dataModelGrabFocus(DataModelEvent event) { } public void dataModelEdit(DataModelEvent event) { }

12 jnex Einführung Nexirius GmbH www.nexirius.ch 12 Calculator

13 jnex Einführung Nexirius GmbH www.nexirius.ch 13 Fixe Layout Definition für Strukturen  Eine Struktur wird per default mit einem StructEditor dargestellt. Der StructEditor ist in der Lage, irgend ein StructModel so darzustellen, dass alle Felder des Models erfasst werden können.  Mit einem StructureLayoutItem kann die Position, die Grösse und das Aussehen der einzelnen Mitglieder der Struktur definiert werden.  Ein StructureLayoutItem enthält StructureFieldLayout Einträge, die mit der Methode append(DefaultLayoutItem) eingetragen werden. Jeder Eintrag erwirkt die Darstellung eines Mitglieds (Kind) des StructModel

14 jnex Einführung Nexirius GmbH www.nexirius.ch 14 childx, y, w, h import com.nexirius.framework.layout.*; import com.nexirius.framework.dataviewer.*; public class CalculatorLayout extends StructureLayoutItem { public CalculatorLayout() { append(new StructureFieldLayout(„Operator1", 0, 0, 50, 30, null, null, false, null, null)); append(new StructureFieldLayout(„Operand1", 60, 0, 150, 30, null, null, false, null, null)); append(new StructureFieldLayout(„Operator2", 0, 40, 50, 30, null, null, false, null, null)); append(new StructureFieldLayout(„Operand2", 60, 40, 150, 30, null, null, false, null, null)); //… } Structure Layout Item

15 jnex Einführung Nexirius GmbH www.nexirius.ch 15 int width = 300; int height = 150; int woperator = 100; int gap = 5; int woperand = width - 3 * gap - woperator; int hline = (height - 6 * gap) / 5; int x = gap; int y = gap; append(new StructureFieldLayout("Reset", x, y, woperator, hline, …)); x += woperator + gap; append(new StructureFieldLayout("Operand1", x, y, woperand, hline, …)); x = gap; y += hline + gap; append(new StructureFieldLayout("Operator1", x, y, woperator, hline, …)); x += woperator + gap; append(new StructureFieldLayout("Operand2", x, y, woperand, hline, …)); Layout Positionen und Grössen berechnen

16 jnex Einführung Nexirius GmbH www.nexirius.ch 16 Application  Eine Applikation besteht aus einem JFrame Fenster  In diesem Fenster gibt es am oberen Rand ein Pulldown Menü und gleich darunter ein Toolbar (Symbolleiste). In der Mitte befindet sich der applikationsspezifische Hauptbereich (Main Panel) und am unteren Rand befindet sich eine Statuszeile Pulldown Menü Toolbar Main Panel Status Line

17 jnex Einführung Nexirius GmbH www.nexirius.ch 17 Hello World Application  Definition der Methoden public HelloWorldApplication(String argv[]) { super(argv); } public DataModel getApplicationModel() { return mainModel; } public String getApplicationName() { return "HelloWorldApplication"; } public void preInit() { //prepare main model } public void init() { // create JComponents in main panel // use -> getMainPanel() // use -> getFactory() }

18 jnex Einführung Nexirius GmbH www.nexirius.ch 18 Viewer Creator Map  Die ViewerCreatorMap verknüpft Datenmodelle mit ViewerCreator und mit DefaultLayoutItem Instanzen.  Es gibt immer die Möglichkeit für ein Model einen ViewerCreator, der Editoren erzeugt und einen ViewerCreator, der Viewer erzeugt zu registrieren. Das gleiche gilt für das zugeordnete Layout.  Die vordefinierten Modelltypen sind bereits mit ViewerCreator Instanzen verknüpft! ViewerCreatorMap map = getFactory().getViewerCreatorMap(); map.register(MainModel.class, new MainLayout(), true); map.register(MemberModel.class, new TabbedEditorCreator()); map.register(MemberModel.class, new MemberLayout(), true); map.register(PersonModel.class, new PersonLayout(), true); map.register(AddressModel.class, new AddressEditorLayout(), true); map.register(AddressModel.class, new AddressViewerLayout(), false);

19 jnex Einführung Nexirius GmbH www.nexirius.ch 19 Array Model  Ein ArrayModel besteht aus einer beliebigen Anzahl Einträgen, wobei die Einträge vom gleichen Typ sind und per Index angesprochen werden.  Ein ArrayModel wirft ein Value Change Event, wenn sich seine Dimension ändert.  Ein ArrayModel wird per default als Tabelle dargestellt

20 jnex Einführung Nexirius GmbH www.nexirius.ch 20 Der Ablauf eines Popup Fensters DataModel original; DataModel kopie; kopie = original.duplicate(); createViewer(kopie); original.dropData(copy.dragData()); return true; return false;


Herunterladen ppt "Jnex Einführung Präsentationsunterlagen für die Softwareentwickler Schulung Dipl. El. Ing. ETH Marcel Baumann 2003."

Ähnliche Präsentationen


Google-Anzeigen