Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
private:mvw:start [2013/05/06 14:07]
Patrick Wacker First thoughts
private:mvw:start [2013/05/06 14:52] (aktuell)
Patrick Wacker further editing
Zeile 6: Zeile 6:
 ===== First thoughts about the Design =====  ===== First thoughts about the Design ===== 
  
-  * The database should be abstracted from the application. +  * The database ​access ​should be abstracted from the application.
-  * +
  
  
-<​graphviz dot left>+<​graphviz dot center>
 digraph abstractionElements { digraph abstractionElements {
  graph [ rankdir="​LR"​ ];  graph [ rankdir="​LR"​ ];
Zeile 16: Zeile 15:
   
  subgraph cluster1 {  subgraph cluster1 {
-                style="​plaintext";​ +                style="​plaintext";​ color="​invis"; ​label = "​Applications";​ labelloc=t; labeljust=c;​ 
-                ​color="​invis";​+
                 app1 [ label="​Application 1", shape="​ellipse",​ style=filled,​ fillcolor=lightgray ];                 app1 [ label="​Application 1", shape="​ellipse",​ style=filled,​ fillcolor=lightgray ];
                 app2 [ label="​Application 2", shape="​ellipse",​ style=filled,​ fillcolor=lightgray ];                 app2 [ label="​Application 2", shape="​ellipse",​ style=filled,​ fillcolor=lightgray ];
-                label = "​Applications";​ 
-                labelloc=t; 
-                labeljust=c;​ 
         }         }
   
  subgraph cluster2 {  subgraph cluster2 {
-                style="​plaintext";​ +                style="​plaintext";​ color="​invis"​; label = "MVW Librarys";​ labelloc=t; labeljust=c;
-                ​color="​invis";​+
                 lib [ label="​library",​ shape="​record",​ height=0.8, style=filled,​ fillcolor=yellow ];                 lib [ label="​library",​ shape="​record",​ height=0.8, style=filled,​ fillcolor=yellow ];
-                label = "MVW Librarys"​ 
-                labelloc=t; 
-                labeljust=c;​ 
         }         }
         ​         ​
        ​ subgraph cluster3 {        ​ subgraph cluster3 {
-                style="​plaintext";​ +                style="​plaintext";​ color="​invis"​; label = "MVW Database";​ labelloc=t; labeljust=c;
-                ​color="​invis";​+
                 db [ label="​Database",​ shape="​record",​ height=0.8, style=filled,​ fillcolor=lightblue ];                 db [ label="​Database",​ shape="​record",​ height=0.8, style=filled,​ fillcolor=lightblue ];
-                label = "MVW Database";​ 
-                labelloc=t; 
-                labeljust=c;​ 
         }         }
- 
  
  app1 -> lib [ arrowhead="​open",​ style="​solid"​ ];  app1 -> lib [ arrowhead="​open",​ style="​solid"​ ];
Zeile 51: Zeile 38:
  }  }
 </​graphviz>​ </​graphviz>​
 +
 +
 +
 +  * The library should be expanded trough items from the database
 +    * QtScript
 +    * GUIs for QtScript
 +    * Plugins (Extensions for different cases)
 +
 +
 +<​graphviz dot center>
 +digraph libdatabase {
 + graph [ rankdir="​LR"​ ];
 + node [shape=record,​ fontname=Helvetica,​ fontsize=10];​
 +
 + subgraph cluster1 {
 +                style="​plaintext";​ color="​invis";​ label = "MVW Database";​ labelloc=t; labeljust=c;​
 +
 +                db [ shape="​record",​ height=1.2, style=filled,​ fillcolor=lightblue,​
 +                     ​label="<​t1>​ table: scripts|<​t2>​ table: Guis|<​t3>​ table: plugins"​];​
 +        }
 +        ​
 +        subgraph cluster2 {
 +                style="​box";​ color="​yellow";​ label = "MVW Libraries";​ labelloc=t; labeljust=c;​
 +
 +                lib1 [ label="​connection",​ shape="​record",​ style=filled,​ fillcolor=yellow];​
 +                lib2 [ label="​usersettings",​ shape="​record",​ style=filled,​ fillcolor=yellow];​
 +                lib3 [ label="​programsettings",​ shape="​record",​ style=filled,​ fillcolor=yellow];​
 +                lib4 [ label="​rights",​ shape="​record",​ style=filled,​ fillcolor=yellow];​
 +                lib5 [ label="​scripts",​ shape="​record",​ style=filled,​ fillcolor=yellow];​
 +                lib6 [ label="​guis",​ shape="​record",​ style=filled,​ fillcolor=yellow];​
 +                lib7 [ label="​plugins",​ shape="​record",​ style=filled,​ fillcolor=yellow];​
 +        }
 +
 +        lib1 -> db;
 +        lib2 -> db;
 +        lib3 -> db;
 +        lib4 -> db;
 +        lib5 -> db;
 +        lib6 -> db;
 +        lib7 -> db;
 +                ​
 +}
 +</​graphviz>​
 +
 +
 +
 +==== Textual descriptions for the libraries ====
 +
 +The libmvw.so should contain classes for the connection and query
 +to the database.
 +
 +So that each application can individual access the database and it should be easy to design one commandline version and one GUI version.
 +
 +The Scripts in the database should extend every function of the library. (prehook_class_function,​ posthook_class_function)
 +
 +
 +All details should be hidden between an Interface class, which
 + ​should be the only one accessible from the application. ​
 +(NO direct connection to the database, except: the user has the
 +right for that (admin_db)).
 +
 +
 +
 +
Projektwerkzeuge