EP1116143A1 - Method for determining a graphic structure of a technical system and set and configurations for determining a graph structure - Google Patents

Method for determining a graphic structure of a technical system and set and configurations for determining a graph structure

Info

Publication number
EP1116143A1
EP1116143A1 EP99953666A EP99953666A EP1116143A1 EP 1116143 A1 EP1116143 A1 EP 1116143A1 EP 99953666 A EP99953666 A EP 99953666A EP 99953666 A EP99953666 A EP 99953666A EP 1116143 A1 EP1116143 A1 EP 1116143A1
Authority
EP
European Patent Office
Prior art keywords
token
graph
file
graph structure
technical system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP99953666A
Other languages
German (de)
French (fr)
Inventor
Erwin Thurner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Publication of EP1116143A1 publication Critical patent/EP1116143A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/12Symbolic schematics

Definitions

  • Elements of a graphene structure in the context of a circuit simulation are symbols which symbolize electronic components, for example a resistor, a capacitor, an inductance, a transistor, an operational amplifier or other electronic components composed of these elements.
  • V finite, not empty set
  • E e e E denote edges of graph G.
  • the nodes and edges of the graph are linked by an incidence function ⁇ , which is formed according to the following rule:
  • nodes and edges can be provided in an editor program for describing a technical system.
  • nodes and edges in an editor program to which application-dependent semantics are assigned are referred to as elements of the graph.
  • a node element of a graph is, for example, a symbol in the editor program from [1], which symbolizes an electronic component of the electronic circuit.
  • the edges can be used to describe weighted connections between the individual elements.
  • the respective nodes and edges can be assigned a weight, a value specification or any text for information (textual information).
  • a Petri network is preferably used for the analysis and for the design of a regulation or a control of a technical system, generally for describing a system behavior of a technical system.
  • a graph which is shown in the form of a Petri network, has a point S or a transition T as elements.
  • a general overview of a Petri net and its basic elements can be found in [3].
  • a Petri net is generally a triple
  • Knot set consists of S and T) (iv) F ⁇ z (SxT) s (TxS) river relation
  • a disadvantage of the known methods and arrangements is in particular that, depending on the application, only elements of a graph intended for a specific application are provided for determining the graphic structure of a technical system.
  • the editor program from [1] only a selection can be made from elements for describing an electronic circuit, and with the editor program from [2], only a selection from elements to describe a Petri network.
  • the invention is therefore based on the problem of specifying a method for determining a graphic structure of a technical system and an arrangement and a set of several arrangements for determining a graph structure, which has improved flexibility compared to the known methods and arrangements.
  • a method for determining a graphical structure of a technical system has the following steps: a) a graph structure file is selected from a set of several different graph structure files, each being specified in a graph structure file, which elements can be selected for their representation in order to graphically describe the technical system in its structure, b) elements are selected in such a way that a technical system is described with the selected elements, and c) the elements are Program shown in which the selected graph structure file has been integrated, which determines the graphic structure of the technical system.
  • An arrangement for determining a graph structure has the following features: a) a memory in which a number of different graph structure files are stored, a graph structure file specifying which elements are selected for their representation can be used to form a graph, b) a selection unit with which a graph structure file can be selected from the set of graph structure files, c) a processor which is set up such that an editor -Program is executable with which editor program can be determined using a graph structure file selected from the set of graph structure files, a graph with elements of the selected graph structure file, whereby the graph structure is determined , and d) a display component coupled to the editor program, with which the specific graph structure can be displayed.
  • a set of several arrangements for determining a graph structure has: a) a first arrangement which has a memory in which a number of several different graph structure files are stored, a graph structure file specifying which elements can be selected to represent them by one To form graphs, and b) a second arrangement coupled to the first arrangement and having the following components:
  • Set of graph structure files selected graph structure file a graph can be determined with elements of the selected graph structure file, which determines the graph structure,
  • a display component coupled with the editor program, with which the specific graph structure can be displayed.
  • the invention provides a method which is very flexible compared to the known methods and arrangements and a very flexible arrangement for determining a graphic structure which can be quickly and easily adapted to new application scenarios or to existing application scenarios.
  • the technical system is preferably an electronic circuit or a technical system.
  • the elements are preferably graph elements of a graph that describe the technical system.
  • the specific graphic structure of the technical system is checked for predetermined structure rules. In this way it is possible to check a structure of the technical system determined by a user for predetermined structure rules, thereby ensuring that the structural rules for the respective technical system are adhered to in its graphic structure.
  • Figure 1 is a sketch of an arrangement according to a first embodiment
  • FIG. 2 shows a sketch of a display component with a graphic structure with elements of a petri
  • FIG. 3 shows a sketch of a display component with a graphic structure with elements that describe an electronic circuit
  • FIG. 4 shows a flow chart in which the method steps of the method according to an exemplary embodiment are shown
  • FIG. 5 shows a set of several arrangements which, according to a second exemplary embodiment, are coupled to one another via a communication network.
  • FIG. 1 shows an arrangement 100 with a set 101 of several different graphic structure files 102, 103, 104,
  • Each graphic structure file 102, 103, 104, 105 is designed as a dynamically linkable file (dynamic link library).
  • a graphic structure file 102, 103, 104, 105 is selected by a user 106 via a selection component 108 (keyboard and / or computer mouse) connected to an editor program 107.
  • a selection component 108 keyboard and / or computer mouse
  • the selected graphic structure file in this exemplary embodiment a first graphic structure file 103, is dynamically integrated into the editor program 107.
  • the user 106 on a screen 110 After integration into the editor program 107, the user 106 on a screen 110 has a set 111 of selectable elements 112, 113, 114, which are specified in the first graphic structure file 103, via a display component 109 connected to the editor program 107 are shown as selectable elements for determining another graph described. Furthermore, in this exemplary embodiment, according to the first graphic structure file 103, a first check program 115 and a second check program 116 are integrated in the editor program 107 and are made available to the user 106 for selection.
  • Each graphic structure file 102, 103, 104, 105 each has a number of selectable elements for the respective type of graph, each with a graphic structure file provided. see is for a kind of a graph. Furthermore, each graphic structure file 102, 103, 104, 105 can each contain a special check program which is integrated with the respective graphic structure file 102, 103, 104, 105.
  • elements of the graph are selected by the user 106 and connected to one another, so that a graph is determined which is stored in a memory 118 in the form of a predetermined intermediate language 117.
  • the user 106 has stored several structures 119, 120, 121, 122, 123 for describing different graphs for the type of graph specified by the first graphics file 103.
  • the first graphic structure file 103 provides elements which enable a graph in the form of a Petri network 201 (see FIG. 2).
  • FIG. 2 shows the display component 200, which is shown to the user 106 in the form of a screen surface.
  • the screen surface 200 has a menu bar 202 with different selectable options ("File”, “Edit”, “Object”, “View”, “Tools”, “Settings”, “Help”).
  • menu items are made available to the user via individual, selectable elements by selecting an element directly.
  • a processing bar 204 is also shown with selectable options for determining the graph. In the first graphic structure file 103, this is a first selection element
  • a selection and processing of objects displayed on the screen is possible.
  • the selection and processing of specific elements for a Petri network 201 is made available to the user 106 via a set 206 of further selection elements, which are explained in more detail below.
  • a second selection element 207 is described by an empty rectangle and symbolizes a time-bound transit.
  • a third selection element 208 symbolizes a timeless transition, which are shown as selected transition elements 220, 221 and 222 in the petri network 201.
  • a fourth selection element 209 symbolizes an edge, which in this exemplary embodiment is a directed edge.
  • a fifth selection element 210 symbolizes a forbidden edge designated according to the structure rules of a petri net 201.
  • a sixth selection element 211 symbolizes a position, wherein a position element 223, 224, 225, 226 is shown in each case in the petri network 201.
  • the location elements 223, 224, 225 and 226 are connected to the transition elements 220, 221, 222 via edges 227, 228, 229, 230, 231 and 232.
  • a seventh selection element 212 symbolizes the possibility of combining a combination of several elements of the Petri network into one overall element.
  • An eighth selection element 213 symbolizes an input of the petri network 201 and a ninth selection element 214 symbolizes an output of a petri network 201.
  • Textual information 251, 252, 253, 254, 255, 256, 257, 258, 259, 260 and 261 are assigned to the edges and the individual nodes, that is to say the elements of the Petri network 201. net. In this way it is possible to assign an additional textual description to the individual elements.
  • a second graphic structure file 104 is integrated into the editor program 107, the second graphic structure file 104 providing elements of an electronic circuit and thus a graph of an electronic circuit, the result is one shown in FIG Screen surface with a set of selection elements set up for the circuit simulation.
  • a tenth selection element 302 which symbolizes an electronic resistance
  • An eleventh selection element 303 which symbolizes an electronic capacitor
  • a twelfth selection element 304 which symbolizes an inductance
  • a thirteenth selection element 305 symbolizing a transistor
  • a fifteenth selection element 307 symbolizing an undirected edge
  • An electronic circuit 110 is determined by the user 106 and in this exemplary embodiment has a current source 311, electronic resistors 312, 313, electronic capacitors 314 and 315 and an operational amplifier 316 on, which are connected to each other via edges 317.
  • a ground connection 318 is also shown in FIG. Textual information 319, 320, 321, 322, 323, 324, 325, 326 is assigned to the individual circuit elements for a more detailed explanation of the electronic circuit 310.
  • a graphic structure file 102, 103, 104, 105 is selected from a set 101 of graphic structure files 102, 103, 104, 105.
  • the selected elements are displayed by the editor program 107 in a further step (step 403).
  • FIG. 5 shows a first computer 500 with a memory 502 and a processor 503, each of which is connected to one another and to an input / output interface 501 via a bus 504.
  • the first computer 500 is connected to a screen 505, a keyboard 506 and a computer mouse 507 via the input / output interface 501.
  • the first computer 500 is connected to further computers 510, 520, 530, 540 and 550 via a communication network 560, in the exemplary embodiment an ISDN network (Integrated Services Digital Network).
  • a communication network 560 in the exemplary embodiment an ISDN network (Integrated Services Digital Network).
  • the set 101 of the graphic structure files 102, 103, 104, 105 is stored in the first computer 500.
  • the further computers 510, 520, 530, 540 and 550 each likewise have a processor 513, 523, 533, 543 and 553 and a memory 512, 522, 532, 542 and 552 each.
  • Memories 512, 522, 532, 542 and 552 are each connected to the communication network 560 via a bus 514, 524, 534, 544 and 554 via an input / output interface 511, 521, 531, 541 and 551. Furthermore, the other computers 510, 520, 530, 540 and 550 are each with a screen 515, 525, 535, 545 and 555 and a keyboard 516, 526, 536, 546 and 556 and a computer mouse 517, 527, 537, 547 and 557 connected.
  • An editor program 508, 518, 528, 538, 548, 558 is stored in each computer 500, 510, 520, 530, 540 and 550.
  • a graphic structure file 102, 103, 104, 105 is selected by a user of a further computer 510, 520, 530, 540 and 550 and requested by the first computer 500 with a request message 570.
  • the first computer 500 sends the selected graphic Structure file 102, 103, 104, 105 in a response message 580 to the further computer 510, 520, 530, 540 and 550 requesting the graphic structure file 102, 103, 104, 105.
  • the requesting further computer 510, 520, 530, 540 and 550 has thus received the requested graphic structure file 102, 103, 104, 105 and is integrating it into its editor program 518, 528, 538, 548, 558, such as described in the first embodiment.
  • the type of elements that are made available by a graphic structure file is generally arbitrary and diglich depends on the respective type of graph to be determined.
  • the technical system can, for example, also be a technical system that can be described in terms of its behavior or its structure by the graph.
  • the editor program and the graph displayed with the editor program can be used in the context of a simulation of the technical system.
  • Stnng out ( ⁇ nt) token.
  • nval; choice token.
  • sval; 115 transfers (selection, font name, style, size);
  • c token. nextToken ();
  • String iconl token. sval; 80 // size. setSize (x, y); break;
  • File file new ⁇ File (configFile); 120 sy
  • String value new String (token. Sval); type name, attribu95 te. addAttribute (aname, value, true); new EdgesTool (editor, type name), attribute names. put (aname, aname); editor. getToolbar ());
  • ToolButton b new hash table ToolButton (lgcPath + "images /" + gobjekimage, te. Put (type name, edge); type name, // System. Out .println ("In hash table:” + objects); new edge tool (editor, type name ), break; editor. getToolbar ()); 85 editor. getToolbar (). addToolButton (b) if (token.sval.equals ("SIZE”)) ⁇
  • FileDialog fd new FileDia- 65) log ((Frame) editor, null, FileDialog) // else .LOAD); edi ⁇
  • Vector deleted 100 editor. getGraph (). removeA undo. removeElement (undo. lastEleme 11 (); nt ()); check (dir, file); ) editor. getGraph (). setChanged (false); 105 gate. getZeiegenflaeehe (). drawBuffe editor. setselection (new vector (editor. getGraph ()); tor ()); edi ⁇
  • Vector lastCommands editor. getGraph (). setChanged (true); goal . getLastCommands (); ediif (lastCommands. size () ⁇ 110 tor .get status bar (). show ("Done” 10) ⁇ ); lastCommands. addElement (this); ((Component) editor). setCursor (Cur) ice ⁇ sor. getDefaultCursor ()); lastCom115) // undo mands. removeElementAt (0); lastCom / ** mands. addElement (this); * Load file repeatedly ..
  • Interpreter new ⁇ eise (Lgtlnterpreter (editor, path 4- daSystem. Err. Println ("usage: tei); java LoGraph2 ⁇ path to config- edif ⁇ les> AND ⁇ f ⁇ le.lgc> OR tor. Setlnterpreter (Interpreter); 95 ⁇ f ⁇ le.lgf> OR ⁇ flle. lgt> ");
  • ToolButton b new ToolBut- 90 public void deleteTooleButton (editor. GetEmancements () .Ige ton (ToolButton button) ⁇ Path 4

Abstract

According to the invention, graph structure data is selected from a plurality of several different graph structure data. Each graph structure data contains the elements that may be selected for its representation in order to graphically describe the structure of the technical system. The elements are selected in such a way that the technical system can be described using the selected elements. The elements are represented by an editor program in which the selected graph structure data has being integrated.

Description

Beschreibungdescription
Verfahren zur Bestimmung einer graphischen Struktur eines technischen Systems und Anordnung sowie Satz von Anordnungen zur Bestimmung einer Graphen-StrukturMethod for determining a graphical structure of a technical system and arrangement, and set of arrangements for determining a graphene structure
Es ist bekannt, verschiedene technische Systeme mittels einer graphischen Struktur zu beschreiben.It is known to describe various technical systems using a graphic structure.
Aus [1] ist für ein solches technisches System, einer elek¬ tronischen Schaltung, bekannt, die elektrische Schaltung in Form einer graphischen Struktur mit Elementen, die eine elektronische Schaltung beschreiben, zu bestimmen.From [1], must be determined for such a technical system, an elec tronic circuit ¬ known, the electrical circuit in the form of a graphic structure with elements that describe an electronic circuit.
Elemente einer Graphen-Struktur im Rahmen einer Schaltungssimulation sind Symbole, die elektronische Bauelemente symbolisieren, beispielsweise einen Widerstand, einen Kondensator, eine Induktivität, einen Transistor, einen Operationsverstärker oder andere, aus diesen Elementen zusammengesetzte elek- tronische Bauelemente.Elements of a graphene structure in the context of a circuit simulation are symbols which symbolize electronic components, for example a resistor, a capacitor, an inductance, a transistor, an operational amplifier or other electronic components composed of these elements.
Bei dem aus [1] bekannten Verfahren und der aus [1] bekannten Anordnung werden von einem Editor-Programm einem Benutzer zur Verfügung gestellte Elemente zur graphischen Beschreibung ei- ner elektronischen Schaltung ausgewählt derart, daß mit den ausgewählten Elementen das technische System "elektronische Schaltung" beschrieben wird. Die Elemente werden von dem Editor-Programm dargestellt.In the method known from [1] and the arrangement known from [1], elements provided to a user by a editor program are selected for the graphic description of an electronic circuit in such a way that the technical system "electronic circuit" is used with the selected elements "is described. The elements are represented by the editor program.
Eine Graphen-Struktur beschreibt einen Graph G (= V, E, Ψ) , der eine endliche, nicht leere Menge V (v e V bezeichnen Knoten des Graphen G) aufweist sowie eine endliche Menge E (e e E bezeichnen Kanten des Graphen G) . Die Knoten und Kanten des Graphen werden verknüpft durch eine Inzidenzfunktion Ψ, die gemäß folgender Vorschrift gebildet wird:A graph structure describes a graph G (= V, E, Ψ), which has a finite, not empty set V (v e V denote nodes of graph G) and a finite set E (e e E denote edges of graph G). The nodes and edges of the graph are linked by an incidence function Ψ, which is formed according to the following rule:
Ψ: E → {{i, j}|i, j e v} (1) Jeder Kante e der Menge E von Kanten werden durch die Inzi- denzfunktion Ψ(e) ihre beiden Endpunkte zugeordnet.Ψ: E → {{i, j} | i, jev} (1) Each edge e of the set E of edges is assigned its two end points by the incidence function Ψ (e).
Je nach Anwendungsgebiet können in einem Editor-Programm zur Beschreibung eines technischen Systems unterschiedliche Arten von Knoten und Kanten vorgesehen sein. Allgemein werden Knoten und Kanten in einem Editor-Programm, denen eine anwendungsabhängige Semantik zugeordnet ist, als Elemente des Gra- phen bezeichnet.Depending on the field of application, different types of nodes and edges can be provided in an editor program for describing a technical system. In general, nodes and edges in an editor program to which application-dependent semantics are assigned are referred to as elements of the graph.
Ein Knotenelement eines Graphen ist beispielsweise bei dem Editor-Programm aus [1] ein Symbol, welches ein elektronisches Bauelement der elektronischen Schaltung symbolisiert. Mit den Kanten können gewichtete Verbindungen zwischen den einzelnen Elementen beschrieben werden.A node element of a graph is, for example, a symbol in the editor program from [1], which symbolizes an electronic component of the electronic circuit. The edges can be used to describe weighted connections between the individual elements.
Allgemein kann den jeweiligen Knoten und Kanten ein Gewicht, eine Wertangabe oder auch ein beliebiger Text für Information (textuelle Information) zugeordnet sein.In general, the respective nodes and edges can be assigned a weight, a value specification or any text for information (textual information).
Aus [2] ist ein Editor-Programm zur Bestimmung eines Petri- Netzes bekannt. Ein Petri-Netz wird vorzugsweise eingesetzt zur Analyse und zum Entwurf einer Regelungen oder einer Steuerung eines technischen Systems, allgemein zur Beschreibung eines Systemverhaltens eines technischen Systems. Ein Graph, der in Form eines Petri-Netzes dargestellt ist, weist als Elemente eine Stelle S oder auch eine Transition T auf. Eine allgemeine Übersicht über ein Petri-Netz sowie dessen Grundelemente ist in [3] zu finden.An editor program for determining a Petri network is known from [2]. A Petri network is preferably used for the analysis and for the design of a regulation or a control of a technical system, generally for describing a system behavior of a technical system. A graph, which is shown in the form of a Petri network, has a point S or a transition T as elements. A general overview of a Petri net and its basic elements can be found in [3].
Ein Petri-Netz ist allgemein ein TripelA Petri net is generally a triple
N : = < S, T, F > mit (i) S = { sl , s2 , ... , sn } Menge von Stellen (ii) T = { tl , t2 , ... , t } Menge von Transitionen (iii) S n T = 0 S und T disjunkt (dieN: = <S, T, F> with (i) S = {sl, s2, ..., sn} set of digits (ii) T = {tl, t2, ..., t} set of transitions (iii) S n T = 0 S and T disjoint (the
Knotenmenge besteht aus S und T) (iv) F ςz (SxT) s (TxS) FlußrelationKnot set consists of S and T) (iv) F ςz (SxT) s (TxS) river relation
Nachteilig an den bekannten Verfahren und Anordnungen ist insbesondere, daß jeweils anwendungsabhängig nur für eine spezielle Anwendung vorgesehene Elemente eines Graphen zur Bestimmung der graphischen Struktur eines technischen Systems zur Verfügung gestellt werden. So kann mit dem Editor- Programm aus [1] lediglich eine Auswahl unter Elementen zur Beschreibung einer elektronischen Schaltung und bei dem Editor-Programm aus [2] lediglich eine Auswahl aus Elementen zur Beschreibung eines Petri-Netzes erfolgen.A disadvantage of the known methods and arrangements is in particular that, depending on the application, only elements of a graph intended for a specific application are provided for determining the graphic structure of a technical system. Thus, with the editor program from [1], only a selection can be made from elements for describing an electronic circuit, and with the editor program from [2], only a selection from elements to describe a Petri network.
Ein solches bekanntes Editor-Programm ist somit äußerst unflexibel für den Fall, daß ein Anwender unterschiedliche Arten einer graphischen Struktur zur Beschreibung eines techni- sehen Systems einsetzen möchte. Für jede spezielle Anwendung muß dann ein eigenes, für die Anwendung angepaßtes Editor- Programm entwickelt werden, was zu erheblichen Entwicklungskosten führt.Such a known editor program is therefore extremely inflexible in the event that a user wishes to use different types of graphic structure to describe a technical system. A separate editor program adapted to the application must then be developed for each special application, which leads to considerable development costs.
Somit liegt der Erfindung das Problem zugrunde, ein Verfahren zur Bestimmung einer graphischen Struktur eines technischen Systems sowie eine Anordnung und einen Satz mehrerer Anordnungen zur Bestimmung einer Graphen-Struktur anzugeben, welche gegenüber den bekannten Verfahren und Anordnungen eine verbesserte Flexibilität aufweist.The invention is therefore based on the problem of specifying a method for determining a graphic structure of a technical system and an arrangement and a set of several arrangements for determining a graph structure, which has improved flexibility compared to the known methods and arrangements.
Das Problem wird durch das Verfahren, die Anordnung sowie den Satz von Anordnungen gemäß den Merkmalen der unabhängigen Patentansprüche gelöst. Ein Verfahren zur Bestimmung einer graphischen Struktur eines technischen Systems weist folgende Schritte auf: a) aus einer Menge mehrerer unterschiedlicher Graphen- Struktur-Dateien wird eine Graphen-Struktur-Datei ausge- wählt, wobei in einer Graphen-Struktur-Datei jeweils angegeben ist, welche Elemente zu deren Darstellung ausgewählt werden können, um das technische System in seiner Struktur graphisch zu beschreiben, b) Elemente werden derart ausgewählt, daß mit den ausgewähl- ten Elementen ein technisches System beschrieben wird, und c) die Elemente werden von einem Editor-Programm dargestellt, in welches die ausgewählte Graphen-Struktur-Datei eingebunden worden ist, womit die graphische Struktur des technischen Systems bestimmt ist.The problem is solved by the method, the arrangement and the set of arrangements according to the features of the independent claims. A method for determining a graphical structure of a technical system has the following steps: a) a graph structure file is selected from a set of several different graph structure files, each being specified in a graph structure file, which elements can be selected for their representation in order to graphically describe the technical system in its structure, b) elements are selected in such a way that a technical system is described with the selected elements, and c) the elements are Program shown in which the selected graph structure file has been integrated, which determines the graphic structure of the technical system.
Eine Anordnung zur Bestimmung einer Graphen-Struktur weist folgende Merkmale auf: a) einen Speicher, in dem eine Menge mehrerer unterschiedlicher Graphen-Struktur-Dateien gespeichert sind, wobei in einer Graphen-Struktur-Datei jeweils angegeben ist, welche Elemente zu deren Darstellung ausgewählt werden können, um einen Graphen zu bilden, b) eine Auswahleinheit, mit der eine Graphen-Struktur-Datei aus der Menge der Graphen-Struktur-Dateien ausgewählt wer- den kann, c) einen Prozessor, der derart eingerichtet ist, daß ein Editor-Programm ausführbar ist, mit welchem Editor-Programm unter Verwendung einer aus der Menge der Graphen-Struktur- Dateien ausgewählten Graphen-Struktur-Datei ein Graph mit Elementen der ausgewählten Graphen-Struktur-Datei bestimmt werden kann, womit die Graphen-Struktur bestimmt ist, und d) eine mit dem Editor-Programm gekoppelte Darstellungskomponente, mit der die bestimmte Graphen-Struktur dargestellt werden kann.An arrangement for determining a graph structure has the following features: a) a memory in which a number of different graph structure files are stored, a graph structure file specifying which elements are selected for their representation can be used to form a graph, b) a selection unit with which a graph structure file can be selected from the set of graph structure files, c) a processor which is set up such that an editor -Program is executable with which editor program can be determined using a graph structure file selected from the set of graph structure files, a graph with elements of the selected graph structure file, whereby the graph structure is determined , and d) a display component coupled to the editor program, with which the specific graph structure can be displayed.
Ein Satz mehrerer Anordnungen zur Bestimmung einer Graphen- Struktur weist auf: a) eine erste Anordnung, die einen Speicher aufweist, in dem eine Menge mehrerer unterschiedlicher Graphen-Struktur- Dateien gespeichert sind, wobei in einer Graphen-Struktur- Datei jeweils angegeben ist, welche Elemente zu deren Dar- Stellung ausgewählt werden können, um einen Graphen zu bilden, und b) eine mit der ersten Anordnung gekoppelte zweite Anordnung, die folgende Komponenten aufweist:A set of several arrangements for determining a graph structure has: a) a first arrangement which has a memory in which a number of several different graph structure files are stored, a graph structure file specifying which elements can be selected to represent them by one To form graphs, and b) a second arrangement coupled to the first arrangement and having the following components:
- eine Auswahleinheit, mit der eine Graphen-Struktur-Datei aus der Menge der Graphen-Struktur-Dateien ausgewählt werden kann,a selection unit with which a graph structure file can be selected from the set of graph structure files,
- ein Editor-Programm, mit dem unter Verwendung aus der- an editor program with which using from the
Menge der Graphen-Struktur-Dateien ausgewählten Graphen-Struktur-Datei ein Graph mit Elemenenten der aus- gewählten Graphen-Struktur-Datei bestimmt werden kann, womit die Graphen-Struktur bestimmt ist,Set of graph structure files selected graph structure file a graph can be determined with elements of the selected graph structure file, which determines the graph structure,
- eine mit dem Editor-Programm gekoppelte Darstellungskomponente, mit der die bestimmte Graphen-Struktur dargestellt werden kann.- A display component coupled with the editor program, with which the specific graph structure can be displayed.
Durch die Erfindung wird ein gegenüber den bekannten Verfahren und Anordnungen sehr flexibles Verfahren und eine sehr flexible Anordnung zur Bestimmung einer graphischen Struktur angegeben, welche schnell und unkompliziert an neue Anwen- dungsszenarien bzw. an bestehende Anwendungsszenarien besser angepaßt werden kann.The invention provides a method which is very flexible compared to the known methods and arrangements and a very flexible arrangement for determining a graphic structure which can be quickly and easily adapted to new application scenarios or to existing application scenarios.
Auf diese Weise werden verschiedene Arten von Strukturen, die als Graph darstellbar sind, mit einem Verfahren bzw. mit ei- ner Anordnung auf flexible, kostengünstige und einfache Weise bearbeitbar.In this way, different types of structures, which can be represented as a graph, can be processed in a flexible, cost-effective and simple manner with a method or with an arrangement.
Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.Preferred developments of the invention result from the dependent claims.
Das technische System ist vorzugsweise eine elektronische Schaltung oder eine technische Anlage. Die Elemente sind vorzugsweise Graphen-Elemente eines Graphen, die das technische System beschreiben.The technical system is preferably an electronic circuit or a technical system. The elements are preferably graph elements of a graph that describe the technical system.
In einer weiteren Ausgestaltung ist es vorgesehen, daß die bestimmte graphische Struktur des technischen Systems auf vorgegebene Strukturregeln hin überprüft wird. Auf diese Weise ist es möglich, eine von einem Benutzer bestimmte Struktur des technischen Systems auf vorgegebene Strukturregeln hin zu überprüfen, wodurch die Einhaltung der Strukturregeln für das jeweilige technische System in seiner graphischen Struktur gewährleistet ist.In a further embodiment, it is provided that the specific graphic structure of the technical system is checked for predetermined structure rules. In this way it is possible to check a structure of the technical system determined by a user for predetermined structure rules, thereby ensuring that the structural rules for the respective technical system are adhered to in its graphic structure.
Eine solche Strukturregel ist bei einem Petri-Netz beispiels- weise darin zu sehen, daß immer auf eine Transition eineSuch a structural rule can be seen in a Petri network, for example, in that there is always one transition
Stelle folgen muß und umgekehrt. Ist dies nicht der Fall, so wird im Rahmen dieser Weiterbildung bei der Überprüfung der graphischen Struktur eines Petri-Netzes gemeldet, daß die entsprechende Strukturregel verletzt ist.Body must follow and vice versa. If this is not the case, then as part of this further development, when checking the graphic structure of a Petri network, it is reported that the corresponding structure rule has been violated.
Ein Ausführungsbeispiel der Erfindung ist in den Figuren dargestellt und wird im weiteren näher erläutert.An embodiment of the invention is shown in the figures and is explained in more detail below.
Es zeigenShow it
Figur 1 eine Skizze einer Anordnung gemäß einem ersten Ausführungsbeispiel;Figure 1 is a sketch of an arrangement according to a first embodiment;
Figur 2 eine Skizze einer Darstellungskomponente mit einer graphischen Struktur mit Elementen eines Petri-FIG. 2 shows a sketch of a display component with a graphic structure with elements of a petri
Netzes;Network;
Figur 3 eine Skizze einer Darstellungskomponente mit einer graphischen Struktur mit Elementen, die eine elektro- nische Schaltung beschreiben; Figur 4 ein Ablaufdiagramm, in dem die Verfahrensschritte des Verfahrens gemäß einem Ausführungsbeispiel dargestellt sind;FIG. 3 shows a sketch of a display component with a graphic structure with elements that describe an electronic circuit; FIG. 4 shows a flow chart in which the method steps of the method according to an exemplary embodiment are shown;
Figur 5 ein Satz mehrerer Anordnungen, die gemäß einem zweiten Ausführungsbeispiel über ein Kommunikationsnetz miteinander gekoppelt sind.FIG. 5 shows a set of several arrangements which, according to a second exemplary embodiment, are coupled to one another via a communication network.
Fig.1 zeigt eine Anordnung 100 mit einer Menge 101 mehrerer unterschiedlicher Graphik-Struktur-Dateien 102, 103, 104,1 shows an arrangement 100 with a set 101 of several different graphic structure files 102, 103, 104,
105. Jede Graphik-Struktur-Datei 102, 103, 104, 105 ist als dynamisch bindbare Datei (dynamic link library) ausgestaltet.105. Each graphic structure file 102, 103, 104, 105 is designed as a dynamically linkable file (dynamic link library).
Von einem Benutzer 106 wird über eine mit einem Editor- Programm 107 verbundenen Auswahlkomponente 108 (Tastatur und/oder Computermaus) eine Graphik-Struktur-Datei 102, 103, 104, 105 ausgewählt.A graphic structure file 102, 103, 104, 105 is selected by a user 106 via a selection component 108 (keyboard and / or computer mouse) connected to an editor program 107.
Die ausgewählte Graphik-Struktur-Datei, in diesem Ausfüh- rungsbeispiel eine erste Graphik-Struktur-Datei 103, wird dynamisch in das Editor-Programm 107 eingebunden.The selected graphic structure file, in this exemplary embodiment a first graphic structure file 103, is dynamically integrated into the editor program 107.
Nach Einbindung in das Editor-Programm 107 ist über eine mit dem Editor-Programm 107 verbundene Darstellungskomponente 109 dem Benutzer 106 auf einem Bildschirm 110 eine Menge 111 von auswählbaren Elementen 112, 113, 114, die in der ersten Graphik-Struktur-Datei 103 angegeben sind, als auswählbare Elemente zur Bestimmung eines weiteren beschriebenen Graphen dargestellt. Ferner sind in diesem Ausführungsbeispiel gemäß der ersten Graphik-Struktur-Datei 103 ein erstes Überprüfungsprogramm 115 sowie ein zweites Überprüfungsprogramm 116 in dem Editor-Programm 107 eingebunden und werden dem Benutzer 106 zur Auswahl zur Verfügung gestellt.After integration into the editor program 107, the user 106 on a screen 110 has a set 111 of selectable elements 112, 113, 114, which are specified in the first graphic structure file 103, via a display component 109 connected to the editor program 107 are shown as selectable elements for determining another graph described. Furthermore, in this exemplary embodiment, according to the first graphic structure file 103, a first check program 115 and a second check program 116 are integrated in the editor program 107 and are made available to the user 106 for selection.
Jede Graphik-Struktur-Datei 102, 103, 104, 105 weist jeweils eine Menge auswählbarer Elemente für die jeweilige Art von Graphen auf, wobei jeweils eine Graphik-Struktur-Datei vorge- sehen ist für eine Art eines Graphen. Ferner kann jede Graphik-Struktur-Datei 102, 103, 104, 105 jeweils ein spezielles Überprüfungsprogramm enthalten, welches mit der jeweiligen Graphik-Struktur-Datei 102, 103, 104, 105 eingebunden wird.Each graphic structure file 102, 103, 104, 105 each has a number of selectable elements for the respective type of graph, each with a graphic structure file provided. see is for a kind of a graph. Furthermore, each graphic structure file 102, 103, 104, 105 can each contain a special check program which is integrated with the respective graphic structure file 102, 103, 104, 105.
Nach Einbindung der ersten Graphik-Struktur-Datei 103 werden von dem Benutzer 106 Elemente des Graphen ausgewählt und miteinander verbunden, so daß ein Graph bestimmt wird, der in Form einer vorgegebenen Zwischensprache 117 in einem Speicher 118 gespeichert ist.After incorporation of the first graphic structure file 103, elements of the graph are selected by the user 106 and connected to one another, so that a graph is determined which is stored in a memory 118 in the form of a predetermined intermediate language 117.
Symbolisch ist in Fig.1 ferner dargestellt, daß von dem Benutzer 106 zu der durch die erste Graphikdatei 103 vorgegebenen Art eines Graphen mehrere Strukturen 119, 120, 121, 122, 123 zur Beschreibung unterschiedlicher Graphen gespeichert sind.It is also shown symbolically in FIG. 1 that the user 106 has stored several structures 119, 120, 121, 122, 123 for describing different graphs for the type of graph specified by the first graphics file 103.
Die erste Graphik-Struktur-Datei 103 stellt Elemente zur Verfügung, die einen Graphen in Form eines Petri-Netzes 201 er- möglicht (vergleiche Fig.2) .The first graphic structure file 103 provides elements which enable a graph in the form of a Petri network 201 (see FIG. 2).
Fig.2 zeigt die Darstellungskomponente 200, die in Form einer Bildschirmoberfläche dem Benutzer 106 dargestellt wird.2 shows the display component 200, which is shown to the user 106 in the form of a screen surface.
Die Bildschirmoberfläche 200 weist eine Menüleiste 202 mit unterschiedlichen auswählbaren Optionen („File", „Edit", „Object", „View", „Tools", „Settings", „Help") auf.The screen surface 200 has a menu bar 202 with different selectable options ("File", "Edit", "Object", "View", "Tools", "Settings", "Help").
Über eine Sofort-Zugriffsleiste 203 werden dem Benutzer über einzelne auswählbare Elemente Menüpunkte durch einmaliges, direktes Auswählen eines Elementes zur Verfügung gestellt.Via an immediate access bar 203, menu items are made available to the user via individual, selectable elements by selecting an element directly.
Ferner ist eine Bearbeitungsleiste 204 dargestellt mit auswählbaren Optionen zur Bestimmung des Graphen. So ist bei der ersten Graphik-Struktur-Datei 103 ein erstes AuswahlelementA processing bar 204 is also shown with selectable options for determining the graph. In the first graphic structure file 103, this is a first selection element
205 vorgesehen, mit dem eine Auswahl und eine Bearbeitung von auf dem Bildschirm dargestellten Objekten möglich ist. Über eine Menge 206 weiterer, im weiteren näher erläuterter Auswahlelemente ist die Auswahl und Bearbeitung spezifischer Elemente für ein Petri-Netz 201 dem Benutzer 106 zur Verfü- gung gestellt.205 is provided, with which a selection and processing of objects displayed on the screen is possible. The selection and processing of specific elements for a Petri network 201 is made available to the user 106 via a set 206 of further selection elements, which are explained in more detail below.
Ein zweites Auswahlelement 207 ist beschrieben durch ein leeres Rechteck und symbolisiert eine zeitbehaftete Transititon.A second selection element 207 is described by an empty rectangle and symbolizes a time-bound transit.
Ein drittes Auswahlelement 208 symbolisiert eine zeitlose Transition, die als ausgewählte Transisitions-Ele ente 220, 221 und 222 in dem Petri-Netz 201 dargestellt sind.A third selection element 208 symbolizes a timeless transition, which are shown as selected transition elements 220, 221 and 222 in the petri network 201.
Ein viertes Auswahlelement 209 symbolisiert eine Kante, die in diesem Ausführungsbeispiel eine gerichtete Kante ist.A fourth selection element 209 symbolizes an edge, which in this exemplary embodiment is a directed edge.
Ein fünftes Auswahlelement 210 symbolisiert eine gemäß der Strukturregeln eines Petri-Netzes 201 bezeichnete verbotene Kante .A fifth selection element 210 symbolizes a forbidden edge designated according to the structure rules of a petri net 201.
Ein sechstes Auswahlelement 211 symbolisiert eine Stelle, wobei jeweils ein Stellen-Element 223, 224, 225, 226 in dem Petri-Netz 201 dargestellt sind. Die Stellen-Elemente 223, 224, 225 und 226 sind mit den Transition-Elementen 220, 221, 222 über Kanten 227, 228, 229, 230, 231 und 232 verbunden.A sixth selection element 211 symbolizes a position, wherein a position element 223, 224, 225, 226 is shown in each case in the petri network 201. The location elements 223, 224, 225 and 226 are connected to the transition elements 220, 221, 222 via edges 227, 228, 229, 230, 231 and 232.
Ein siebtes Auswahlelement 212 symbolisiert die Möglichkeit, eine Kombination mehrerer Elemente des Petri-Netzes zu einem Gesamtelement zusammenzufassen.A seventh selection element 212 symbolizes the possibility of combining a combination of several elements of the Petri network into one overall element.
Ein achtes Auswahlelement 213 symbolisiert einen Eingang des Petri-Netzes 201 und ein neuntes Auswahlelement 214 symbolisiert einen Ausgang eines Petri-Netzes 201.An eighth selection element 213 symbolizes an input of the petri network 201 and a ninth selection element 214 symbolizes an output of a petri network 201.
Den Kanten sowie den einzelnen Knoten, das heißt den Elementen des Petri-Netzes 201 sind textuelle Informationen 251, 252, 253, 254, 255, 256, 257, 258, 259, 260 und 261 zugeord- net. Auf diese Weise ist es möglich, den einzelnen Elementen eine zusätzliche textuelle Beschreibung zuzuordnen.Textual information 251, 252, 253, 254, 255, 256, 257, 258, 259, 260 and 261 are assigned to the edges and the individual nodes, that is to say the elements of the Petri network 201. net. In this way it is possible to assign an additional textual description to the individual elements.
Ist eine zweite Graphik-Struktur-Datei 104 in das Editor- Programm 107 eingebunden, wobei die zweite Graphik-Struktur- Datei 104 Elemente einer elektronischen Schaltung und somit einen Graphen einer elektronischen Schaltung zur Verfügung stellt, so ergibt sich eine in Fig.3 dargestellte Bildschirmoberfläche mit einer für die Schaltungssimulation ein- gerichtete Menge von Auswahlelementen.If a second graphic structure file 104 is integrated into the editor program 107, the second graphic structure file 104 providing elements of an electronic circuit and thus a graph of an electronic circuit, the result is one shown in FIG Screen surface with a set of selection elements set up for the circuit simulation.
Für die gleichen Elemente der Bildschirmoberfläche, wie sie in Fig.2 dargestellt sind, werden in Fig.3 die gleichen Bezugszeichen verwendet.The same reference numerals are used in FIG. 3 for the same elements of the screen surface as are shown in FIG.
Eine Menge 301 von Auswahlelementen, die spezifisch sind zur Beschreibung eines Graphen einer elektronischen Schaltung, enthaltenA set 301 of selection elements that are specific for describing a graph of an electronic circuit
• ein zehntes Auswahlelement 302, welches einen elektroni- sehen Widerstand symbolisiert,A tenth selection element 302, which symbolizes an electronic resistance,
• ein elftes Auswahlelement 303, welches einen elektronischen Kondensator symbolisiert,An eleventh selection element 303, which symbolizes an electronic capacitor,
• ein zwölftes Auswahlelement 304, welches eine Induktivität symbolisiert, • ein dreizehntes Auswahlelement 305, symbolisierend einen Transistor,A twelfth selection element 304, which symbolizes an inductance, a thirteenth selection element 305, symbolizing a transistor,
• ein vierzehntes Auswahlelement 306, symbolisierend einen Operationsverstärker,A fourteenth selection element 306, symbolizing an operational amplifier,
• ein fünfzehntes Auswahlelement 307, symbolisierend eine un- gerichtete Kante, undA fifteenth selection element 307, symbolizing an undirected edge, and
• ein sechzehntes Auswahlelement 308, symbolisierend eine Stromquelle .A sixteenth selection element 308, symbolizing a current source.
Eine elektronische Schaltung 110 wird durch den Benutzer 106 bestimmt und weist in diesem Ausführungsbeispiel eine Stromquelle 311, elektronische Widerstände 312, 313, elektronische Kapazitäten 314 und 315 sowie einen Operationsverstärker 316 auf, die jeweils über Kanten 317 miteinander verbunden sind. Ferner ist ein Masseanschluß 318 in Fig.3 dargestellt. Den einzelnen Schaltungselementen ist textuelle Information 319, 320, 321, 322, 323, 324, 325, 326 zugeordnet zur näheren Er- läuterung der elektronischen Schaltung 310.An electronic circuit 110 is determined by the user 106 and in this exemplary embodiment has a current source 311, electronic resistors 312, 313, electronic capacitors 314 and 315 and an operational amplifier 316 on, which are connected to each other via edges 317. A ground connection 318 is also shown in FIG. Textual information 319, 320, 321, 322, 323, 324, 325, 326 is assigned to the individual circuit elements for a more detailed explanation of the electronic circuit 310.
Fig.4 zeigt zur Verdeutlichung des Verfahrens das Verfahren in seinen Verfahrensschritten.4 shows the method in its method steps to clarify the method.
In einem ersten Schritt (Schritt 401) wird eine Graphik- Struktur-Datei 102, 103, 104, 105 aus einer Menge 101 von Graphik-Struktur-Dateien 102, 103, 104, 105 ausgewählt.In a first step (step 401), a graphic structure file 102, 103, 104, 105 is selected from a set 101 of graphic structure files 102, 103, 104, 105.
In einem zweiten Schritt (Schritt 402) erfolgt eine Auswahl von Elementen, die gemäß der Graphik-Struktur-Datei 102, 103, 104, 105, die in dem Schritt zuvor (Schritt 401) ausgewählt wurde, zur Verfügung stehen.In a second step (step 402), a selection is made of elements which are available in accordance with the graphic structure file 102, 103, 104, 105 which was selected in the step before (step 401).
Die ausgewählten Elemente werden von dem Editor-Programm 107 in einem weiteren Schritt (Schritt 403) dargestellt.The selected elements are displayed by the editor program 107 in a further step (step 403).
Fig.5 zeigt einen ersten Rechner 500 mit einem Speicher 502 und einem Prozessor 503, die jeweils über einen Bus 504 miteinander und mit einer Eingangs-/Ausgangsschnittstelle 501 verbunden sind.5 shows a first computer 500 with a memory 502 and a processor 503, each of which is connected to one another and to an input / output interface 501 via a bus 504.
Über die Eingangs-/Ausgangsschnittstelle 501 ist der erste Rechner 500 mit einem Bildschirm 505, einer Tastatur 506 sowie einer Computermaus 507 verbunden.The first computer 500 is connected to a screen 505, a keyboard 506 and a computer mouse 507 via the input / output interface 501.
Ferner ist der erste Rechner 500 über ein Kommunikationsnetz 560, in dem Ausführungsbeispiel ein ISDN-Netz (Integrated Services Digital Network) mit weiteren Rechnern 510, 520, 530, 540 und 550 verbunden.Furthermore, the first computer 500 is connected to further computers 510, 520, 530, 540 and 550 via a communication network 560, in the exemplary embodiment an ISDN network (Integrated Services Digital Network).
In dem ersten Rechner 500 ist die Menge 101 der Graphik- Struktur-Dateien 102, 103, 104, 105 gespeichert. Die weiteren Rechner 510, 520, 530, 540 und 550 weisen jeweils ebenfalls einen Prozessor 513, 523, 533, 543 und 553 sowie jeweils einen Speicher 512, 522, 532, 542 und 552 auf. Jeweils der Prozessor 513, 523, 533, 543 und 553 und derThe set 101 of the graphic structure files 102, 103, 104, 105 is stored in the first computer 500. The further computers 510, 520, 530, 540 and 550 each likewise have a processor 513, 523, 533, 543 and 553 and a memory 512, 522, 532, 542 and 552 each. The processor 513, 523, 533, 543 and 553 and the
Speicher 512, 522, 532, 542 und 552 sind über jeweils einen Bus 514, 524, 534, 544 und 554 über eine Eingangs- /Ausgangsschnittstelle 511, 521, 531, 541 und 551 mit dem Kommunikationsnetz 560 verbunden. Ferner sind die weiteren Rechner 510, 520, 530, 540 und 550 jeweils mit einem Bildschirm 515, 525, 535, 545 und 555 sowie einer Tastatur 516, 526, 536, 546 und 556 sowie einer Computermaus 517, 527, 537, 547 und 557 verbunden.Memories 512, 522, 532, 542 and 552 are each connected to the communication network 560 via a bus 514, 524, 534, 544 and 554 via an input / output interface 511, 521, 531, 541 and 551. Furthermore, the other computers 510, 520, 530, 540 and 550 are each with a screen 515, 525, 535, 545 and 555 and a keyboard 516, 526, 536, 546 and 556 and a computer mouse 517, 527, 537, 547 and 557 connected.
In jedem Rechner 500, 510, 520, 530, 540 und 550 ist ein Editor-Programm 508, 518, 528, 538, 548, 558 gespeichert. Von einem Benutzer eines weiteren Rechners 510, 520, 530, 540 und 550 wird eine Graphik-Struktur-Datei 102, 103, 104, 105 ausgewählt und bei dem ersten Rechner 500 angefordert mit einer Anforderungsnachricht 570. Der erste Rechner 500 sendet die ausgewählte Graphik-Struktur-Datei 102, 103, 104, 105 in einer Antwortnachricht 580 an den die Graphik-Struktur-Datei 102, 103, 104, 105 anfordernden weiteren Rechner 510, 520, 530, 540 und 550.An editor program 508, 518, 528, 538, 548, 558 is stored in each computer 500, 510, 520, 530, 540 and 550. A graphic structure file 102, 103, 104, 105 is selected by a user of a further computer 510, 520, 530, 540 and 550 and requested by the first computer 500 with a request message 570. The first computer 500 sends the selected graphic Structure file 102, 103, 104, 105 in a response message 580 to the further computer 510, 520, 530, 540 and 550 requesting the graphic structure file 102, 103, 104, 105.
Damit hat der anfordernde weitere Rechner 510, 520, 530, 540 und 550 die angeforderte Graphik-Struktur-Datei 102, 103, 104, 105 erhalten und bindet diese in sein Editor-Programm 518, 528, 538, 548, 558 ein, wie im ersten Ausführungsbei- spiel beschrieben.The requesting further computer 510, 520, 530, 540 and 550 has thus received the requested graphic structure file 102, 103, 104, 105 and is integrating it into its editor program 518, 528, 538, 548, 558, such as described in the first embodiment.
Im weiteren werden einige Alternativen zu den oben beschriebenen Ausführungsbeispielen dargestellt:Some alternatives to the exemplary embodiments described above are shown below:
Die Art der Elemente, die von einer Graphik-Struktur-Datei zur Verfügung gestellt werden, ist allgemein beliebig und le- diglich von der jeweiligen Art des zu bestimmenden Graphen abhängig .The type of elements that are made available by a graphic structure file is generally arbitrary and diglich depends on the respective type of graph to be determined.
Das technische System kann beispielsweise auch eine techni- sehe Anlage sein, die durch den Graphen in ihrem Verhalten oder in ihrer Struktur beschreibbar ist.The technical system can, for example, also be a technical system that can be described in terms of its behavior or its structure by the graph.
Das Editor-Programm sowie der mit dem Editor-Programm dargestellte Graph kann im Rahmen einer Simulation des technischen Systems eingesetzt werden. The editor program and the graph displayed with the editor program can be used in the context of a simulation of the technical system.
In diesem Dokument sind folgende Veröffentlichungen zitiert:The following publications are cited in this document:
[1] Veröffentlichung im Internet erhältlich am 2. September 1998 unter der Adresse:[1] Publication on the Internet available on September 2, 1998 at the address:
http: //www.redac. co .uk/prod info/brochures/14a .htmlhttp: //www.redac. co .uk / prod info / brochures / 14a .html
[2] G. Chiola, G. Franceschinis, R. Gaeta and M. Ribaudo,[2] G. Chiola, G. Franceschinis, R. Gaeta and M. Ribaudo,
GreatSPN 1.7: Graphical Editor and Analyzer for Timed and Stochastic Petri Nets, Performance Evaluation, Special issue on Perfomance Modelling Tools, 24 (1&2), S. 47 - 68, November 1995GreatSPN 1.7: Graphical Editor and Analyzer for Timed and Stochastic Petri Nets, Performance Evaluation, Special issue on Perfomance Modeling Tools, 24 (1 & 2), pp. 47 - 68, November 1995
[3] G. Schmidt, Grundlagen der Regelungstechnik: Analyse und Entwurf linearer und einfacher nichtlinearer Regelungen sowie diskreter Steuerungen, zweite Auflage, Springer- Verlag, ISBN 3-540-17112-6, Berlin, S. 320 - 328, 1991 [3] G. Schmidt, Fundamentals of Control Engineering: Analysis and design of linear and simple non-linear controls as well as discrete controls, second edition, Springer-Verlag, ISBN 3-540-17112-6, Berlin, pp. 320 - 328, 1991
Im weiteren ist eine Realisierung des oben beschriebenen Aus- fuhrungsbeispiels angegeben, geschrieben m der Programmiersprache C, wobei die Realisierung m drei Dateien aufgeglie¬Furthermore, an implementation of the exemplary embodiment described above is given, written in the programming language C, the implementation being carried out in three files
1. Initialisierungs-Datei :1. Initialization file:
package Interfaces; * emlesen für die Einstellu- 60 gen der Farben, Schriften... import java.io.*; * Aber ich darf leider nicht. Import java.util . *; */ Import ] ava . awt . * ; /* public void readFirst (Stnngpackage interfaces; * selected for the settings of 60 colors, fonts ... import java.io. *; * But unfortunately I am not allowed. Import java.util. *; * / Import] ava. awt. *; / * public void readFirst (Stnng
Import etc.*; 65 name) { import elements.*; Stnng configFile = new import mm . * ; Stnng (name) ; import tools.*; int c;Import etc. *; 65 name) {import elements. *; Stnng configFile = new import mm. *; Stnng (name); import tools. *; int c;
//Properties properties = new public class Initialisierung { 70 Properties ( ) ; GraphEditor editor; //properties = Sy¬// Properties properties = new public class initialization {70 Properties (); GraphEditor editor; // properties = Sy¬
// Der hat die Tokens aus der stem. getProperties ( ) ; Datei //filename = new Stnng ( " .. "// He has the tokens from the stem. getProperties (); File // filename = new stnng (".."
StreamTokenizer token; + proper- // Hier kommen alle erlaubten 75 ties . getProperty ("file. Separator" Knoten und Kanten aus der ) + configfile) ; // .Ige Datei rein. try { // Die Eintrage werden mit den F le file = new Namen der Objekte referenziert File (configFile) ; Hashtable gobjekte; 80 //FilelnputStream in = new // Die aktuelle .Ige Datei FιleΙnputStream(fιle) ; //Stnng configFile; FileReader in = new File- // steht jetzt bei den EinstelReader (file) ; lungen token = new StreamTokeni- 85 zer (in) ; * Hier stehen alle Attribute drin. //Einstellen der Optionen */ für token Hashtable attributNamen; to- /** 90 ken.eolIsSignificant (true) ;StreamTokenizer token; + proper- // Here come all 75 ties allowed. getProperty ("file. Separator" nodes and edges from the) + configfile); // .Ige file in. try {// The entries are referenced with the F le file = new names of the objects File (configFile); Hashtable objects; 80 // FilelnputStream in = new // The current .Ige file FιleΙnputStream (fιle); // stnng configFile; FileReader in = new File- // is now in the setting reader (file); lungs token = new StreamTokenizer (in); * All attributes are in here. // set options * / for token hashtable attribute names; to- / ** 90 ken.eolIsSignificant (true);
* hier kommen die Eintrage für token . quoteChar ('"'); das Menue Tools //token. quoteChar ( !\' ' ) ;* here are the entries for token. quoteChar ('"'); the Tools // token menu. quoteChar ( ! \ '');
* hinein. //token. quoteChar ('{');* inside. // token. quoteChar ('{');
*/ token. quoteChar ('}'); Hashtable tools; 95* / token. quoteChar ('}'); Hashtable tools; 95
//Überlese { und , und ; public Initialisietorung (GraphEditor editor) ( ken. whitespaceChars ('(','(') this. editor = editor; to- gobjekte = new Hashtable ( ] 100 ken. whitespaceChars (',',',' ) attributNamen = new Hastohtable ( ) ; ken. whitespaceChars (';',';') tools = new Hashtable)); }// read over {and, and; public initialization (GraphEditor editor) (ken. whitespaceChars ('(', '(') this. editor = editor; togobjekte = new Hashtable (] 100 ken. whitespaceChars (',', ',') attribute name = new Hastohtable (); ken. whitespaceChars (';', ';') tools = new Hashtable));}
105 boolean fertig = false; while ( ' fertig) {105 boolean done = false; while (finished) {
/** switch * Diese Methode wurde die er( c=toke . nextToken ( ) ) ( ste Initialisierungsdatei case StreamTokeni- zer . TT EOF : c=token . nextToken ( ) ; fertιg= true; break; 65 //System. out. prιnt(" ert2 " + tocase StreamTokeni- ken. nval) ; zer . TT WORD : int g = l f (int) token. nval;/ ** switch * This method was the er (c = toke. nextToken ()) (ste initialization file case StreamTokenizer. TT EOF: c = token. nextToken (); fertιg = true; break; 65 // system. out. prιnt ("ert2" + tocase StreamTokeniken. nval); zer. TT WORD: int g = lf (int) token. nval;
( token . sval . equals ( "DATAPATH" ) ) ((token. sval. equals ("DATAPATH")) (
70 c=token. nextToken ( ) c=token . nextToken ( ) ; lf ( c == "" ) { //System, out. pπntln ( "Wert3 " + Sytoken. nval) ; stem, out . prmtln ( "DATAPATH " + int b = token . sval ) ; 75 (int) token . nval ;70 c = token. nextToken () c = token. nextToken (); lf (c == "") {// system, out. pπntln ("Wert3" + Sytoken. nval); stem, out. prmtln ("DATAPATH" + int b = token. sval); 75 (int) token. nval;
} break; //System. out. flush ( ) ;} break; //System. out. flush ();
} ueberge- lf be (aus ähl, r, g,b) ;} over beef (from ähl, r, g, b);
(token . sval . equals ( "DATAFILTER" ) ) ) break; c=token . nextToken ( ) ; ) lf (c == "") ( lf Sy85 (token. sval. equals ("FONTS") ) { stem, out. prιntln( "DATAFILTER " while (c '= ) ' token. sval) ; break; c=token . nextToken ( ) ; } 90 if (c == Stre- f amTokenιzer.TT_W0RD) {(token. sval. equals ("DATAFILTER"))) break; c = token. nextToken (); ) lf (c == "") (lf Sy85 (token. sval. equals ("FONTS")) {stem, out. prιntln ("DATAFILTER" while (c '= )' token. sval); break; c = token. nextToken ();} 90 if (c == Stre- amTokenιzer.TT_W0RD) {
(token. sval. equals ("FILELIST") ) { Stnng aus- while (c '= ) ') wahl = token. sval; {(token. sval. equals ("FILELIST")) {stand out while (c '= )') option = token. sval; {
95 //System. out. print ("FONT " + toc=token. nextToken ( ) ken. sval) ; if (c == c=token . nextToken ( ) ; ediStnng font- tor . getMenueleiste ( ) . addFileToMen 100 name = token. sval; u (token. sval) ;95 // system. out. print ("FONT" + toc = token. nextToken () ken. sval); if (c == c = token. nextToken (); ediStnng fontor. getMenueleiste (). addFileToMen 100 name = token. sval; u (token. sval);
} //System. out . print ( " NAME " + to) ken . sval ) ; break;} // system. out. print ("NAME" + to) ken. sval); break;
1 1 05 c=token . nextToken ( ) if Stnng style (token. sval. equals ("COLORS") ) { token . sval ; while (c ' = ' ) ' )1 1 05 c = token. nextToken () if Stnng style (token. sval. equals ("COLORS")) {token. sval; while (c '=') ')
//System. out. print (" STYLE " +//System. out. print ("STYLE" +
110 token. sval) ; c=token . nextToken ( ) ; if (c == Stre- c=token . nextToken ( ) ; amTokenιzer.TT_W0RD) { int size110 token. sval); c = token. nextToken (); if (c == Stre- c = token. nextToken (); amTokenιzer.TT_W0RD) {int size
Stnng aus- =(ιnt) token. nval; wahl = token. sval; 115 ueberge- be (auswahl, fontname, style, size) ; c=token . nextToken ( ) ;Stnng out = (ιnt) token. nval; choice = token. sval; 115 transfers (selection, font name, style, size); c = token. nextToken ();
//System. out. pπntln(" SIZE " +//System. out. pπntln ("SIZE" +
//System. out. print ("Wertl " + totoken. nval) ; ken. nval) ; 120 ) int r = ) ( int ) token . nval ; break; if ) ( token . sval . equals ( "SHORTCUTS " ) break; ( 65 ) while (c != ' ) ' ) if ( (token. sval. equals ( "WINDOWSIZE") )//System. out. print ("Wertl" + totoken. nval); ken. nval); 120) int r =) (int) token. nval; break; if) (token. sval. equals ("SHORTCUTS") break; (65) while (c! = ')') if ((token. sval. equals ("WINDOWSIZE"))
( c=token . nextToken ( ) ; if (c == "" ) 70 c=token . nextToken ( ) ; int x(c = token. nextToken (); if (c == "") 70 c = token. nextToken (); int x
String = (int) token . nval ; mpunkt = token. sval; c=token . nextToken ( ) ;String = (int) token. nval; mpunkt = token. sval; c = token. nextToken ();
//System. out. print ("MENUPUNKT " + 75 token. sval) ; c=token . nextToken ( ) ; int y c=token . nextToken ( ) ; = (int) token. nval;//System. out. print ("MENUPUNKT" + 75 token. sval); c = token. nextToken (); int y c = token. nextToken (); = (int) token. nval;
String iconl = token. sval; 80 //size. setSize (x,y) ; break;String iconl = token. sval; 80 // size. setSize (x, y); break;
//System. out . print ( "ICONl " + to) ken . sval ) ; if (token . sval . equals ( "WIND0WP0SITI0 c=token . nextToken ( ) ; N")) {//System. out. print ("ICONl" + to) ken. sval); if (token. sval. equals ("WIND0WP0SITI0 c = token. nextToken (); N")) {
String icon2 = token. sval; c=token. nextToken ( ) ; int xString icon2 = token. sval; c = token. nextToken (); int x
//System. out. printin ("IC0N2 " + = ( int ) token . nval ; token. sval) ; 90 edic=token . nextToken ( ) ; tor . getShortcutleiste ( ) . addShortB utton ( ) ; c=toke . nextToken ( ) ;//System. out. printin ("IC0N2" + = (int) token. nval; token. sval); 90 edic = token. nextToken (); goal . getShortcut bar (). addShortB utton (); c = toke. nextToken ();
) int y) int y
) 95 = (int ) token . nval ; break; } //location. setSize (x, y) ; if break; (token . sval . equals ( "ACCELERATOR" ) }) 95 = (int) token. nval; break; } // location. setSize (x, y); if break; (token. sval. equals ("ACCELERATOR")}
) ( 100 if while (c != } ' ) (token. sval. equals ("AUTHOR") ) { c=token . nextToken ( ) ; c=token . nextToken ( ) ; if (c == "" ) ( if (c == "" ) ( 105 SyString la- stem, out. printin ("AUTHOR " + tobel = token. sval; ken. sval) ;) (100 if while (c! = } ') (token. Sval. Equals ("AUTHOR")) {c = token. NextToken (); c = token. NextToken (); if (c == "") (if (c == "") (105 SyString late, out. printin ("AUTHOR" + tobel = token. sval; ken. sval);
))
//System, out. print ("MENUPUNKT " + break; token. sval); 110 1 if c=token . nextToken ( ) ; (token. sval. equals ("TOOLS") ) { if (c == while (c != ' } ' ) StreamTokenizer.TT_WORD) ( { char cut = 115 token. sval. charAt (0) ; c=token. nextToken ( ) ; if (C == "")// system, out. print ("MENUPUNKT" + break; token. sval); 110 1 if c = token. nextToken (); (token. sval. equals ("TOOLS")) {if (c == while (c! = '}') StreamTokenizer.TT_WORD) ({char cut = 115 token. sval. charAt (0); c = token. nextToken (); if ( C == "")
//System. out.printin (" TASTEN " + ( cut) ; String pfad edi- 120 =new String (token. sval) ; tor . getMenueleiste ( ) . addShortcutT oVector (label, cut); //System. out. printin ("TOOL " + token. sval) ;//System. out.printin ("KEYS" + (cut); String path edi- 120 = new String (token. sval); tor. getMenueleiste (). addShortcutT oVector (label, cut); // System. out. printin ("TOOL "+ token. sval);
) c=token . nextToken ( ) ; //Einstellen der Optionen) c = token. nextToken (); // Set the options
String fi- 65 für token leNa e =new String (token. sval) ; token. eollsSignificant (false) ;String fi- 65 for token leNa e = new String (token. Sval); token. eollsSignificant (false);
//System. out. printin ("TOOL " + token . quoteChar ('"'); token. sval) ; //token. quoteChar ( '\' ' ) ; 70 //token. quoteChar ('(') ; c=token . nextToken ( ) ; token. quoteChar ('}'); String text//System. out. printin ("TOOL" + token. quoteChar ('"'); token. sval); // token. quoteChar ('\' '); 70 // token. quoteChar (' ('); c = token. nextToken ( ); token. quoteChar ('}'); String text
=new String (token. sval) ; //Überlese ( und , und ; to-= new String (token. sval); // read (and, and; to-
//System. out. printin ("TOOL " + 75 ken. whitespaceChars ('(','{' token. sval) ; toediken. whitespaceChars (',',',' tor . getMenueleiste ( ) . addToolToVec totor (pfad, fileName, text) ; ken. whitespaceChars (';',';'//System. out. printin ("TOOL" + 75 ken. whitespaceChars ('(', '{' token. sval); toediken. whitespaceChars (',', ',' tor. getMenueleiste (). addToolToVec totor (path, fileName, text); ken.whitespaceChars (';', ';'
} break; } eise boolean fertig = false; break; while ( ! fertig) ( 85 switch default: ( c=token. nextToken ( ) ) ( case StreamTokeni- zer .TT_E0F: fertig= true; in. close ( ) ; 90 break;} break; } else boolean done = false; break; while (! finished) (85 switch default: (c = token. nextToken ()) (case StreamTokenizer .TT_E0F: finished = true; in. close (); 90 break;
System. out. flush ( ) ; case StreamTokeni-System. out. flush (); case StreamTokeni-
System. out . printi ( "EINLESEN zer .TT_W0RD: DER DATEI " +configFile + " if FERTIG!") ; ( token . sval . equals ( "TOOLBAR" ) ) ( 95 Sy¬System. out. printi ("READ zer .TT_W0RD: THE FILE" + configFile + "if DONE!"); (token. sval. equals ("TOOLBAR")) (95 Sy¬
} catch stem, out .printin ("Lese Toolbar") ; (FileNotFoundException e) { readTool-} catch stem, out .printin ("Read Toolbar"); (FileNotFoundException e) {readTool-
System. err. printin ( conbar (lgcPath) ; figFile + " is not found"); break;System. err. printin (conbar (lgcPath); figFile + "is not found"); break;
) catch (IOException e) { 100 } e.printStackTrace ( ) ; if ) (token. sval. equals ("MENÜ") ) { )//read first Sy*/ stem, out . printin ( "Lese Menue" ) ; 105 readMenuf); break;) catch (IOException e) {100} e.printStackTrace (); if) (token. sval. equals ("MENU")) {) // read first Sy * / stem, out. printin ("Read menu"); 105 readMenuf); break;
* Diese Methode liest eine if Toolbar ein. (token. sval . equals ( "ANALYSISBAR" )* This method reads an if toolbar. (token. sval. equals ("ANALYSISBAR")
* Sie benötigt den Pfad zur 110 ) Datei und den Dateinamen. Sy*/ stem. out. printin ("Lese Analyse- public void readSecond (String Bar") ; lgcPath, String datei) { readAnalyse ( ) ;* It requires the path to the 110) file and the file name. Sy * / stem. out. printin ("Read Analysis- public void readSecond (String Bar"); lgcPath, String file) {readAnalyse ();
String configFile = new 115 break; String (lgcPath + datei); ) int c; if try { (token. sval. equals ( "SHORTCUTS" ) )String configFile = new 115 break; String (lgcPath + file); ) int c; if try {(token. sval. equals ("SHORTCUTS"))
File file = new { File (configFile) ; 120 Sy¬File file = new {File (configFile); 120 sy
FileReader in = new File- stem, out. printin ("Lese Short- Reader ( file) ; cuts") ; token = new StreamTokeni- readShorts ( ) ; zer (in) ; break; //c=token. nextToken ( ) ; if //System. out .printin ( "IN ( token . sval . equals ( "ACCELERATOR" ) 65 der TOOLBAR " +c ) ; ) ( )FileReader in = new file system, out. printin ("Read Short-Reader (file); cuts"); token = new StreamTokeni- readShorts (); zer (in); break; // c = token. nextToken (); if // system. out .printin ("IN (token. sval. equals (" ACCELERATOR ") 65 the TOOLBAR" + c);) ()
Sy) catch (IOException e) ( stem, out . printin ( "Lese Accelera- e.printStackTrace ( ) ; tor") ; ) readAccel ( ) ; 70 //System. out .printin ( "Fertig break; Toolbar") ; ) default:Sy) catch (IOException e) (stem, out. Printin ("Read Accelera- e.printStackTrace (); tor");) readAccel (); 70 // system. out .printin ("Finish break; Toolbar"); ) default:
1 75 private void readNode (String lgcPath) ( in. close ( ) ; int c =' { ' ;1 75 private void readNode (String lgcPath) (in. Close (); int c = '{';
System. out . flush ( ) ; String typname = new System. out . printin ( "EINLESEN String ( ) ; DER DATEI " +configFile + " String image = new String ( ) ; FERTIG!") ; Vector ecken = new Vector ( ) ; //und wichtig für die AnzeiVector konnektoren = new Vecge: tor () ; setLayer ( ) ; Vector konnektorNamen = new setAttributNames ( ) ; 85 Vector () ; } catch Attribute attribute = new (FileNotFoundException e) { StandardAttribute ( ) ;System. out. flush (); String type name = new system. out. printin ("READ String (); THE FILE" + configFile + "String image = new String (); DONE!"); Vector corners = new Vector (); // and important for the AnzeiVector connectors = new Vecge: tor (); setLayer (); Vector connectorNames = new setAttributNames (); 85 vector (); } catch Attribute attribute = new (FileNotFoundException e) {StandardAttribute ();
System. err. printin ( conColor color = new Co- figFile + " is not found") ; lor(255,255,255) ;System. err. printin (conColor color = new CodeFile + "is not found"); lor (255,255,255);
} catch (IOException e) { 90 //System. out. printin ("Ein e.printStackTrace ( ) ; Knoten") ; ) try { while (c != ' ) ' ) { switch (c) { private void readToolbar (String 95 case StreamTokeni- lgcPath) { zer.TT_WORD: int c = ' { ' ; // Wird nicht mehr begobjekte. clear ( ) ; nötigt //System. out .printin ( "Jetzt // if kommt die Toolbar"); 100 (token. sval. equals ("TYPE") ) ( try { // while (c != ' ) ' ) ( c=token . nextToken ( ) ; switch // Sy( c=token . nextToken ( ) ) { stem. out. printin ("Lese TYPE" + case StreamTokeni- 105 token. sval) ; zer.TT_WORD: // break; if // ) (token. sval. equals ("NODE") ) { if (token. sval. equals ("NAME") ) (} catch (IOException e) {90 // system. out. printin ("An e.printStackTrace (); node"); ) try {while (c! = ')') {switch (c) {private void readToolbar (String 95 case StreamTokeni- lgcPath) {zer.TT_WORD: int c = '{'; // Will no longer be objects. clear (); required // system. out .printin ("Now // if the toolbar is coming"); 100 (token. Sval. Equals ("TYPE")) (try {// while (c! = ')') (C = token. NextToken (); switch // Sy (c = token. NextToken ()) { stem. out. printin ("Read TYPE" + case StreamTokeni- 105 token. sval); zer.TT_WORD: // break; if //) (token. sval. equals ("NODE")) {if (token. sval . equals ("NAME")) (
//System. out. rintin ( "Lese Kno110 ten") ; c=token . nextToken ( ) ; readNode (lgcPath) ; typname = new break; String (token. sval) ;//System. out. rintin ("Read Kno110 ten"); c = token. nextToken (); readNode (lgcPath); type name = new break; String (token. Sval);
// Syif stem, out. printin ("Lese NAME" + ( token. sval. equals ("EDGE") ) ( typname) ; break;// Syif stem, out. printin ("Read NAME" + (token. sval. equals ("EDGE")) (type name); break;
//System. out. printin ("Lese Kante"); if readEdge (lgcPath) ; 120 (token. sval. equals ("ATTRIBUTES") ) break; ( attribute = new default: StandardAttribute ( ) ; while ( (c=token.nextToken() ) != '}') { attribute) ;//System. out. printin ("read edge"); if readEdge (lgcPath); 120 (token. Sval. Equals ("ATTRIBUTES")) break; (attribute = new default: StandardAttribute (); while ((c = token.nextToken ())! = '}') {attribute);
String aname = 65 knonew String (token. sval) ; ten. setColor (color) ; c = to// Syken . nextToken ( ) ; stem. out. printin ( "Setze Farbe " +String aname = 65 knonew String (token. Sval); ten. setColor (color); c = to // Syken. nextToken (); stem. out. printin ("set color" +
String wert = new color) ; String (token. sval) ; 70 // Erzeuge Button attribumit Werzeug für Werkzeugleiste te . addAttribut (aname, wert, true) ; ToolButton b = new attributNaToolButton (lgcPath + "i ages/" + men . put ( aname, aname) ; image,String value = new color); String (token. Sval); 70 // Create button attribumit tool for toolbar. addAttribute (aname, value, true); ToolButton b = new attributNaToolButton (lgcPath + "i ages /" + men. Put (aname, aname); image,
// Sy75 stem, out. printIn ("Lese Attribut- typname, te" + attribute) ; new KnotenTool (editor, typname) , break; editor . getToolbar ( ) ) ; ) ediif tor .getToolbar ( ) .addToolButton (b) ( token. sval. equals ("IMAGE") ) (// Sy75 stem, out. printIn ("Read attribute type name, te" + attribute); new node tool (editor, type name), break; editor. getToolbar ()); ) ediif tor .getToolbar () .addToolButton (b) (token. sval. equals ("IMAGE")) (
I I Eintrag in die c=token. nextToken ( ) ; 85 Hashtabeile image = new gobjek- String (token. sval) ; te.put (typname, knoten) ;I I entry in the c = token. nextToken (); 85 hash sections image = new gobjek-String (token. Sval); te.put (type name, node);
// Sy// System. out. printin ("Lese IMAGE" + stem, out. printIn ("In Hashtabeile: image) ; 90 " + gobjekte) ; break;// Sy // system. out. printin ("Read IMAGE" + stem, out. printIn ("In Hashtabeile: image); 90" + gobjekte); break;
} break; if } (token . sval . equals ( "FILLEDPOLYGON if ")) ( 95 (token. sval. equals ("POLYGON") ) ( ek- ek- ken . removeAHElements ( ) ; ken . removeAllElements ( ) ; int x,y; int x,y; while while ( (c=token.nextToken() ) != ')') ( 100 ( (c=token. nextToken () ) != ')') f x = x = ( int ) token . nval ; ( int ) token . nval ; c=token . nextToken ( ) ; c=token . nextToken ( ) ; y = 105 Y =} break; if} (token. sval. equals ("FILLEDPOLYGON if")) (95 (token. sval. equals ("POLYGON")) (ek- ek- ken. removeAHElements (); ken. removeAllElements (); int x, y ; int x, y; while while ((c = token.nextToken ())! = ')') (100 ((c = token.nextToken ())! = ')') fx = x = (int) token . nval; (int) token. nval; c = token. nextToken (); c = token. nextToken (); y = 105 Y =
( int ) token . nval ; ( int ) token . nval ; ek- ek- ken . addElement ( new Point ( x, y) ) ; ken. addElement (new Point (x,y));(int) token. nval; (int) token. nval; ek- ek- ken. addElement (new Point (x, y)); ken. addElement (new Point (x, y));
// Sy// System, out . printin ( "Lese POLYGON" + 110 stem, out. printin ("Lese POLYGON" + ecken ) ; ecken) ;// Sy // system, out. printin ("Read POLYGON" + 110 stem, out. printin ("Read POLYGON" + corners); corners);
) })}
// jetzt sollten // jetzt sollten alle Daten da sein, und es alle Daten da sein, und es// now should // now all data should be there and all data should be there and it
// kann ein Knoten- 115 // kann ein Knotenprototyp erzeugt werden. prototyp erzeugt werden.// A node prototype can be created. prototype can be generated.
GraphObjekt knoten = GraphObjekt knoten = new FilledPolygonKnoten (typname, new PolygonKnoten (typname, ecken, 120 ecken, konnektoren, konnektoren, könnektorNamen, könnektorNamen, attribute ) ; konnektoren, kno65 ten. setColor (color) ; konnektorNamen,GraphObjekt knoten = GraphObjekt knoten = new FilledPolygonKnoten (type name, new PolygonKnoten (type name, corners, 120 corners, connectors, connectors, cannector names, cannector names, attribute); connectors, knots. setColor (color); connector names,
// System, out . println ( "Setze Farbe " + attribute) ; color) ; kno¬// system, out. println ("set color" + attribute); color); kno¬
// Erzeuge Button 70 ten. setColor (color) ; mit Werzeug für Werkzeugleiste // Sy¬// Create button 70th. SetColor (color); with tool for toolbar // Sy¬
// Der Button greift stem, out .println ( "Setze Farbe " + über den typnamen auf den richticolor) ; gen // Erzeuge Button// The button grabs stem, out .println ("set color" + over the type name on the Richticolor); gen // create button
// Knoten zu. 75 mit Werzeug für Werkzeugleiste// knot closed. 75 with tool for toolbar
ToolButton b = new ToolButton b = new ToolButton (lgcPath + "images/" + ToolButton (lgcPath + "images/" + image, image, typname, typname, new KnotenTool (editor, typname) , new KnotenTool (editor, typname) , editor . getToolbar ( ) ) ; editor . getToolbar ( ) ) ; edieditor .getToolbar ( ) .addToolButton (b) tor .getToolbar ( ) .addToolButton (b)ToolButton b = new ToolButton b = new ToolButton (lgcPath + "images /" + ToolButton (lgcPath + "images /" + image, image, type name, type name, new node tool (editor, type name), new node tool (editor, type name), editor. getToolbar ()); editor. getToolbar ()); edieditor .getToolbar () .addToolButton (b) tor .getToolbar () .addToolButton (b)
// Eintrag in die I I Eintrag n die Hashtabeile Hashtabelle gobjek- 90 gobjek- te.put (typname, knoten) ; te.pu (typname, knoten) ;// Entry in the I I entry n the hash table hash table gobjek- 90 gobjekte.put (type name, node); te.pu (type name, node);
//System. out .println ( "In Hashta- //System. out. println ("In Hashtabelle: " + gobjekte) ; belle: " + gobjekte) ;//System. out .println ("In hash // // System. out. println (" In hash table: "+ objects); belle:" + objects);
95 break; break; ) ) if if (token . sval . equals ( "FILLEDOVAL" ) ) (token. sval. equals ("OVAL") ) { { 100 int breιte=10; int breιte=10; mt hoehe=10; int hoehe=10; while while ( (c=token.nextToken() ) '= '}') { ( (c=token. nextToke () ) '= '}') ( breite = breite = 105 (int ) token . nval ; (int) token. nval; c=token . nextToken ( ) ; c=token . nextToken ( ) ; hoehe = hoehe = ( int ) token . nval ; (int) token. nval; 110 // Sy¬95 break; break; )) if if (token. sval. equals ("FILLEDOVAL")) (token. sval. equals ("OVAL")) {{100 int breιte = 10; int breιte = 10; mt height = 10; int height = 10; while while ((c = token.nextToken ()) '='} ') {((c = token. nextToke ())' = '}') (width = width = 105 (int) token. nval; (int ) token. nval; c = token. nextToken (); c = token. nextToken (); height = height = (int) token. nval; (int) token. nval; 110 // Sy¬
// System, out. println ("Lese OVAL" + stem, out. println ("Lese OVAL_FILL" token. nval) ; + token. nval) ; )// system, out. println ("Read OVAL" + stem, out. println ("Read OVAL_FILL" token. nval); + token. nval); )
) // jetzt sollten) // now should
// jetzt sollten 115 alle Daten da sein, und es alle Daten da sein, und es // kann ein Knoten¬// now all data should be there 115 and there should be all data and // it can be a node
// kann ein Knotenprototyp erzeugt werden. prototyp erzeugt werden. GraphObjekt knoten// a node prototype can be created. prototype can be generated. Knot graph object
GraphObjekt knoten = new OvalKnoten ( typname, = new FilledOvalKnoten (typname, 120 hoehe, hoehe, breite, breite , // Sykonnektoren, stem, out .println ( "Die Namen: " + konnektorNamen) ; konnektorNamen, 65 ) break; attribute ) ; ) knoif ten. setColor( color) ; (token. sval. equals ("COLOR") ) (GraphObject node = new oval node (type name, = new filled oval node (type name, 120 height, height, width, width, // Syconnectors, stem, out .println ("The names:" + connector names); connectorNames, 65) break; attribute); ) knoif ten. setColor (color); (token. sval. equals ("COLOR")) (
// Sy70 stem, out. println ( "Setze Farbe " + c=token . nextToken ( ) ; color) ;// Sy70 stem, out. println ("set color" + c = token. nextToken (); color);
// Erzeuge Button //System. out. println ("Lese COLOR" mit Werzeug für Werkzeugleiste 4 token. nval) ;// Create button // system. out. println ("Read COLOR" with tool for toolbar 4 token. nval);
ToolButton b = new 75 int r = ToolButton (lgcPath + "images/" + (int ) token . nval ; image, c=token . nextToken ( ) ; typname,ToolButton b = new 75 int r = ToolButton (lgcPath + "images /" + (int) token. Nval; image, c = token. NextToken (); type name,
//System. out. println ( "Lese COLOR" new KnotenTool (editor, typname) , + token. nval) ; int g = editor. getToolbar ( ) ) ; ( int ) token . nval ; editor. getToolbar ( ) .addToolButton (b) 85 c=token . nextToken ( ) ;//System. out. println ("Read COLOR" new node tool (editor, type name), + token. nval); int g = editor. getToolbar ()); (int) token. nval; editor. getToolbar () .addToolButton (b) 85 c = token. nextToken ();
/ / Eintrag in die //System. out. println ("Lese COLOR" / / Entry into the // system. out. println ("Read COLOR"
Hashtabeile + token. nval) ; gobjekint b = te . put ( typname, knoten) ; 90 ( int ) token . nval ; color = new Co¬Hashtables + token. nval); gobjekint b = te. put (type name, node); 90 (int) token. nval; color = new Co¬
//System. out. println ("In Hashtalor (r,g,b) ; beile: " + gobjekte); break; break; 95 default : ) ) //switch if c=token . nextToken ( ) ; ( token . sval . equals ( "CONNECTORS " ) ) // Sy( stem, out. println ("NAECHSTES konnekto100 TOKEN" + token. sval); ren . removeAllElements ( ) ; } //while int x,y; //c=token . nextToken ( ) ; String name; ) catch (IOException e) { while e . printStackTrace ( ) ; ( (c=token. nextToken () ) != ')') ( 105 ) x = // System, out .println ( "Bende (int) token. nval; readNode") ; c=token . nextToken ( ) ; ) //readNode y = 110//System. out. println ("In Hashtalor (r, g, b); hurry up:" + gobjekte); break; break; 95 default:)) // switch if c = token. nextToken (); (token. sval. equals ("CONNECTORS")) // Sy (stem, out. println ("NEXT Konnekto100 TOKEN" + token. sval); ren. removeAllElements ();} // while int x, y; // c = token.nextToken (); String name;) catch (IOException e) {while e. printStackTrace (); ((c = token. nextToken ())! = ')') (105) x = // System, out .println ("Bende (int) token. nval; readNode"); c = token. nextToken (); ) // readNode y = 110
( int ) token . nval ; c=token . nextToke ( ) ; private void readEdge (String name = tolgcPath) ( ken. sval; 115 // System. out. println ("Eine konnektoKante") ; ren. addElement (new Point(x,y)); int c = ' { ' ; konnektorNaString typname = new men . addElement (name) ; String ( ) ;(int) token. nval; c = token. nextToke (); private void readEdge (String name = tolgcPath) (ken. sval; 115 // System. out. println ("Ein konnektoKante"); ren. addElement (new Point (x, y)); int c = '{'; konnektorNaString type name = new men.addElement (name); String ();
// Sy120 String image = new String () ; stem, out . println ( "Lese KonnektoAttribute attribute = new ren" + konnektoren) ; StandardAttribute ( ) ; 00/14// Sy120 String image = new String (); stem, out. println ("Read KonnektoAttribute attribute = new ren" + connectors); StandardAttribute (); 00/14
2323
Color color = new Color (255, 255, 255) ; c=token . nextToken ( ) ; try ( 65 mkel = while (c '= ' ) ') ( ( int ) token . nval ; switch (c) { // Sycase StreamTokem- stem, out . println ( "Lese Arrow" + zer.TT_WORD: radιus+ Winkel) ;Color color = new color (255, 255, 255); c = token. nextToken (); try (65 mkel = while (c '=') ') ((int) token. nval; switch (c) {// Sycase StreamTokem- system, out. println ("Read Arrow" + zer.TT_WORD: radιus + Winkel) ;
70 } if // jetzt sollten (token.sval.equals ("NAME") ) alle Daten da sein, und es70} if // now (token.sval.equals ("NAME")) all data should be there, and it
// kann ein Kantenc=token . nextToken ( ) ; prototyp erzeugt werden. typname = new 75 GraphObjekt kante = String (token. sval) ; new PfeilKante (typname,// can token an edge. nextToken (); prototype can be generated. type name = new 75 graph object edge = string (token. sval); new arrow edge (type name,
// System, out. println ("Lese NAME" + radius, typname) ; break; wmkel, f attribute) ; (toke . sval . equals ( "ATTRIBUTES" ) kante. setColor (color) ; attribute = new 85 // SyStandardAttribute ( ) ; stem, out.println ("Setze Farbe " + while color) ;// system, out. println ("Read NAME" + radius, type name); break; wmkel, f attribute); (toke. sval. equals ("ATTRIBUTES") kante. setColor (color); attribute = new 85 // SyStandardAttribute (); stem, out.println ("Set color" + while color);
( (c=token. nextToken () ) '= '}') { // Erzeuge Button((c = token. nextToken ()) '='} ') {// create button
String aname = mit Werzeug für Werkzeugleiste new String (token. sval) ; 90 ToolButton b = new c = to- ToolButton (lgcPath + "images/" + ken. nextToken () ; image,String aname = with tool for toolbar new String (token. Sval); 90 ToolButton b = new c = to- ToolButton (lgcPath + "images /" + ken. NextToken (); image,
String wert = new String (token. sval) ; typname, attribu95 te. addAttribut (aname, wert, true) ; new KantenTool (editor, typname) , attributNamen . put (aname, aname) ; editor . getToolbar ( ) ) ;String value = new String (token. Sval); type name, attribu95 te. addAttribute (aname, value, true); new EdgesTool (editor, type name), attribute names. put (aname, aname); editor. getToolbar ());
// Syedistem, out . println ( "Lese Attribut- 100 tor . getToolba ( ) . addToolButton (b ) te" + attribute) ;// system, out. println ("Read Attribute- 100 tor. getToolba (). addToolButton (b) te" + attribute);
// Eintrag in die Hashtabeile break; gobjek¬// entry in the hash section break; gobjek¬
105 te. put (typname, kante) ; if (token . sval . equals ( "IMAGE" ) ) { //System. out.println ("In Hashtabelle: " + gobjekte) ; c=token . nextToken ( ) ; image = new 110 break; String (token. sval) ; )105 te. put (type name, edge); if (token. sval. equals ("IMAGE")) {// system. out.println ("In hash table:" + objects); c = token. nextToken (); image = new 110 break; String (token. Sval); )
// Syif stem, out. println ("Lese IMAGE" + (token.sval.equals ("POINT") ) ( image) ; int durch = 10; break; 115 while ( (c=token.nextToken() ) '= ')') ( i f durch =// Syif stem, out. println ("Read IMAGE" + (token.sval.equals ("POINT")) (image); int through = 10; break; 115 while ((c = token.nextToken ()) '=') ') (if by =
(token . sval . equals ( "ARROW" ) ) ( ( int ) token . nval ; int radius = 10 ; // Syint wmkel = 10 ; 120 stem, out .println ( "Lese Point" + while durch) ;(token. sval. equals ("ARROW")) ((int) token. nval; int radius = 10; // Syint wmkel = 10; 120 stem, out .println ("Read Point" + while through);
( (c=token . nextToken ( ) ) ' = ' ) ' ) ) radius = // jetzt sollten ( int ) token . nval ; alle Daten da sein, und es // kann ein Kanten// Erzeuge Button prototyp erzeugt werden. mit Werzeug für Werkzeugleiste((c = token. nextToken ()) '=') ')) radius = // now (int) should token. nval; all the data will be there and it // can create an edge // create button prototype. with tool for toolbar
GraphObjekt kante = ToolButton b = new new KreisKante (typname, 65 ToolButton (lgcPath + "images/" + image, durch, typname, attribute) ; kan70 new KantenTool (editor, typname) , te. setColor (color) ;GraphObject edge = ToolButton b = new new circle edge (type name, 65 ToolButton (lgcPath + "images /" + image, by, type name, attribute); kan70 new Edge Tool (editor, type name), te. SetColor (color);
// Syeditor . getToolbar ( ) ) ; stem, out .println ("Setze Farbe " + edicolor) ; tor . getToolbar ( ) . addToolButton (b)// Syeditor. getToolbar ()); stem, out .println ("set color" + edicolor); goal . getToolbar (). addToolButton (b)
// Erzeuge Button 75 mit Werzeug für Werkzeugleiste // Eintrag in die// Create button 75 with tool for toolbar // Entry in the
ToolButton b = new Hashtabelle ToolButton (lgcPath + "images/" + gobjekimage, te . put ( typname, kante ) ; typname, //System. out .println ( "In Hashtabelle: " + gobjekte) ; new KantenTool (editor, typname) , break; editor . getToolbar ( ) ) ; 85 editor . getToolbar ( ) . addToolButton (b ) if (token.sval.equals ("SIZE") ) {ToolButton b = new hash table ToolButton (lgcPath + "images /" + gobjekimage, te. Put (type name, edge); type name, // System. Out .println ("In hash table:" + objects); new edge tool (editor, type name ), break; editor. getToolbar ()); 85 editor. getToolbar (). addToolButton (b) if (token.sval.equals ("SIZE")) {
I I Eintrag m die Hashtabeile 90 c=token . nextToken ( ) ; gobjekSyte . put ( typname, kante) ; stem. out. println ("Lese SIZE" + token. nval) ;I I entry m the hash sections 90 c = token. nextToken (); gobjekSyte. put (type name, edge); stem. out. println ("Read SIZE" + token. nval);
//System. out. println ("In Hashtabreak; beile: " + gobjekte) ; 95 if break; (token.sval.equals ("COLOR") ) ( 1 if //System. out. println ("Lese COLOR" (token.sval.equals ("NOEND") ) { 100 + token. nval) ; while c=token . extToken ( ) ; ( (c=token.nextToken() ) '= ')') { int r =//System. out. println ("In Hashtabreak; hurry up:" + objects); 95 if break; (token.sval.equals ("COLOR")) (1 if // System. out. println ("Read COLOR" (token.sval.equals ("NOEND")) {100 + token. nval); while c = token. extToken (); ((c = token.nextToken ()) '=') ') {int r =
// durch = (int) token. nval; ( int ) token . nval ; 105 // Syc=token . nextToken ( ) ; stem, out .println ( "Lese Point" + durch) ; //System. out. println ( "Lese COLOR"// token by = (int). nval; (int) token. nval; 105 // Syc = token. nextToken (); stem, out .println ("Read Point" + through); //System. out. println ("Read COLOR"
) + token. nval) ;) + token. nval);
// jetzt sollten 1 10 int g = alle Daten da sein, und es ( int) token . nval ;// now 1 10 int g = all data should be there and it (int) token. nval;
// kann ein Kantenprototyp erzeugt werden. c=token . nextToken ( ) ;// an edge prototype can be created. c = token. nextToken ();
GraphObjekt kante = new StandardKante (typname, 115 //System. out. println ("Lese COLOR" + token. nval) ; attribute) ; int b = kan( int ) token . nval ; te. setColor (color) ; color = new Co-GraphObject edge = new standard edge (type name, 115 // System. Out. Println ("Read COLOR" + token. Nval); attribute); int b = kan (int) token. nval; te. setColor (color); color = new co-
// Sy120 lor(r,g,b); stem, out. println ("Setze Farbe " + // Sycolor) ; stem, out .println ( "Gelesene Farbe : " + color) ; break; // private void uebergebe// Sy120 lor (r, g, b); stem, out. println ("set color" + // sycolor); stem, out .println ("Read color:" + color); break; // hand over private void
} (String mpunkt, String default: lconl, String ιcon2) ( ) //switch // public void addBut- c=token . nextToken ( ) ; 65 ton ( String menuePunkt, String // Syimagel, String ιmage2) stem, out . println ( "NAECHSTES TOKEN" + token. sval); private void uebergebe ( String ) //while auswahl, String name, String style,} (String mpunkt, String default: lconl, String ιcon2) () // switch // public void addBut- c = token. nextToken (); 65 ton (String menu item, String // Syimagel, String ιmage2) stem, out. println ("NEXT TOKEN" + token. sval); private void pass (String) // while selection, String name, String style,
//c=token . nextToken ( ) ; 70 int size) ( ) catch (IOException e) ( int styleint = 0; e.printStackTrace ( ) ; switch (style. charAt (0) ) { ) case ' B1 :// c = token. nextToken (); 70 int size) () catch (IOException e) (int styleint = 0; e.printStackTrace (); switch (style. CharAt (0)) {) case 'B 1 :
// System. out .println ("Bende styleint = Font. BOLD; readEdge") ; 75 break; case ' P ' :// system. out .println ("Bende styleint = Font. BOLD; readEdge"); 75 break; case 'P':
) //readEdge styleint = Font.PLAIN; break; case ' I ' : private void readMenu ( ) ( styleint = Font. ITALIC; tools . clear ( ) ; break; int c = ' ( ' ; default : try { styleint = Font.PLAIN; while ) ( (c=token. nextToken () ) '= ')') ( 85 Font fönt = new Font (name, //c=token. nextToken ( ) ; styleint, size) ; String namen = toswitch (auswahl . charAt (0) ) ( ken. sval; case 'M' :) // readEdge styleint = Font.PLAIN; break; case 'I': private void readMenu () (styleint = Font. ITALIC; tools. clear (); break; int c = '('; default: try {styleint = Font.PLAIN; while) ((c = token. nextToken ()) '=') ') (85 font blow = new font (name, // c = token. nextToken (); styleint, size); string name = toswitch (selection. charAt (0)) (ken. sval; case 'M':
System. out .println ( "Jetzt edikommt das Menu"+ namen) ; 90 tor . getMenueleiste ( ) . setFont ( fönt c = token. nextToken () ; ); String aufruf = tobreak; ken. sval; case ' P ' :System. out .println ("Now the menu comes up" + name); 90 gates. getMenueleiste (). setFont (blows c = token. nextToken ();); String call = tobreak; ken. sval; case 'P':
System. out. printIn ("Jetzt //noch zu Implementiern kommt das Menu"+ aufruf) ; 95 break; tools .put (new case 'S': String (namen) , new ediString (aufruf) ) ; tor . getStatusleiste ( ) . setFont ( onSystem. out. printIn ("Now // there is still a menu to implement" + call); 95 break; tools .put (new case 'S': String (names), new ediString (call)); goal . get status bar (). setFont (on
) t) ; } catch ( IOException e ) ( 100 break; e . printStackTrace ( ) ; ) )) t); } catch (IOException e) (100 break; e. printStackTrace ();))
) private void uebergebe (String 105 auswahl, int r,ιnt g,mt b) { private void readAnalyse ( ) | if (auswahl. equals ("PAPER") ) ( System. out . println ( "Jetzt edikommt die Analyse"); tor. getZeichenflaeche ( ) . setBackgr ound(new Color (r, g, b) ) ; 110 ) private void readShorts ( ) { if (auswahl. equals ("GRID") ) ( System. out .println ( "Jetzt //noch zu implementiern kommt die Shortcut") ; 1 if 115 ( auswahl . equals ( "MENUBGC" ) ) { private void readAccel ( ) { // edi¬) transfer private void (String 105 selection, int r, ιnt g, mt b) {private void read analysis () | if (selection. equals ("PAPER")) (system. out. println ("Now the analysis is coming up"); tor. getZeichenflaeche (). setBackgr ound (new Color (r, g, b)); 110) private void readShorts () {if (selection. equals ("GRID")) (system. out .println ("Now // the shortcut is yet to be implemented"); 1 if 115 (selection. equals ("MENUBGC")) {private void readAccel () {// edi¬
System. out .println ( "Jetzt tor . getMenueleiste ( ) . setBackgroun kommen die Accelerators") ; d(new Color (r, g,b) ) ; 1 } 120 ifSystem. out .println ("Now tor. getMenueleiste (). setBackgroun the Accelerators are coming"); d (new color (r, g, b)); 1} 120 if
( auswahl. equals ("MENUFGC") ) { // menubar. setForeground (new * Hashtable der Klasse GraColor (r,g,b) ) ; phObjekt ein, ) 65 * -> alle Objekte werden angeif zeigt. ( auswahl . equals ( "STATUSBGC" ) ) { */ edipublic vo d setLayer() { tor. getStatusleiste)). setBackgrou Hashtable alle = new Hasnd (new Color ( r, g,b) ) ; 70 htable (gobjekte. sιze(),1.0f); ) Enumeration e = gobjekif te. keys ( ) ;(selection. equals ("MENUFGC")) { // menubar. setForeground (new * Hashtable of the class GraColor (r, g, b)); phObject on,) 65 * -> all objects are displayed. (selection. equals ("STATUSBGC")) {* / edipublic vo d setLayer () {tor. get status bar)). setBackgrou Hashtable all = new Hasnd (new Color (r, g, b)); 70 htable (objects. Sιze (), 1.0f); ) Enumeration e = gobjekif te. keys ();
( auswahl. equals ( "STATUSFGC" ) ) ( while (e . hasMoreElements ( ) ) edi( tor. getStatusleiste ( ) . setForegrou 75 String key = nd(new Color (r, g, b) ) ; ( String) e . nextElement ( ) ; } alle . put ( key, new if String (key) ) ; (auswahl. equals ("TOOLBGC") ) { ) ediGraphObjekt . toShow = alle; tor . getToolbar ( ) . setBackground (ne ) w Color (r,g,b) ) ; ) ** if * Liefert alle anzeigbaren (auswahl. equals ("TOOLFGC") ) { 85 Layers zurück. edi- */ tor . getToolbar ( ) .setForeground public Enumeration getLayers ( ) (new Color (r, g,b) ) ; ((selection. equals ("STATUSFGC")) (while (e. hasMoreElements ()) edi (tor. getStatusleiste (). setForegrou 75 String key = nd (new Color (r, g, b)); (String) e. nextElement ();} all. put (key, new if String (key)); (selection. equals ("TOOLBGC")) {) ediGraphObjekt. toShow = all; tor. getToolbar (). setBackground (ne) w Color ( r, g, b)); ) ** if * Returns all displayable (selection. equals ("TOOLFGC")) {85 layers. edi- * / tor. getToolbar () .setForeground public enumeration getLayers () (new Color (r, g, b)); (
} return gobjekte . keys () ; if 90 ( auswahl. equals ( "SHORTCUTBGC" ) ) ( editor. getShortcutleiste ( ) . setBackgr * Liefert die maximale Anzahl ound(new Color (r, g,b) ) ; der Layers zurück. ) 95 */ if public int countLayers ( ) { (auswahl. equals ("SHORTCUTFGC") ) { return gobjekte. size () ; edi) tor. getShortcutleiste ( ) . setForegr ound (new Color (r, g, b) ) ; 100 /* +} return objects. keys (); if 90 (selection. equals ("SHORTCUTBGC")) (editor. getShortcutleiste (). setBackgr * Returns the maximum number oand (new Color (r, g, b)); the layers back.) 95 * / if public int countLayers () {(selection. equals ("SHORTCUTFGC")) {return objects. size (); edi) gate. getShortcut bar (). setForegr ound (new Color (r, g, b)); 100 / * +
) * Diese Methode fugt alle an} zeigbaren AttributNamenn in die) * This method adds all attribute names that can be displayed in the
* Hashtable der Klasse Attribute ein,* Hashtable of the attributes class,
* Liefert eine Kopie eines 105 * -> alle Attribute werden anGraphObj ektes gezeigt. * zurück. */ */ public void setAttributNames ( ) public GraphObjekt getOb- ( jekt( String name) { 110 Hashtable alle = new Hasif htable (attributNamen. sιze(),1.0f) (gobjekte. contamsKey (name) ) { GraphObjekt vater = Enumeration e = attributNa(GraphOb ekt) gobjekte.get (name) ; men. keys ( ) ; return 115 while (e .hasMoreElements () ) ( GraphObj ekt ) vater . copy ( ) ; ( ) eise { String key = return null; (String) e. nextElement ( ) ; alle. put (key, new* Provides a copy of a 105 * -> all attributes are shown on a graph object. * back. * / * / public void setAttributNames () public GraphObject getOb- (jekt (String name) {110 Hashtable alle = new Hasif htable (attributNamen. sιze (), 1.0f) (gobjekte.contamsKey (name)) {GraphObjekt father = enumeration e = attributNa (GraphOb ekt) gobjekte.get (name); men. keys (); return 115 while (e .hasMoreElements ()) (GraphObj ekt) vater. copy (); () eise {String key = return null; (String) e. NextElement (); all. Put (key, new
) 120 String (key) ) ;) 120 string (key));
} /** Attribute. toShow = alle;} / ** attributes. toShow = all;
* Diese Methode fugt alle anzeigbaren Ob ekteTypen in die * Hashtabel ein.* This method includes all displayable object types in the * Hashtabel.
* Liefert alle anzeigbaren */ AttributNamen zurück. public void addAttributName (* Returns all displayable * / attribute names. public void addAttributName (
*/ 25 String name) { public Enumeration getAttri- attributNamen. put (new butNames ( ) { String (name) , new String (name) ) ; return attributNamen . keys ( ) ; 1 )* / 25 String name) {public enumeration getAttri- attribute name. put (new butNames () {String (name), new String (name)); return attribute name. keys (); 1 )
30 /** /** *30 / ** / ** *
* Liefert die maximale Anzahl */ der Attribute zurück. public Hashtable getTools() (* Returns the maximum number * / of attributes. public Hashtable getTools () (
*/ return tools; public int countAttributNa- 35 } mes() { return attributNamen. size () ; // public String getConflgFile ( ) } f* / return tools; public int countAttributNa- 35} mes () {return attributeNamen. size (); // public string getConflgFile ()} f
// return configFile ; 40 // ) * Fugt einen Attribut namen in die// return configFile; 40 //) * Adds an attribute name in the
2 . Datei " load"2nd Load file
package commands; 80 ifpackage commands; 80 if
(param[0] .endsWith (" .Ige") || import etc.*; pa- import java.util.*; ram[0] . endsWith ( " . lgf") II(param [0] .endsWith (".Ige") || import etc. *; pa- import java.util. *; ram [0]. endsWith (". lgf") II
Import java.awt.*; pa- import java.io.*; 85 ram[0] . endsWith (". Igt") ) ( import Interfaces.*; // wir wurden von der CommandoZeile aufgerufen ** File file = newImport java.awt. *; pa- import java.io. *; 85 ram [0]. endsWith (". Igt")) (import interfaces. *; // we were called from the command line ** File file = new
* Ladt einen Graphen aus einer File (param[0] ) ; . lgf Datei. 90 */ //System. out. println ("Der Pfad public class Load extends Befehl " + file. getParent () ) ;* Loads a graph from a file (param [0]); . lgf file. 90 * / // system. out. println ("The path public class Load extends command" + file. getParent ());
Vector undo; //System. out .println ("Der Name : 95 " + fιle.getName() ) ; public Load (GraphEditor ediprue- tor) { fe ( file . getParent ()+"/", file . getN super (editor) ; ame ( ) ) ; undo=new Vector ( ) ; } eise { help = 100 //nothingVector undo; //System. out .println ("The name: 95" + fιle.getName ()); public Load (GraphEditor editor) {fe (file. getParent () + "/", file. getN super (editor); ame ()); undo = new vector (); } else {help = 100 // nothing
"<fllename . lgf/ . Ige/ . lgt>" ; ) ) break; default //zuviel Parame- ter public void ausfuehren (String [ ] 105 break; param) ( ) //switch"<fllename. lgf /. Ige /. lgt>"; )) break; default // execute too much parameter public void (String [] 105 break; param) () // switch
//System. out. println (para ) ; int anzahl = param. length; switch (anzahl) ( public void ausfuehren (String case 0 : // bei keinem Ar110 param) ( gument tun wir nichts . edibreak; tor . getStatusleiste ( ) . show ( "Load. case 1 : // bei einen Ar.."); gument wird erst nachgeschaut1 //System. out. println (para); int number = param. length; switch (number) (execute public void (String case 0: // with no Ar110 param) (gument we do nothing. edibreak; tor. getStatusleiste (). show ("Load. case 1: // with an Ar .."); gument is only checked 1
115 ( (Component) editor) . setCursor (Cur sor . getPredefinedCursor (Cursor .WA IT_CURSOR) ) ; undo . addElement (geloescht ) ;115 ((Component) editor). setCursor (Cur sor. getPredefinedCursor (Cursor .WA IT_CURSOR)); undo. addElement (deleted);
FileDialog fd = new FileDia- 65 ) log ( (Frame) editor, null, FileDialog )//else .LOAD) ; edi¬FileDialog fd = new FileDia- 65) log ((Frame) editor, null, FileDialog) // else .LOAD); edi¬
// das hat leider noch keine tor . getZeiehenflaeehe ( ) . drawBuffe Auswirkungen in Windows und Solar ( editor . getGraph ( ) ) ; ris 70// Unfortunately, this has no goal. getZeiegenflaeehe (). drawBuffe effects in Windows and Solar (editor. getGraph ()); ris 70
// ab 1.1.6 gehts doch ( (Component) editor) .setCursor (Cur sor . getDefaultCursor 0 ) ; fd. setDirectory (System. getPropert ediy ( "user .dir") ) ; tor. getStatusleiste ( ) . show("Done" // das schon 75 ) fd.setFile("noname.lgf") ; FilenameFilter filter = new lgFilter () ; Macht Datei laden rückgän- fd. setFilenameFilter (filter) ; gig. fd. show ( ) ; */ String dir = public void undo ( ) ( fd. getDirectory ( ) ; edi¬// from 1.1.6 it works ((Component) editor) .setCursor (Cur sor. getDefaultCursor 0); fd. setDirectory (System. getPropert ediy ("user .dir")); goal. get status bar (). show ("Done" // that's already 75) fd.setFile ("noname.lgf"); FilenameFilter filter = new lgFilter (); Makes file load back. setFilenameFilter (filter); gig. fd. show (); * / String dir = public void undo () (fd.getDirectory (); edi¬
String file = fd. getFile ( ) ; tor . getStatusleiste ( ) . show ( "Undo : // fd. getFile () liefert null Load... ") ; bei Abbruch! 85 if (file<== null) ( ( (Component) editor) . setCursor (Cur // nichts zu tun sor . getPredefinedCursor (Cursor .WA IT_CURSOR) ) ;String file = fd. getFile (); goal . get status bar (). show ("Undo: // fd. getFile () returns null load ..."); if canceled! 85 if (file <== null) (((Component) editor). SetCursor (Cur // nothing to do sor. GetPredefinedCursor (Cursor .WA IT_CURSOR));
( (Component) editor) . setCursor (Cur if ( lundo.isEmpty ( ) ) ( sor . getDefaultCursor ( ) ) ; 90 Vector insert = return; (Vector) undo.lastElement ( ) ; } eise { if (insert != null) {((Component) editor). setCursor (Cur if (lundo.isEmpty ()) (sor.getDefaultCursor ()); 90 Vector insert = return; (Vector) undo.lastElement ();} eise {if (insert! = null) {
// laden editor . getGraph ( ) . removeAll ( )// load editor. getGraph (). removeAll ()
//System. out .println (fd.getDirect 95 ediory () ) ; tor . getGraph ( ) .add(insert)//System. out .println (fd.getDirect 95 ediory ()); goal . getGraph () .add (insert)
//System. out .println (fd. getFile ( ) insert . removeAllElements ( )//System. out .println (fd. getFile () insert. removeAllElements ()
Vector ge- 100 loescht=editor . getGraph ( ) . removeA undo . removeElement (undo . lastEleme 11(); nt () ) ; pruefe (dir, file) ; ) edieditor . getGraph ( ) . setChanged(false) ; 105 tor . getZeiehenflaeehe ( ) . drawBuffe editor . setAuswahl (new Vec- r (editor. getGraph ( ) ) ; tor()); edi¬Vector deleted 100 = editor. getGraph (). removeA undo. removeElement (undo. lastEleme 11 (); nt ()); check (dir, file); ) editor. getGraph (). setChanged (false); 105 gate. getZeiegenflaeehe (). drawBuffe editor. setselection (new vector (editor. getGraph ()); tor ()); edi¬
Vector lastCommands = editor . getGraph ( ) . setChanged (true) ; tor . getLastCommands ( ) ; ediif (lastCommands . size ( ) < 110 tor .getStatusleiste ( ) . show("Done" 10) { ); lastCommands . addElement ( this ) ; ( (Component) editor) . setCursor (Cur ) eise { sor . getDefaultCursor ( ) ) ; lastCom115 ) //undo mands . removeElementAt ( 0 ) ; lastCom/** mands . addElement ( this ) ; * Wiederholt Datei laden..Vector lastCommands = editor. getGraph (). setChanged (true); goal . getLastCommands (); ediif (lastCommands. size () <110 tor .get status bar (). show ("Done" 10) {); lastCommands. addElement (this); ((Component) editor). setCursor (Cur) ice {sor. getDefaultCursor ()); lastCom115) // undo mands. removeElementAt (0); lastCom / ** mands. addElement (this); * Load file repeatedly ..
) */ if (undo.size() < 10) ( 120 public void redo ( ) { ediundo. addElement (geloescht) ; tor .getStatusleiste ( ) . show( "Redo: ) eise { Load...") ; undo . removeElementAt ( 0 ) ; ausfuehren ( ) ; ) / / redo ) eise if (datei . endsWith ( " . lgf" ) ) () * / if (undo.size () <10) (120 public void redo () {ediundo. addElement (deleted); tor .getStatus bar (). show ("Redo:) eise {Load ..."); undo. removeElementAt (0); To run ( ) ; ) / / redo) else if (file. endsWith (". lgf")) (
//System. out . println ( "eine//System. out. println ("a
* Diese Klasse wird leider 65 lgf Datei") ; nicht an File f = new File (pfad +* This class unfortunately becomes 65 lgf file "); not on file f = new file (path +
* die Windows bzw Solaris Komdatei) ; ponente if (f .ex sts () ) (* the Windows or Solaris Comfile); component if (f .ex sts ()) (
* weitergereicht. settings . flleName = da*/ 70 tei; class lgFilter implements Fi- // wir holen uns noch den lenameF lter ( namen des .Ige Files: public boolean accept (File String config = edidir, String name) { tor .getDateischnittstelle ( ) .getCo return ( na- 75 nfig (pfad 4- datei); me. endsWith (".lgf") || //System. out . println ("Der naneue Name der Lgc datei " 4- conme. endsWith (".Ige") | | fig) ; naf = new me. endsWith (".Igt") ); File (settmgs . lgcPath + config); if (f .exists () ) (* passed on. settings. flleName = da * / 70 tei; class lgFilter implements Fi- // we get the lenameF lter (name of the .Ige file: public boolean accept (File String config = edidir, String name) {tor .get file interface () .getCo return (na- 75 nfig (path 4- file); me. EndsWith (".lgf") || // System. Out. Println ("The new name of the Lgc file" 4- conme. EndsWith (".Ige") | | fig); naf = new me. endsWith (".Igt")); File (settmgs. lgcPath + config); if (f .exists ()) (
// ist diese Ige Datei// is this Ige file
/' schon geladen0 / 'already loaded 0
* Diese Methode überprüft, ob if die richtige 85 (settmgs . configFile. equals (confi * Konfigurationsdatei geladen g)) ( ist, ansonsten wird //wir muessen nur die* This method checks if if is the correct 85 (settmgs. ConfigFile. Equals (confi * configuration file loaded g))), otherwise // we only need the
* versucht die richtige zu lalgf Datei laden den. (->Edιtor zurücksetzen) edi¬* tries to load the correct file to lalgf. (-> Reset editor) edi¬
* Dannach wird die gewünschte 90 tor . getDateischnittstelle ( ) . load ( .Igt oder .lgf Datei pfad, datei, editor . getGraph ( ) ) ;* Then the desired 90 gate. get file interface (). load (.Igt or .lgf file path, file, editor. getGraph ());
* geladen. settings . frameName = */ settings . fιleName+ " " private void pruefe (String 4-settιngs .appName 4- " " pfad, String datei) { 95 4-settmgs . Copyright; Einstellungen settmgs= edi( (Frame) editor) . set- tor . getEinstellungen ( ) ; Title (settings . frameName) ; if (datei. endsWith (". Ige" ) ) { } eise { //System. out. println ("eine // wir müssen auch Ige Datei") ; 100 die Konnfigurationsdatei laden File f = new File (pfad + settings .appName = datei) ; Einstellungen. format (config) ; if (f.existsO) ( settings . configFile = settmgs . appName = Einnew String (config) ; stellungen . format (datei ) ; 105 settmgs . frameName = settmgs . fιleName=" "; settings . f leName4 " " settmgs . frameName = set4-settιngs .appName 4- " " tmgs . fιleName+ " " +settmgs . Copyright; 4-settmgs . appName + " " //wir Starten den 4-settιngs . Copyright; 110 Editor neu settings . configFile = new editor. start ( ) ;* loaded. settings. frameName = * / settings. fιleName + "" private void tests (String 4-settιngs .appName 4- "" path, String file) {95 4-settmgs. Copyright; Settings settmgs = edi ((Frame) editor). setter. getSettings (); Title (settings. FrameName); if (file. endsWith (". Ige")) {} else {// system. out. println ("a // we also need ig file"); 100 load the configuration file File f = new File (path + settings .appName = file); Settings. format (config); if (f.existsO) (settings. configFile = settmgs. appName = Einnew String (config); positions. format (file); 105 settmgs. frameName = settmgs. fιleName = ""; settings. f leName4 "" settmgs. frameName = set4-settιngs .appName 4- "" tmgs. fιleName + "" + settmgs. Copyright; 4-settmgs. appName + "" // we start the 4-settιngs. Copyright; 110 Editor new settings. configFile = new editor. start ( );
String (datei) ; edisettings .lgcPath = new tor .getDateischnittstelle ( ) . load ( String (pfad) ; pfad, datei , editor . getGraph ( ) ) ;String (file); edisettings .lgcPath = new tor .get file interface (). load (String (path); path, file, editor.getGraph ());
//wir Starten den Editor 115 } neu } eise { editor. start ( ) ; Sy) eise { stem, err. println ("File not found// we restart the editor 115} new {editor. begin ( ) ; Sy) eise {stem, err. println ("File not found
System. err .println ( "File : " 4- settings .lgcPath 4- config); not found : "4- settings .lgcPath 4- 120 ) datei) ; ) eise { ) System. err .printl ( "File not found : " + pfad + datei) ; ) 50 Interpre¬System. err .println ("File:" 4- settings .lgcPath 4- config); not found: "4- settings .lgcPath 4- 120) file);) else {) System. err .printl (" File not found: "+ path + file); ) 50 Interpre¬
//start () ; ter . setFile (pfad + datei) } eise if (datei. endsWith (". igt" ) ) ( //System. out . println ( "eine //Dateischnittsteile ( ) . load (pfad, Igt Datei") ; 55 datei, editor . getGraph ( ) ) ;//begin () ; ter. setFile (path + file)} else if (file. endsWith (". igt")) (// System. out. println ("a // file interface (). load (path, Igt file"); 55 file, editor getGraph ());
File f = new File (pfad 4 //settmgs . frameName datei) ; = settings . appName + " " 4 setif (f .exists () ) { tings . fileName; settings . fileName = da// ( (Frame) editor) . tei; 60 setTitle (settings . frameName) ; settings . frameName = set// ) eise { tmgs . fιleName+ " // wir müssen auch 4-settmgs . appName 4- " " die Konnfigurationsdatei laden 4-settιngs . Copyright; // settings .appName =File f = new file (path 4 // settmgs. FrameName file); = settings. appName + "" 4 setif (f .exists ()) {tings. fileName; settings. fileName = da // ((Frame) editor). tei; 60 setTitle (settings. FrameName); settings. frameName = set //) ice {tmgs. fιleName + "// we also have to load 4-settmgs. appName 4-" "the configuration file 4-settιngs. Copyright; // settings .appName =
// wir holen uns noch den 65 Einstellungen. format (config) ; namen des .Ige Files: //settings . configFile// we still get the 65 settings. format (config); Name of the .Ige file: // settings. configFile
//String config = edi= new String (config) ; tor .getDateischnittstelle ( ) . getCo //settmgs . frameName nfig (pfad + datei); = settmgs .appName + " " 4- set¬// String config = edi = new String (config); tor .get file interface (). getCo // settmgs. frameName nfig (path + file); = settmgs .appName + "" 4- set¬
//System. out . println ( "Der 70 tmgs . fileName; neue Name der Lgc datei " 4- con//wir Starten den fig) ; Editor neu//System. out. println ("The 70 tmgs. fileName; new name of the Lgc file" 4- con // we start the fig); New editor
//f = new //editor. start ( ) ; File (settings . lgcPath 4 config); // Lgtlnterpreter In//if (f.existsO) { 75 terpreter = new Lgtlnterpre¬// f = new // editor. begin ( ) ; File (settings. LgcPath 4 config); // Lgtlnterpreter In // if (f.existsO) {75 terpreter = new Lgtlnterpre¬
// ist diese Ige Datei ter (editor, pfad 4 datei); schon geladen? // edi//if tor . setlnterpreter (Interpreter) ; (settings. configFile. equals (confi // Interpreg)) { ter, start ( ) ;// is this Ige file ter (editor, path 4 file); already loaded? // edi // if tor. setinterpreter (interpreter); (settings. configFile. equals (confi // Interpreg)) {ter, start ();
//wir muessen nur die // ) Igt Datei laden und interpretie//) eise { ren // SyLgtlnterpreter mter- stem, err. println ("File not found preter=edιtor . getlnterpreter ( ) ; 85 : " + settmgs .lgcPath 4 config);// we just have to load the //) Igt file and interpret //) eise {ren // SyLgtInterpreter mter- stem, err. println ("File not found preter = editor. getlnterpreter (); 85:" + settmgs .lgcPath 4 config);
//)//)
//System. out. println ( "Der Inter} eise { preter : " 4- Interpreter) ; System, err .println ( "File if (Interpreter == not found : " 4- pfad + datei) ; null) { 90 }//System. out. println ("The Inter} ise {preter:" 4-Interpreter); System, err .println ("File if (Interpreter == not found:" 4- path + file); null) {90}
Interpreter = new } eise ( Lgtlnterpreter (editor, pfad 4- daSystem. err . println ("usage: tei) ; java LoGraph2 <path to config- edifιles> AND <fιle.lgc> OR tor. setlnterpreter (Interpreter) ; 95 <fιle.lgf> OR <flle . lgt>" ) ;Interpreter = new} eise (Lgtlnterpreter (editor, path 4- daSystem. Err. Println ("usage: tei); java LoGraph2 <path to config- edifιles> AND <fιle.lgc> OR tor. Setlnterpreter (Interpreter); 95 < fιle.lgf> OR <flle. lgt> ");
Interpreter, start ( ) ;Interpreter, start ();
} eise {} ice {
3 . Datei "toolbar"3rd Toolbar file
package mmi ; 110package mmi; 110
/' import j ava . awt . * ; * Über das aktuelle Tool der import j ava . awt . event . * ; Toolbar werden die/ 'import j ava. awt. *; * About the current tool of import j ava. awt. event. *; They become toolbar
* Maus Aktionen des Benutzers an import etc . * ; 115 den Graphen weitergegeben. import tools . * ; * Die Toolbar ermöglicht das int w = getSize ( ) .width- hinzufugen und entfernen msets . left-insets . πght ;* User mouse actions on import etc. *; 115 passed the graph. import tools. *; * The toolbar allows the int w = getSize () .width- to add and remove msets. left-insets. πght;
* von ToolButtons, und deren zuint h = getSize ( ) .height- gehörigen ActionListener . 65 insets . top-msets .bottom; */ public class Toolbar extends Pag. setColor (editor . getEmstellunge nel { n () . toolbarBgCo ) ;* from ToolButtons and their ActionListeners belonging to int h = getSize () .height. 65 insets. top-msets .bottom; * / public class toolbar extends Pag. setColor (editor. getEmstellunge nel {n (). toolbarBgCo);
GraphEditor editor; for (int ι=0; KborderSize; Tool currentTool; 70 14-+) { ToolButton currentButton; int borderSize = 4; g.draw3DRect (l+msets . left, l+mse ts . top,GraphEditor editor; for (int ι = 0; KborderSize; Tool currentTool; 70 14- +) {ToolButton currentButton; int borderSize = 4; g.draw3DRect (l + msets. left, l + mse ts. top,
* Der Konstruktor erzeugt das w-2*ι-l, h- AuswahlTool, 75 2*ι-l, κborderSιze/2) ; * da dieses immer vorhanden ) sein sollte. */ public Toolbar (GraphEditor editor) { * Fugt einen ToolButton hinzu. this. editor = editor; */ setLayout (new BarLay- public void addToolButout(BarLayout. VERTIKAL, 2) ) ; ton (ToolButton button) { setBackgro- add (button) ; und ( editor . getEmstellungen ( ) . too lbarBgCo) ;* The constructor creates the w-2 * ι-l, h selection tool, 75 2 * ι-l, κborderSιze / 2); * since this should always be present). * / public Toolbar (GraphEditor editor) {* Adds a ToolButton. this. editor = editor; * / setLayout (new BarLay- public void addToolButout (BarLayout. VERTIKAL, 2)); ton (ToolButton button) {setBackgro- add (button); and (editor. getEmteilungen (). too lbarBgCo);
// eine kleine Lücke add(new Space (5, 24) ) ; * Entfernt einen ToolButton. */// add a small gap (new space (5, 24)); * Removes a ToolButton. * /
ToolButton b = new ToolBut- 90 public void deleteTooleBut- ton (editor . getEmstellungen ( ) .Ige ton (ToolButton button) { Path 4ToolButton b = new ToolBut- 90 public void deleteTooleButton (editor. GetEmancements () .Ige ton (ToolButton button) {Path 4
"images/auswahl . gif", /**"images / selection. gif", / **
95 * Setzt das aktuelle Tool; "Select", * wird normalerweise von den ToolButtons aufgerufen. new AuswahlTool (editor) ,thιs) ; */ setCurrentTool (b . getTool ( ) ) ; public void setCurrentTool (Tool setCurrentButton (b) ; 100 currentTool) ( add(b); this . currentTool = currentadd (new Space (5, 24) ) ; Tool; ) this . currentTool . reset ( ) ; )95 * Sets the current tool; "Select", * is normally called by the ToolButtons. new selection tool (editor), thιs); * / setCurrentTool (b.getTool ()); public void setCurrentTool (Tool setCurrentButton (b); 100 currentTool) (add (b); this. currentTool = currentadd (new Space (5, 24)); Tool;) this. currentTool. reset (); )
105 public Insets getlnsets() { ** Insets insets = * Setzt den aktuellen Button, (Insets) (super. getlnsets ( ) ) . clone damit der nächste {); * aktuelle Butten ihn zurückinsets. top += borderSize; 110 setzen kann. msets.left += */ (borderSιze+2) ; public void setCurrentButinsets .bottom += borderSize; ton (ToolButton currentButton) { insets. right += if (this . currentButton l= (borderSιze+2) ; 115 null) return insets; this . currentButton . setUp ( ) ; this . currentButton = currentButton; public void paint (Graphics g) this . currentButton . setDown ( ) ; super .pamt (g) ; 120 Insets insets = super . getlnsets ( ) ; * Liefert das aktuelle Tool public ToolButton getCurrent- zurück. Button ( ) (105 public Insets getlnsets () {** Insets insets = * Set the current button, (Insets) (super. Getlnsets ()). clone the next {) ; * current butts him back. top + = borderSize; 110 can put. msets.left + = * / (borderSιze + 2); public void setCurrentButinsets .bottom + = borderSize; ton (ToolButton currentButton) {insets. right + = if (this. currentButton l = (borderSιze + 2); 115 null) return insets; this. currentButton. set up ( ) ; this. currentButton = currentButton; public void paint (Graphics g) this. currentButton. setDown (); super .pamt (g); 120 insets insets = great. getlnsets (); * Returns the current tool public ToolButton getCurrent-. Button () (
* wird normalerweise von den return currentButton; Zeichenfläche aufgerufen. ) */ 20 public Tool getCurrentTool ( ) ( /** return currentTool; * Liefert den Editor an die ) Buttons weiter.* is normally used by the return currentButton; Called canvas. ) * / 20 public Tool getCurrentTool () (/ ** return currentTool; * Returns the editor to the) buttons.
*/ /** 25 public GraphEditor getEditor ()* / / ** 25 public GraphEditor getEditor ()
* Liefert den aktuellen But{ ton, damit der nächste return editor;* Returns the current but {ton, so that the next return editor;
* aktuelle Butten ihn zurücksetzen kann. */ 30 ) //Toolbar * Current button can reset it. * / 30) // Toolbar

Claims

Patentansprüche claims
1. Verfahren zur Bestimmung einer graphischen Struktur eines technischen Systems, a) bei dem aus einer Menge mehrerer unterschiedlicher Graphen-Struktur-Dateien eine Graphen-Struktur-Datei ausgewählt wird, wobei in einer Graphen-Struktur-Datei jeweils angegeben ist, welche Elemente zu deren Darstellung ausgewählt werden können, um das technische System in seiner Struktur graphisch zu beschreiben, b) bei dem Elemente ausgewählt werden derart, daß mit den ausgewählten Elementen das technische System beschrieben wird, und c) bei dem die Elemente von einem Editor-Programm darge- stellt werden, in welches die ausgewählte Graphen- Struktur-Datei eingebunden worden ist, womit die graphische Struktur des technischen Systems bestimmt ist.1. A method for determining a graphic structure of a technical system, a) in which a graph structure file is selected from a number of different graph structure files, a graph structure file specifying which elements each whose representation can be selected in order to graphically describe the technical system in its structure, b) in which elements are selected in such a way that the technical system is described with the selected elements, and c) in which the elements are presented by an editor program - Provides in which the selected graph structure file has been integrated, which determines the graphic structure of the technical system.
2. Verfahren nach Anspruch 1, bei dem das technische System eine elektronische Schaltung ist.2. The method according to claim 1, wherein the technical system is an electronic circuit.
3. Verfahren nach Anspruch 2, bei dem das technische System eine technische Anlage ist.3. The method according to claim 2, wherein the technical system is a technical system.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Elemente Graphenelemente eines Graphen sind, die das technische System beschreiben.4. The method according to any one of claims 1 to 3, wherein the elements are graph elements of a graph that describe the technical system.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die bestimmte graphische Struktur des technischen Sy¬ stems auf vorgegebene Strukturregeln hin überprüft wird.5. The method according to any one of claims 1 to 4, wherein the specific graphic structure of the technical ¬ Sy stems is checked for predefined structural rules out.
6. Anordnung zur Bestimmung einer Graphen-Struktur, a) mit einem Speicher, in dem eine Menge mehrerer unterschiedlicher Graphen-Struktur-Dateien gespeichert sind, wobei in einer Graphen-Struktur-Datei jeweils angegeben ist, welche Elemente zu deren Darstellung ausgewählt werden können, um einen Graphen zu bilden, b) mit einer Auswahleinheit, mit der eine Graphen- Struktur-Datei aus der Menge der Graphen-Struktur- Dateien ausgewählt werden kann, c) mit einem Prozessor, der derart eingerichtet ist, daß ein Editor-Programm ausführbar ist, mit welchem Editor- Programm unter Verwendung einer aus der Menge der Graphen-Struktur-Dateien ausgewählten Graphen-Struktur- Datei ein Graph mit Elementen der ausgewählten Graphen- Struktur-Datei bestimmt werden kann, womit die Graphen- Struktur bestimmt ist, d) mit einer mit dem Editor-Programm gekoppelten Darstel- lungskomonente, mit der die bestimmte Graphen-Struktur dargestellt werden kann.6. Arrangement for determining a graph structure, a) with a memory in which a number of different graph structure files are stored, each being specified in a graph structure file is which elements can be selected for their representation in order to form a graph, b) with a selection unit with which a graph structure file can be selected from the set of graph structure files, c) with a processor, which is set up in such a way that an editor program can be executed, with which editor program a graph with elements of the selected graph structure file can be determined using a graph structure file selected from the set of graph structure files , with which the graph structure is determined, d) with a display component coupled with the editor program, with which the specific graph structure can be represented.
7. Anordnung nach Anspruch 6, bei der mit dem Graphen eine Struktur eines technischen Systems beschrieben wird.7. Arrangement according to claim 6, in which the graph describes a structure of a technical system.
8. Anordnung nach Anspruch 7, bei der das technische System eine elektronische Schaltung ist .8. Arrangement according to claim 7, wherein the technical system is an electronic circuit.
9. Anordnung nach Anspruch 7, bei der das technische System eine technische Anlage ist.9. Arrangement according to claim 7, wherein the technical system is a technical system.
10. Satz mehrerer Anordnungen zur Bestimmung einer Graphen- Struktur, a) mit einer ersten Anordnung, die einen Speicher aufweist, in dem eine Menge mehrerer unterschiedlicher Graphen-Struktur-Dateien gespeichert sind, wobei in einer Graphen-Struktur-Datei jeweils angegeben ist, welche Elemente zu deren Darstellung ausgewählt werden können, um einen Graphen zu bilden, b) mit einer mit der ersten Anordnung gekoppelten zweiten Anordnung, die folgende Komponenten aufweist: - eine Auswahleinheit, mit der eine Graphen-Struktur- Datei aus der Menge der Graphen-Struktur-Dateien ausgewählt werden kann,10. Set of several arrangements for determining a graph structure, a) with a first arrangement which has a memory in which a number of different graph structure files are stored, each being specified in a graph structure file, which elements can be selected for their representation in order to form a graph, b) with a second arrangement coupled to the first arrangement and having the following components: a selection unit with which a graph structure file can be selected from the set of graph structure files,
- ein Editor-Programm, mit dem unter Verwendung einer aus der Menge der Graphen-Struktur-Dateien ausgewählten Graphen-Struktur-Datei ein Graph mit Elementen der ausgewählten Graphen-Struktur-Datei bestimmt werden kann, womit die Graphen-Struktur bestimmt ist,an editor program with which, using a graph structure file selected from the set of graph structure files, a graph with elements of the selected graph structure file can be determined, with which the graph structure is determined,
- eine mit dem Editor-Programm gekoppelte Darstellungs- komonente, mit der die bestimmte Graphen-Struktur dargestellt werden kann.- A display component coupled to the editor program, with which the specific graph structure can be displayed.
11. Satz von Anordnungen nach Anspruch 10, bei dem die erste Anordnung und die zweite Anordnung über ein Kommunikationsnetz miteinander gekoppelt sind.11. A set of arrangements according to claim 10, wherein the first arrangement and the second arrangement are coupled to one another via a communication network.
12. Satz von Anordnungen nach Anspruch 10 oder 11, bei dem mit dem Graphen eine Struktur eines technischen Systems beschrieben wird.12. Set of arrangements according to claim 10 or 11, in which the graph describes a structure of a technical system.
13. Anordnung nach Anspruch 12, bei dem das technische System eine elektronische Schaltung ist.13. The arrangement according to claim 12, wherein the technical system is an electronic circuit.
14. Anordnung nach Anspruch 12, bei dem das technische System eine technische Anlage ist. 14. Arrangement according to claim 12, wherein the technical system is a technical system.
EP99953666A 1998-09-02 1999-09-01 Method for determining a graphic structure of a technical system and set and configurations for determining a graph structure Withdrawn EP1116143A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19839972 1998-09-02
DE19839972 1998-09-02
PCT/DE1999/002753 WO2000014661A1 (en) 1998-09-02 1999-09-01 Method for determining a graphic structure of a technical system and set and configurations for determining a graph structure

Publications (1)

Publication Number Publication Date
EP1116143A1 true EP1116143A1 (en) 2001-07-18

Family

ID=7879552

Family Applications (1)

Application Number Title Priority Date Filing Date
EP99953666A Withdrawn EP1116143A1 (en) 1998-09-02 1999-09-01 Method for determining a graphic structure of a technical system and set and configurations for determining a graph structure

Country Status (2)

Country Link
EP (1) EP1116143A1 (en)
WO (1) WO2000014661A1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617327A (en) * 1993-07-30 1997-04-01 Xilinx, Inc. Method for entering state flow diagrams using schematic editor programs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0014661A1 *

Also Published As

Publication number Publication date
WO2000014661A1 (en) 2000-03-16

Similar Documents

Publication Publication Date Title
DE60011479T2 (en) XML ROBOT
DE69835616T2 (en) METHOD FOR MANAGING OBJECTS AND OBJECT-LINKED PARAMETER VALUES IN A SIMULATION MODEL
DE60224926T2 (en) Method and computer system for handling incremental data in client-server communication.
DE60112188T2 (en) METHOD AND SYSTEM FOR GENERATING STRUCTURED DOCUMENTS FOR VARIOUS REPRESENTATIONS
DE69734048T2 (en) Acquisition and operation of remote software through an applet-modified browser
DE69817581T2 (en) SYSTEM AND METHOD FOR CONVERTING GRAPHIC PROGRAMS IN HARDWARE IMPLEMENTATIONS
DE4325095A1 (en) Method and apparatus for delayed assembly determination
DE10137574B4 (en) Method, computer program and data processing system for processing network topologies
DE10135445A1 (en) Graphical refreshable web query creation method involves opening and loading web page into web query dialog box in spread sheet application program and sending selected object in displayed web page as web query in program
DE10143101A1 (en) Procedure for the validation of simulation results of a system as well as the equivalence comparison of digital circuits
DE69532307T2 (en) Expression propagation for hierarchical net lists
DE10051645A1 (en) Method and device for controlling versions and producing logs and lists in a process control system incorporates a computer-readable medium and a processor for communicating with that medium.
DE69907714T2 (en) COMPONENT-BASED SOURCE CODE GENERATOR METHOD
DE10043905A1 (en) Simulation of electronic circuits and systems involves arranging interface adapting current value transport arrangement between connections of analog and digital simulation circuit elements
EP1005215B1 (en) Method and system for editing configuration data in telecommunications systems
EP1062604B1 (en) Method and device for determining a fault in a technical system
DE10324594A1 (en) Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment
DE69829854T2 (en) Method and device for generating virtual scenes
EP0909421B1 (en) Computer-assisted process for determining a system consistency function
EP1116143A1 (en) Method for determining a graphic structure of a technical system and set and configurations for determining a graph structure
DE4310615C2 (en) Designing electrical devices with multiple design tools that are at least partially incompatible with each other
WO2003054727A1 (en) Categorizing system for data objects and method for verifying the consistency of assignments of data objects to categories
EP1291742B1 (en) Method for preparing a computer simulation of a vehicle electrical installation
EP1332446A2 (en) System, method and computer programme for configuring objects
DE102004023634B4 (en) Method for checking the completeness and consistency of an information library

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20010112

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

17Q First examination report despatched

Effective date: 20020531

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20021011

RBV Designated contracting states (corrected)

Designated state(s): DE FR GB