Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| 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)). | ||
| + | |||
| + | |||
| + | |||
| + | |||