Neu vorgestellt

Vorlagen-Manager

Vorlagen-Manager

Der geplante Freigabetermin für die Version 5.8.01 ist der 27. Juli, rechtzeitig vor dem Erscheinen von Windows 10. Neben der Unterstützung für das neue Betriebssystem wird auch eine erweiterte Plugin-Schnittstelle des Designers enthalten sein. Dieser Artikel stellt den Vorlagen-Manager vor, welcher die neue Funktionalität der API verwendet.

Version 1.1

Die Plugin-Schnittstelle liegt nun in der Version 1.1 vor. Die API ist abwärtskompatibel mit der Vorgängerversion 1.0. Neue Funktionen setzen allerdings den Designer des CONZEPT 16 Release 5.8 voraus.

  • Das Senden von Befehlen kann nun auch synchron durchgeführt werden. Die Plugin-Anwendung wartet auf die Antwort des Designers und ist in der Lage Rückgabeargumente zu empfangen. Das ist eine wichtige Voraussetzung, damit Informationen vom Designer abgefragt werden können.
  • Es können Zeichenketten und beliebige binäre Informationen zum Designer übertragen und von diesem empfangen werden. Binäre Daten können Base64-kodiert gesendet und beim Empfang dekodiert werden. Durch die Verwendung des Memory-Objektes entfällt die Größenlimitation auf 4KB.
Designer in der Version 5.8.

Der Designer implementiert neue Pluginbefehle und -ereignisse.

  • Das Plugin kann Menüpunkte im Designer hinzufügen. So kann z.B. das Kontextmenü für die selektierten Objekte um eigene Menüpunkte erweitert werden. Wird der Menüpunkt vom Anwender ausgewählt, erhält das Plugin ein entsprechendes Ereignis.
  • Der Designer stellt Pluginbefehle für das Arbeiten mit selektierten Objekten zur Verfügung. So können z.B. Objektinformationen abgefragt und Objekte erstellt werden.
  • Im Designer geöffnete Formulare können als XML exportiert oder im vectorsoft-eigenen Format (RSC) exportiert und importiert werden.
  • Über Storage-Befehle ist das Plugin in der Lage, beliebige Daten zu speichern und bei Bedarf wiederherzustellen. So können z.B. Plugin-Einstellungen permanent designerseitig gespeichert werden.
Der Vorlagen-Manager

Oftmals wird ein bestimmtes Objekt oder eine Gruppe von Objekten an unterschiedlichen Stellen der Anwendung eingesetzt. Sei es die Schaltfläche, die eine bestimmte Breite oder Höhe besitzen soll, ein Firmen- oder Produktlogo, das in unterschiedliche Frames platziert wird oder die Eingabe einer Kundennummer, bestehend aus Label und Edit-Objekt. Zwar können die entsprechenden Objekte aus den existierenden Frames per ‘Copy & Paste’ in neue Frames oder Container übertragen werden. Hierzu muss der entsprechende Frame aber erst geöffnet werden. Mit steigender Komplexität der Anwendung wächst aber auch die Unübersichtlichkeit, wenn die zu kopierenden Objekte in unterschiedlichen Frames verstreut vorliegen.

An dieser Stelle setzt der Vorlagen-Manager an. Mit diesem können vorhandene Objekte, die immer wieder verwendet werden, in einer Ordnerstruktur als Vorlage abgelegt und zu einem anderen Zeitpunkt wiederhergestellt werden.

Das Plugin

Der Vorlagen-Manager wurde als Plugin-Anwendung realisiert. Dies bedeutet, dass die neue Funktionalität optional ist und bei Bedarf zugeschaltet werden kann. Ein Entwickler kann aber auch gänzlich auf den Vorlagen-Manager verzichten, wenn die Funktionalität von ihm nicht benötigt wird.

Die Verwendung

Damit der Vorlagen-Manager zum Einsatz kommt, muss zunächst der Designer mit Plugin-Unterstützung gestartet werden. Im Hauptmenü des Designers ist daraufhin der Menüpunkt “Plugins” vorhanden, jedoch ausgegraut, da kein Plugin verbunden ist (Abb.1).

Designer-MenüAbb. 1: Menüpunkt “Plugins”

Wird der Vorlagen-Manager gestartet, ändert sich das Erscheinungsbild (Abb.2). Im Menü ist zusätzlich das Untermenü des Plugin-Managers vorhanden, mit dem die Einstellungen des Plugins konfiguriert werden können.

Verbundenes PluginAbb. 2: Verbunden mit Vorlagen-Manager
Die Benutzeroberfläche

