Kripke und Co...

PG A4
Verfügbare Informationen zu "Kripke und Co..."

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Lobo - Norman - Alina - Steve - Björn
  • Forum: PG A4
  • Forenbeschreibung: Forum zur Projektgruppe A4 07/08
  • aus dem Unterforum: Allgemeines
  • Antworten: 24
  • Forum gestartet am: Montag 02.04.2007
  • Sprache: deutsch
  • Link zum Originaltopic: Kripke und Co...
  • Letzte Antwort: vor 16 Jahren, 7 Monaten, 28 Tagen, 8 Stunden, 5 Minuten
  • Alle Beiträge und Antworten zu "Kripke und Co..."

    Re: Kripke und Co...

    Lobo - 14.05.2007, 14:07

    Kripke und Co...
    Morgen (Dienstag) wollen wir zusammenstellen, wie Kripke-Strukturen (von neu bis zur Arbeit mit ihnen) zu handhaben sind...

    Welche Funktionen, Eigenschaften, Optionen brauchen wir?

    An welcher Stelle kommen sie in die GUI??



    Re: Kripke und Co...

    Lobo - 14.05.2007, 18:02


    Ein Diskussionspunkt war heute, wie wir einen neuen Kripkeautomaten anlegen. Wir haben uns zwar überlegt, ob ein Dialogfenster wirklich Sinn macht und uns eher dagegen entschieden. Im Nachhinein finde ich das aber nicht so sinnlos.

    Wir müssten einen Dialog mit mehreren Schritten aufbauen, so wie es auch in NetBeans geschehen ist. Dann würde sich über New -> Kripke Structure ein Fenster öffnen:

    New Kripke Structure

    Links würde ich auch eine Navigatorleiste aufbauen:

    Steps
    (1) Select Properties
    (2) Select States
    (3) Select Transitions
    (4) Name and Location

    Im rechten Teil des Fensters hätten wir dann die entsprechenden Panels, eine Beschreibung und eine Buttonleiste mit Back, Next, Finish, Cancel und Help.

    Select Properties:
    Wir müssten – ähnlich dem alten Triple-A – eine Listbox setzen, sowie Buttons für Add, Delete und Clear. Über ein Editfeld kann man dann die Namen der Zustände setzen.

    Select States:
    Hier wären zwei Listboxen sinnvoll. Die erste funzt genauso wie unter ‚Select Properties’ und setzt die einzelnen Zustände. In der zweiten Liste müssten alle Eigenschaften aufgelistet sein, die man einzeln durch einen Mausklick an- oder wieder abwählen kann. Ob man die gewählten Items blau hinterlegt oder ein Häkchen hinzunimmt, wäre noch zu überlegen.
    Außerdem müssten Startzustände markiert werden.

    Select Transitions:
    Vielleicht wäre ein ähnlicher Aufbau sinnvoll, wie unter ‚Select States’. Statt hier die Eigenschaften auszuwählen, müssten nur die Folgezustände benannt werden.
    Ab hier kann man schon auf Finish klicken – der Automat würde dann nen Namen wie „New Kripke 1“ kriegen.

    Name and Location:
    Hier ist die Frage, ob wir von vornerein hergehen, und die Daten permanent abspeichern. Dann wäre hier die Möglichkeit, einen Speicherplatz anzugeben.
    Desweiteren sollte man den Automaten eindeutig bezeichnen.

    Erst, wenn der Dialog beendet wird, sollte der erste Aufruf an die Automatenklasse weitergegeben werden. Weder sollte dieser vorher in Stücken Informationen erhalten, noch die GUI mitsteuern. Ich denke, ein Aufruf mit entsprechenden Parametern (bzw. ein Aufrufblock) sollte reichen.



    Re: Kripke und Co...

    Lobo - 14.05.2007, 18:20


    Bleibt die Frage, wie stellen wir das ganze optisch dar?
    Ziel ist es ja, in dem Fenster ein Panel mit ggf mehreren Tabs zu haben, in dem gearbeitet wird. Die Kripkestruktur könnte auf der einen Seite als reiner „Fließtext“ wie

    AP = {..., ... , ....}
    M = (S, S0, R, L)
    S = { … } ….,

    auf der anderen Seite als Graph dargestellt werden. Man könnte für beide Darstellungen ein gesondertes Tab wählen.

    Funktionen und neue Operationen für die Kripke-Struktur könnte man in einem neuen Menüpunkt und durch geeignete Icons darstellen. Über die Ein- und Ausgaben müsste an entsprechender Stelle diskutiert werden.
    Hier müssten auch Funktionen, wie Neuer Zustand, neue Eigenschaft, neue Transition etc... realisiert werden.

    Im Inspektor müssten wir die Eigenschaften, Zuordnungen und Transitionen verwalten können.



    Re: Kripke und Co...

    Lobo - 17.05.2007, 17:44


    Zu allererst: JA, ich werde die Sachen noch richtig benennen.
    und: JA, ich kommentiere die Funktionen richtig aus...

    Hier ein paar Sources zur Arbeit mit jList-Objekten:

    GANZ WICHTIG:

    import java.util.Vector;


    für das Hinzufügen eines Elementes in die jList:

    String text = jTextField1.getText();
    Vector<Object> vector = new Vector<Object>();
    for(int i=0; i < jList1.getModel().getSize(); i++){
    vector.add(jList1.getModel().getElementAt(i));
    }
    vector.add(text);
    jList1.setListData(vector);


    für das Löschen eines Elements aus der Liste:

    Vector<Object> vector = new Vector<Object>();
    for(int i=0; i < jList1.getModel().getSize(); i++){
    vector.add(jList1.getModel().getElementAt(i));
    }
    vector.remove(jList1.getSelectedIndex());
    jList1.setListData(vector);


    für das Löschen aller Listeneinträge:

    Vector<Object> vector = new Vector<Object>();
    jList1.setListData(vector);



    Re: Kripke und Co...

    Lobo - 17.05.2007, 18:33


    HILFE!!!!

    Kaum hab ich mal nen Geistesblitz und bastel mir die JLists zusammen, dann steh ich schon vor der nächsten Wand und knall mit dem Kopf davor:

    Wie kann man ein Frame aus einem anderen heraus sichtbar schalten...
    Okay, setVisible(True) muss irgendwie aufgerufen werden....

    Folgende Situation (noch mit besch**** Namen)

    Das Package heißt myFrame
    im Package sind editPropFrame und testFrame

    aus Testframe will ich editPropFrame sichtbar schalten...

    Hab Sachen versucht wie
    editPropFrame.getFrames()....
    editPropFrames.setVisible(True);

    etc...

    Kann mir einer sagen, was ich falsch mache???



    Re: Kripke und Co...

    Norman - 17.05.2007, 20:03


    Woher kennst du das mit den Spitzenklammern!

    Da gab es in Java 1.2 doch noch garnicht ;o)

    *pah* neumodischer Kram....



    Re: Kripke und Co...

    Alina - 17.05.2007, 20:18


    ich bastle noch an Sequenzdiagrammen für morgen, aber hier gibt es auch super Hilfen
    http://jgoodies.com/freeware/formsdemo/index.html

    ab morgen nur noch PG (nach ü-bau)



    Re: Kripke und Co...

    Lobo - 17.05.2007, 21:55


    Könnte leider nur bis etwa zwei, oder so...
    hab ja meine aufgaben und sehe zu, dass ich das auf die reihe kriege.

    Gutes Gelingen mit Ü-bau!!!!

    Vorschläge für Treffen in der nächsten Woche?
    Montag, 12 Uhr
    Ab wann hatten wir nochmal Dienstags den Raum? *g*



    Re: Kripke und Co...

    Lobo - 17.05.2007, 21:57


    Norman hat folgendes geschrieben: Woher kennst du das mit den Spitzenklammern!

    Da gab es in Java 1.2 doch noch garnicht ;o)

    *pah* neumodischer Kram....

    So ungefähr hab ich mir das vorgestellt. Nur haute es nicht ganz so hin, also
    :mrgreen: www.google.de



    Re: Kripke und Co...

    Alina - 18.05.2007, 00:00


    Dienstags von 14 bis 16 Uhr.

    Da links <---, das Bild. Sieht es einer SUN-Fee ähnlich? :wink:



    Re: Kripke und Co...

    Lobo - 18.05.2007, 10:39


    eher Betty Boo



    Re: Kripke und Co...

    Lobo - 20.05.2007, 12:00


    ICH HASSE JAVA :D

    zwei Stunden für fünf Zeilen Programmcode, *g*

    hatte dran zu knacken, wie ich von frame1 aus das TextField in frame2 setzen kann...

    Falls ich nicht der einzige bin, der damit zu kämpfen hat:

    1.) In frame2 werden set- und get-Methoden benötigt, ganz einfach, aber bitte non-static:

    public void setEditText(String text){
    TextField.setTest(text);
    }

    public String getText(){
    return TextField.getText();
    }


    2.) In Frame1 habe ich die ButtonActionPerformed benutzt. Da diese static ist, muss eine Instanz vom Fenster erschaffen werden. In meinem Code wird sowohl Frame2 geöffnet, als auch der Text gesetzt:

    private void ButtonActionPerformed(java.awt.event.ActionEvent evt){
    String text = jList1.getSelectValue().toString();
    Frame2 Frame = new Frame2();
    Frame.setVisible(True);
    Frame.setEditText(text);
    }



    Re: Kripke und Co...

    Steve - 20.05.2007, 19:33


    Lobo hat folgendes geschrieben: ICH HASSE JAVA :D

    Guckst du hier und hinterlässt einen Erfahrungsbericht 8)



    Re: Kripke und Co...

    Lobo - 23.05.2007, 12:08


    20 Stunden später.....


    Betrifft leider nur den ersten von vier Schritten...

    Aber


    ES LÄUFT!!!!



    Re: Kripke und Co...

    Lobo - 28.05.2007, 10:29


    Bevor ich jetzt nochmal alles durchgehe... Wer weiß bescheid?

    In den Automatenklassen gibt es doch sicherlich die Möglichkeit, ein Kripke-Objekt zu erstellen, oder? Gibt es auch Konstruktoren, um Zustände mit Eigenschaften bzw. Transitionen zu bilden?

    Hintergrund: Gehe ja im New-Dialog Schritt für Schritt die Struktur durch. Es wäre einfacher, die Daten zu verwalten, wenn ich gleich mit dem zweiten Schritt (Erstellen und Benennen von Zuständen, Zuordnung der atomaren Eigenschaften) eine Liste (o.ä.) von Zustandsobjekten erstelle.

    Sind derartige Methoden schon vorhanden, oder müsste ich mir ne Datenstruktur erstellen?



    Re: Kripke und Co...

    Björn - 28.05.2007, 16:47


    Zitat: Bevor ich jetzt nochmal alles durchgehe... Wer weiß bescheid?

    In den Automatenklassen gibt es doch sicherlich die Möglichkeit, ein Kripke-Objekt zu erstellen, oder? Gibt es auch Konstruktoren, um Zustände mit Eigenschaften bzw. Transitionen zu bilden?

    Hintergrund: Gehe ja im New-Dialog Schritt für Schritt die Struktur durch. Es wäre einfacher, die Daten zu verwalten, wenn ich gleich mit dem zweiten Schritt (Erstellen und Benennen von Zuständen, Zuordnung der atomaren Eigenschaften) eine Liste (o.ä.) von Zustandsobjekten erstelle.

    Sind derartige Methoden schon vorhanden, oder müsste ich mir ne Datenstruktur erstellen?

    Es sind Methoden in der Automaten Klasse zum Zustand hinzufügen, Transtition hinzufügen etc. vorhanden. Ein Paar Methoden dazu sind auch in der Klasse KripkeModel vorhanden . Du solltest aber natürlich einen Konstruktor des KripkeModels benutzen. Egal welchen Konstruktor du benutzt, am Anfang ist der Automat leer, mußt also Transitionen etc. mit den add Methode(n) hinzufügen.
    Da Ich nicht genau weiß welche Methoden du davon brauchst guckst du am besten selbst nach welche Methoden du davon benutzen willst.
    Für die Atomaren Eigenschaften wirst du Klasse automaton.symbol.Asssignmet brauchen.

    Falls du temporäre Listen, Sets, Maps oder ähnliches brauchst, benutze das Collection Framework von java, ist einfacher als alles selbst zu Programmieren... Sei aber vorsichtig mit Zuständen, ohne Owner sind die nicht wirklich vergleichbar.



    Re: Kripke und Co...

    Lobo - 01.06.2007, 13:51


    Tja... Werde wohl die nächste Woche genug zu tun haben...
    Wollte auf meinem Notebook ein update machen und dann die Änderungen übersenden und - mit dem Frameeditor kam ich nicht mehr in meine Klasse rein... Es lief nichts... Die letzten Änderungen kann ich aber auschecken, und es gibt keine Probleme....

    Werde dann wohl meine kleineren Änderungen der letzten sieben Tage nochmal einbauen müssen...

    :twisted:



    Re: Kripke und Co...

    Lobo - 01.06.2007, 16:59


    Sch**ß Notebook...

    Nachdem ich über Umwege NetBeans5.5 und Java1.6 auf dem großen Rechner installiert habe, stand fest: alles vom CVS läuft *grübel*

    Auf dem kleinen allerdings ist nichts mehr von den Quad-A-Sachen ausführbar... Kein Plan warum.

    Werde meine letzten Änderungen so schnell wie möglich herstellen, hier vor allem @Kathi: sorry, dass ich dir das "Beenden" des New-Dialogs heute noch nicht bieten kann. Es hat einfach zeitlich nicht gepasst. Werde es so schnell wie möglich einrichten.

    (Für alle Bastler: es gab ne Fehlermeldung wie "Form File Format Is Not Recognized.... - und der Formeditor ließ sich nicht öffnen...)



    Re: Kripke und Co...

    Lobo - 02.06.2007, 10:16


    Hallo Kathi

    Hab die versprochenen Änderungen vorgenommen:

    Unter GUI_A4UI
    hier ist ja die Aufruffunktion für das NewPopupAutomataUI. In diese habe ich den Aufruf abgeändert, um die Event-Listener manuell programmieren zu können (war nötig). Hab dann mal gleich auch das Enabled/Disabled-Spielchen gesetzt. Hier(!!!) findest du auch den Bereich, in dem das Prog reagieren wird, um eine neue Kripke aufzubauen (bisher nur ohne Funktion, du wolltest ja was mit dem Browser machen).

    Außerdem habe ich beide Listener für das NewPopup-Fenster zusammengelegt. Es sind keine zwei Funktionen nötig.

    NewPopupAutomatonUI
    habe die beiden Listener rausgenommen und ne neue Variable eingeführt, die später noch nötig sein wird.


    Wenn ihr den Browser weiter programmiert, müsst ihr folgende "Dummy"-Schritte machen, um eine neue Kripke-Struktur zu erschaffen:
    1.) Klar, New-Dialog öffnen
    2.) Klar, Kripke öffnen
    3.) Egal wie: Kripke schließen
    4.) New-Dialog NICHT über den Cancel-Button schließen.


    Noch was allgemeines

    Wir werden ne Variablen-Klasse für den neuen Automaten bauen müssen, da wir folgendes "Problem" haben:

    GUI ruft NEW auf, verwaltet die Event-Listener von NEW
    >>> NEW ruft KRIPKE auf, verwaltet die Event-Listener von KRIPKE
    >>>>>> KRIPKE bastelt Struktur

    (klarerweise)

    Ich fände es recht unnötig kompliziert, wenn wir der GUI auch noch die Eventlistener der Kripke-Struktur aufbauen. Dann hätten wir zuviel Code in einer Klasse, zuviele interne Strukturen und nur eine zwei-Schichten-Klassenhierarchie: die GUI und alles andere....

    Daher wäre mein Vorschlag:
    GUI ruft NEW auf, verwaltet Event Listener
    >>> NEW ruft Kripke auf, schafft Variablenobjekt, verwaltet Event-Listener von Kripke, Variablenübergabe
    >>>>>> KRIPKE bastelt rum, setzt Variablen, wird beendet
    >>> NEW holt sich die Variablen, beendet automatisch
    GUI erschafft, wenn nicht abgebrochen, eine Kripke-Struktur, die Objekte etc... aus einer Variablenabfrage heraus

    Im Prinzip ist es ja ein (un)endlich weites outsourcing... Solange, bis etwas handfestes gemacht wurde.



    Re: Kripke und Co...

    Lobo - 03.06.2007, 11:27


    Hab die JCheckBoxList in den Griff gekriegt.

    Im Prinzip ist das Hinzufügen ganz einfach.
    - Vektor erstellen
    - Objekt dem Vektor hinzufügen
    - jCheckBoxList.setModel(vector)

    Muss jetzt nur noch die Sachen von letzter Woche wieder aufbauen und die Box hinzufügen. Wo sollen wir eigentlich "neue" Objekte wie die CheckBoxList in die Codes einfügen? Das wäre nochmal spannend.

    Vielleicht net.sf.triplea.components.JCheckBoxList ?????



    Re: Kripke und Co...

    Alina - 18.08.2007, 13:20


    ich hab alles hochgeladen.

    @Andre, Norman
    Select Transition ist bei mir nicht sichtbar. Was nun? Es scheint nicht an dem Layout zu liegen.
    Vielleicht wäre das eine Lösung. Auf jeden Fall für die anderen Automatentypen.
    http://java.sun.com/developer/technicalArticles/GUI/swing/wizard/



    Re: Kripke und Co...

    Alina - 27.08.2007, 22:11


    @Andre, Norman: Habt Ihr morgen kurz Zeit? Ich bin von 8-16 Uhr an der Uni. Nur zwischen 11 und 12 kann ich nicht. Wäre schon wichtig. SMS? Es geht zB. u.a. darum: wenn in enterPropertyList Eigenschaften eingetragen sind, funktioniert der NEXT-Button nicht, ABER was wichtiger wäre: um das erste eingetragene Element aus der Liste der Propertys in den Inspektor zu übertragen muss ich ein Objekt erzeugen:
    public Object getFirstElement(){
    return jListVector.firstElement();
    Das gleiche geht aber nicht für States, mit
    public Object getFirstElement(){
    return jStateListVector.firstElement(); den dieses Objekt existiert schon. Habt Ihr ne Lösung?



    Re: Kripke und Co...

    Lobo - 28.08.2007, 09:06


    Muss ich mir mal ansehen, bin aber leider heute nicht an der Uni...
    Mach mal ein Commit, damit ich im Laufe des Tages was machen kann... vielleicht finde ich ja das Problem.



    Re: Kripke und Co...

    Alina - 28.08.2007, 13:55


    ich hab da ne Idee. Ich probiere es heute Abend aus und melde mich dann



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum PG A4

    BOMMERHOLZ II - Themenübersicht - gepostet von Lobo am Mittwoch 19.09.2007
    Bommerholz - gepostet von Alina am Dienstag 17.07.2007



    Ähnliche Beiträge wie "Kripke und Co..."

    Kripke Control Classfile: - Lobo (Montag 11.06.2007)
    Kripke Control - Lobo (Montag 02.07.2007)