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)). | ||
+ | |||
+ | |||
+ | |||
+ |