Die Oberfläche des Vorlagen-Managers besteht aus einem einfachen Fenster, bestehend aus Baumansicht, Vorschaubereich und Befehlszeile (Abb.3).

Vorlagen-ManagerAbb. 3: Das GUI des Vorlagen-Managers
Baumansicht

Die Baumansicht enthält die vorhandenen Vorlagen und Vorlagenordner. Hierbei gibt es eine Ansicht für die Vorlagen aller Benutzer (globale Vorlagen) der Datenbank und eine Ansicht für den im Designer angemeldeten Benutzer (persönliche Vorlagen).

Vorschau

Unter der Baumansicht befindet sich der Vorschaubereich. Ist eine Vorlage in der Baumansicht ausgewählt, dann wird hier ein kleines Vorschaubild der Vorlage angezeigt, welches zum Zeitpunkt der Vorlagenerstellung generiert wurde. Hierdurch lässt sich schnell erkennen, welche Objekte die Vorlage enthält.

Befehlszeile

Die Befehlszeile besteht aus mehreren Schaltflächen für die einzelnen Funktionen des Plugin-Managers. Die Schaltflächen (von links nach rechts) sind wie folgt:

  • Neu (Strg+N,Einfg.)
    Die Befehlszeile wechselt in den Eingabemodus. Durch Eingabe eines Namens mit anschließendem Klick auf die OK-Schaltfläche (Häkchen) oder durch Betätigung der Enter-Taste wird ein Vorlagenordner erstellt. Ein Klick auf die Cancel-Schaltfläche oder Betätigung der Escape-Taste kehrt zurück zur Befehlszeile. Sofern ein Vorlagenordner selektiert ist, wird eine weitere Schaltfläche angezeigt (Pfeilsymbol nach unten bzw. rechts). Wird diese oder die Taste Strg+(+) betätigt, kann bestimmt werden, ob der anzulegende Ordner auf derselben Ebene oder unterhalb des selektierten Ordners angelegt wird.
  • Bearbeiten (F2)
    Die Befehlszeile wechselt in den Editiermodus. Hier kann der selektierte Vorlagenordner oder die Vorlage umbenannt werden.
  • Löschen (DEL)
    Die Befehlszeile wechselt in den Löschmodus. Hier kann der selektierte Vorlagenordner (samt Unterordner/Vorlagen) oder die selektierte Vorlage nach Bestätigung gelöscht werden.
  • Vorschau
    Schaltet den Vorschaubereich ein bzw. aus.
  • Einstellungen
    Zeigt Informationen und Konfigurationseinstellungen an.
  • Vorlagen für alle Benutzer (globale Vorlagen)
    Ist diese Schaltfläche selektiert, dann werden die Vorlagen aller Benutzer der verbundenen Datenbank angezeigt.
  • Vorlagen des angemeldeten Benutzers (persönliche Vorlagen)
    Ist diese Schaltfläche selektiert, dann werden die Vorlagen des angemeldeten Benutzers der verbundenen Datenbank angezeigt.
Arbeiten mit Vorlagen

Eine Vorlage kann im Designer erstellt werden, indem die gewünschten Objekte selektiert und anschließend per Rechtsklick das Kontextmenü aufgerufen wird. Wenn der Vorlagen-Manager gestartet ist, befindet sich dort der Menüpunkt “Als Vorlage speichern”. Wird dieser ausgewählt, dann wird die Vorlage unterhalb des im Vorlagen-Manager selektierten Vorlagenordners gespeichert (Abb.4).

Erstellen einer VorlageAbb. 4: Erstellen einer Vorlage

Über den Menüpunkt “Aus Vorlage einfügen” kann die im Vorlagen-Manager selektierte Vorlage eingefügt werden. Alternativ geschieht dies auch über einen Doppelklick auf die selektierte Vorlage in der Baumansicht.
Der Vorlagen-Manager ist in der CodeLibrary der Version 5.8.01 enthalten.

8 Kommentare

8 Kommentare “Vorlagen-Manager”

  1. @Andreas:
    Für dringende Fälle steht, wie oben erwähnt, eine Vorabversion zur Verfügung. Diese kann unter Windows 10 eingesetzt werden. Falls Sie auf Schwierigkeiten gestoßen sind, melden Sie sich bitte bei unserem Support unter der Nummer:
    06104 660-300.

  2. @Andreas:
    Die geplanten Erweiterungen für die Version 5.8.01 sind umfangreicher als zuvor angenommen. Wir möchten aber nur eine gut getestete Version freigeben. Deshalb bitten wir noch um etwas Geduld.

  3. @Kilian:
    Die Ausführung von Code im Designer wäre prinzipiell auch machbar. Die Durchführung wäre mit dem Designer-Menüpunkt "Prozedur/Ausführen" vergleichbar. Für die Rückgabe der Argumente an das Plugin müsste man sich natürlich noch etwas überlegen.

  4. Super, vielen Dank für die Info & die gute Arbeit am Plugin-System.

    Wie gestern bereits erwähnt, würde ich auch gern beliebige Prozeduren/Funktionen von einem Plugin aus starten und deren Ergebnis empfangen können. Ich weiss nicht, ob etwas derartiges schon geht, aber ich habe den Eindruck, dass dies derzeit noch nicht möglich ist.

    Z.B. nehmen wir an, es gibt eine C16-Prozedur/Funktion, die sämtliche Druck- und GUI-Objekte durchläuft auf der Suche nach einem übergebenen Bezeichner und eine Liste mit allen Treffern zurückliefert. Nehmen wir weiter an, zur Vorbereitung, diese Funktion über die Plugin-Schnittstelle zu nutzen, wurde eine weitere Funktion geschrieben, die die andere Funktion aufruft und deren Ergebnis z.B. als XML o.ä. serialisiert. Im Plugin würde ich dann gerne diese Wrapperfunktion aufrufen und die Rückgabe empfangen können, um damit dann im Plugin wieder irgendwas zu machen usw….

  5. @Kilian:
    das stimmt, Prozeduren lassen sich im Moment noch nicht über die Plugin-Schnittstelle übertragen. Die Version 1.1 der Plugin-Schnittstelle hat jedoch die entsprechenden Bedingungen geschaffen, so dass dies in einer zukünfitgen Version des CONZEPT 16-Designers realisiert werden kann.

    Grundsätzlich finde ich den Vorschlag sehr gut, dass es für die Plugins eine Möglichkeit gibt, diese automatisch mit dem Designer zu starten. Eine denkbare Möglichkeit wäre es, die Plugins in einer speziellen Konfigurationsdatei einzutragen, die beim Starten des Designers ausgewertet wird. Hierbei wäre es auch egal, ob es sich um CONZEPT 16-Plugins oder nicht CONZEPT 16-basierte Plugins handelt. Wir werden uns in dieser Richtung weitere Gedanken machen.

  6. Das klingt nach einer guten Weiterentwicklung des Plugin-Systems.

    Die neue Möglichkeit pluginspezifische Menüpunkte zu erstellen, dürfte sich als sehr praktisch erweisen. Ebenso gut finde ich, dass es möglich sein wird, Objekte aus dem Designer in beiden unterstützen Formaten über die Plugin-Schnittstelle auszutauschen. Die Möglichkeit Dialoge und Druckvorlagen mit einem Befehl zu importieren (gem. Hilfe geht StoImport nicht), vermisse ich schon lange, aber vielleicht muss ich in Zukunft dann eben den Umweg über ein Plugin wählen.

    Wird es denn auch möglich sein, Prozedurcodes über die Plugin-Schnittstelle zu übertragen, oder erst in einer späteren Version des Plugin-Systems?

    Wenn ich die Doku der akt. Plugin-Schnittstelle richtig verstehe, ist es derzeit nicht möglich, eine beliebige Prozedur mit Hilfe des Plugin-Systems auszuführen, sondern nur die Startprozedur. Dies wäre allerdings ebenfalls eine praktische Erweiterung, falls dies in der neuen Version nicht schon möglich sein sollte 🙂

    Was ich mich grundsätzlich derzeit noch frage ist, ob es wirklich so praktisch ist, dass man all die Plugins ständig selber starten muss, es wäre m. E. besser, wenn man ein Plugin irgendwie so im Designer registrieren/integrieren könnte, dass es beim Start des Designers mitgestartet wird, ohne dass man jedesmal daran denken muss. Bei nicht C16-basierten Plugins könnte man evtl. einfach die ausführbare Datei irgendwie in den Designer importieren, so dass der Designer diese Datei dann auf jedem Client, auf dem er ausgeführt wird, im Rahmen seines Startprozesses automatisch ausführen könnte. Bei C16-basierten Plugins könnte man vielleicht die entsprechenden Aufrufparameter des C16-Plugins (Server, DB, Benutzer usw.) speichern und dann eben dieses im Rahmen des Startprozesses des Designers automatisch mitstarten.

Kommentar abgeben