Przeglądaj źródła

PluginGenerator: Added core and ui plugins with basic classes

Sascha Zelzer 15 lat temu
rodzic
commit
41f85fd4d3
25 zmienionych plików z 1491 dodań i 0 usunięć
  1. 48 0
      Applications/ctkPluginGenerator/CMakeLists.txt
  2. 52 0
      Applications/ctkPluginGenerator/ctkPluginGenerator.cpp
  3. 52 0
      Applications/ctkPluginGenerator/ctkPluginGenerator.h
  4. 52 0
      Applications/ctkPluginGenerator/ctkPluginGeneratorMain.cpp
  5. 287 0
      Applications/ctkPluginGenerator/ctkPluginGeneratorMainWindow.ui
  6. 14 0
      Applications/ctkPluginGenerator/target_libraries.cmake
  7. 3 0
      CMakeLists.txt
  8. 33 0
      Plugins/org.commontk.plugingenerator.core/CMakeLists.txt
  9. 62 0
      Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorAbstractTemplate.cpp
  10. 52 0
      Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorAbstractTemplate.h
  11. 27 0
      Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCmdArg.cpp
  12. 32 0
      Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCmdArg.h
  13. 35 0
      Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCodeModel.cpp
  14. 50 0
      Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCodeModel.h
  15. 27 0
      Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorExtension.cpp
  16. 50 0
      Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorExtension.h
  17. 9 0
      Plugins/org.commontk.plugingenerator.core/target_libraries.cmake
  18. 34 0
      Plugins/org.commontk.plugingenerator.ui/CMakeLists.txt
  19. 106 0
      Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorAbstractUiSection.cpp
  20. 82 0
      Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorAbstractUiSection.h
  21. 59 0
      Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorMainSection.cpp
  22. 50 0
      Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorMainSection.h
  23. 88 0
      Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorMainSection.ui
  24. 178 0
      Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorManifestSection.ui
  25. 9 0
      Plugins/org.commontk.plugingenerator.ui/target_libraries.cmake

+ 48 - 0
Applications/ctkPluginGenerator/CMakeLists.txt

@@ -0,0 +1,48 @@
+PROJECT(ctkPluginGenerator)
+
+#
+# See CTK/CMake/ctkMacroBuildApp.cmake for details
+#
+
+SET(KIT_SRCS
+  ctkPluginGenerator.cpp
+  ctkPluginGeneratorMain.cpp
+)
+
+# Headers that should run through moc
+SET(KIT_MOC_SRCS
+  ctkPluginGenerator.h
+)
+
+# UI files
+SET(KIT_UI_FORMS
+  ctkPluginGeneratorMainWindow.ui
+)
+
+# Resources
+SET(KIT_resources
+  
+)
+
+# Target libraries - See CMake/ctkMacroGetTargetLibraries.cmake
+# The following macro will read the target libraries from the file 'target_libraries.cmake'
+ctkMacroGetTargetLibraries(KIT_target_libraries)
+
+# Additional directories to include - Not that CTK_INCLUDE_LIBRARIES is already included
+SET(KIT_include_directories
+)
+
+ctkMacroBuildApp(
+  NAME ${PROJECT_NAME}
+  INCLUDE_DIRECTORIES ${KIT_include_directories}
+  SRCS ${KIT_SRCS}
+  MOC_SRCS ${KIT_MOC_SRCS}
+  UI_FORMS ${KIT_UI_FORMS}
+  TARGET_LIBRARIES ${KIT_target_libraries}
+  RESOURCES ${KIT_resources}
+  )
+
+# Testing
+IF(BUILD_TESTING)
+#   ADD_SUBDIRECTORY(Testing)
+ENDIF(BUILD_TESTING)

+ 52 - 0
Applications/ctkPluginGenerator/ctkPluginGenerator.cpp

@@ -0,0 +1,52 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#include "ctkPluginGenerator.h"
+#include "ui_ctkPluginGeneratorMainWindow.h"
+
+
+ctkPluginGenerator::ctkPluginGenerator(QWidget *parent) :
+    QMainWindow(parent),
+    ui(new Ui::ctkPluginGeneratorMainWindow)
+{
+    ui->setupUi(this);
+
+    this->setStatusBar(0);
+
+    connect(ui->cancelButton, SIGNAL(clicked()), qApp, SLOT(quit()));
+
+    //ctkPluginGeneratorAbstractSection* section = new ctkPluginGeneratorMainSection();
+    //ui->sectionsStack->addWidget(section->createWidget(ui->sectionsStack));
+    //sectionList.append(section);
+
+    //connect(section, SIGNAL(errorMessageChanged(QString)), this, SLOT(sectionErrorMessage(QString)));
+}
+
+ctkPluginGenerator::~ctkPluginGenerator()
+{
+    delete ui;
+}
+
+void ctkPluginGenerator::sectionErrorMessage(const QString& errorMsg)
+{
+  ui->sectionMessageLabel->setText(errorMsg);
+}
+

+ 52 - 0
Applications/ctkPluginGenerator/ctkPluginGenerator.h

@@ -0,0 +1,52 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#ifndef CTKPLUGINGENERATOR_H
+#define CTKPLUGINGENERATOR_H
+
+#include <QMainWindow>
+
+#include <ctkPluginGeneratorAbstractSection.h>
+
+namespace Ui {
+    class ctkPluginGeneratorMainWindow;
+}
+
+class ctkPluginGenerator : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    explicit ctkPluginGenerator(QWidget *parent = 0);
+    ~ctkPluginGenerator();
+
+public slots:
+
+    void sectionErrorMessage(const QString& errorMsg);
+
+private:
+
+    QList<ctkPluginGeneratorAbstractSection*> sectionList;
+
+    Ui::ctkPluginGeneratorMainWindow *ui;
+};
+
+#endif // CTKPLUGINGENERATOR_H

+ 52 - 0
Applications/ctkPluginGenerator/ctkPluginGeneratorMain.cpp

@@ -0,0 +1,52 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#include <ctkPluginFrameworkFactory.h>
+#include <ctkPluginFramework.h>
+#include <ctkPluginException.h>
+
+#include "ctkPluginGenerator.h"
+
+#include <QApplication>
+
+
+int main(int argv, char** argc)
+{
+  QApplication app(argv, argc);
+
+  //ctkPluginFrameworkFactory fwFactory;
+  //ctkPluginFramework* framework = fwFactory.getFramework();
+
+//  try {
+//    framework->init();
+//  }
+//  catch (const ctkPluginException& exc)
+//  {
+//    qCritical() << "Failed to initialize the plug-in framework:" << exc;
+//    exit(1);
+//  }
+
+  ctkPluginGenerator generator; //(framework);
+  generator.show();
+
+  return app.exec();
+
+}

+ 287 - 0
Applications/ctkPluginGenerator/ctkPluginGeneratorMainWindow.ui

@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ctkPluginGeneratorMainWindow</class>
+ <widget class="QMainWindow" name="ctkPluginGeneratorMainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>800</width>
+    <height>600</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>CTK Plugin Generator</string>
+  </property>
+  <property name="unifiedTitleAndToolBarOnMac">
+   <bool>true</bool>
+  </property>
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <widget class="QSplitter" name="splitter">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+        <horstretch>0</horstretch>
+        <verstretch>1</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="childrenCollapsible">
+       <bool>false</bool>
+      </property>
+      <widget class="QWidget" name="widget_5" native="true">
+       <layout class="QVBoxLayout" name="verticalLayout_3">
+        <property name="margin">
+         <number>0</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="sectionListLabel">
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>40</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;table border=&quot;0&quot; style=&quot;-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;&quot;&gt;
+&lt;tr&gt;
+&lt;td style=&quot;border: none;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt; font-weight:600;&quot;&gt;Plugin&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt; font-weight:600;&quot;&gt;Generator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</string>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QListWidget" name="sectionList">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize">
+           <size>
+            <width>200</width>
+            <height>0</height>
+           </size>
+          </property>
+          <item>
+           <property name="text">
+            <string>Main</string>
+           </property>
+          </item>
+          <item>
+           <property name="text">
+            <string>Dependencies</string>
+           </property>
+          </item>
+          <item>
+           <property name="text">
+            <string>Meta-Data</string>
+           </property>
+          </item>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+      <widget class="QWidget" name="widget_4" native="true">
+       <layout class="QVBoxLayout" name="verticalLayout_2">
+        <property name="leftMargin">
+         <number>6</number>
+        </property>
+        <property name="topMargin">
+         <number>0</number>
+        </property>
+        <property name="rightMargin">
+         <number>0</number>
+        </property>
+        <property name="bottomMargin">
+         <number>0</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="sectionMessageLabel">
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>40</height>
+           </size>
+          </property>
+          <property name="text">
+           <string/>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QStackedWidget" name="sectionsStack">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+            <horstretch>1</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </widget>
+    </item>
+    <item>
+     <widget class="QWidget" name="widget" native="true">
+      <layout class="QHBoxLayout" name="horizontalLayout_3">
+       <property name="margin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="QLabel" name="label">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Output Directory</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="outputDirButton">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+           <horstretch>1</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>PushButton</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+    <item>
+     <widget class="Line" name="line">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <spacer name="verticalSpacer">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>4</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item>
+     <widget class="QWidget" name="widget_3" native="true">
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <property name="margin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="QPushButton" name="previewButton">
+         <property name="text">
+          <string>Preview</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QPushButton" name="generateButton">
+         <property name="text">
+          <string>Generate</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="cancelButton">
+         <property name="text">
+          <string>Cancel</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>800</width>
+     <height>23</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
+     <string>File</string>
+    </property>
+    <addaction name="actionExit"/>
+   </widget>
+   <addaction name="menuFile"/>
+  </widget>
+  <widget class="QStatusBar" name="statusbar"/>
+  <action name="actionExit">
+   <property name="text">
+    <string>Exit</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+Q</string>
+   </property>
+  </action>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>actionExit</sender>
+   <signal>triggered()</signal>
+   <receiver>cancelButton</receiver>
+   <slot>click()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>748</x>
+     <y>555</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>

+ 14 - 0
Applications/ctkPluginGenerator/target_libraries.cmake

@@ -0,0 +1,14 @@
+#
+# See CMake/ctkMacroGetTargetLibraries.cmake
+# 
+# This file should list the libraries required to build the current CTK application.
+# 
+
+SET(plugin_dependencies
+  org_commontk_plugingenerator
+)
+
+SET(target_libraries
+  CTKPluginFramework
+  plugin_dependencies
+  )

+ 3 - 0
CMakeLists.txt

@@ -288,6 +288,8 @@ SET(CTK_LIBS
 SET(CTK_PLUGINS
   org.commontk.eventbus:ON
   org.commontk.cli:OFF
+  org.commontk.plugingenerator.core:OFF
+  org.commontk.plugingenerator.ui:OFF
   )
 
 #-----------------------------------------------------------------------------
@@ -301,6 +303,7 @@ SET(CTK_APPLICATIONS
   ctkDICOMQuery:OFF
   ctkDICOMRetrieve:OFF
   ctkPluginBrowser:OFF
+  ctkPluginGenerator:OFF
   ctkSimplePythonShell:OFF
   )
   

+ 33 - 0
Plugins/org.commontk.plugingenerator.core/CMakeLists.txt

@@ -0,0 +1,33 @@
+PROJECT(org_commontk_plugingenerator_core)
+
+SET(PLUGIN_export_directive "org_commontk_plugingenerator_core_EXPORT")
+
+SET(PLUGIN_SRCS
+  ctkPluginGeneratorAbstractTemplate.cpp
+  ctkPluginGeneratorCodeModel.cpp
+  ctkPluginGeneratorExtension.cpp
+)
+
+SET(PLUGIN_MOC_SRCS
+  
+)
+
+SET(PLUGIN_UI_FORMS
+  
+)
+
+SET(PLUGIN_resources
+  
+)
+
+ctkMacroGetTargetLibraries(PLUGIN_target_libraries)
+
+ctkMacroBuildPlugin(
+  NAME ${PROJECT_NAME}
+  EXPORT_DIRECTIVE ${PLUGIN_export_directive}
+  SRCS ${PLUGIN_SRCS}
+  MOC_SRCS ${PLUGIN_MOC_SRCS}
+  UI_FORMS ${PLUGIN_UI_FORMS}
+  RESOURCES ${PLUGIN_resources}
+  TARGET_LIBRARIES ${PLUGIN_target_libraries}
+)

+ 62 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorAbstractTemplate.cpp

@@ -0,0 +1,62 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#include "ctkPluginGeneratorAbstractTemplate.h"
+
+#include <QHash>
+
+class ctkPluginGeneratorAbstractTemplatePrivate
+{
+public:
+
+  QHash<QString, QString> contentMap;
+};
+
+ctkPluginGeneratorAbstractTemplate::ctkPluginGeneratorAbstractTemplate(
+    const QString& name, QObject* parent)
+      : QObject(parent), d_ptr(new ctkPluginGeneratorAbstractTemplatePrivate)
+{
+  this->setObjectName(name);
+}
+
+void ctkPluginGeneratorAbstractTemplate::AddContent(const QString &marker, const QString &content)
+{
+  Q_D(ctkPluginGeneratorAbstractTemplate);
+  d->contentMap.insert(marker, content);
+}
+
+QString ctkPluginGeneratorAbstractTemplate::GetContent(const QString &marker) const
+{
+  Q_D(ctkPluginGeneratorAbstractTemplate);
+  if (d->contentMap.contains(marker))
+  {
+    return d->contentMap[marker];
+  }
+
+  return QString();
+}
+
+QStringList ctkPluginGeneratorAbstractTemplate::GetMarkers() const
+{
+  return QStringList();
+}
+

+ 52 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorAbstractTemplate.h

@@ -0,0 +1,52 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#ifndef CTKPLUGINGENERATORABSTRACTTEMPLATE_H
+#define CTKPLUGINGENERATORABSTRACTTEMPLATE_H
+
+#include <QObject>
+#include <QScopedPointer>
+
+class ctkPluginGeneratorAbstractTemplatePrivate;
+
+class ctkPluginGeneratorAbstractTemplate : public QObject
+{
+  Q_OBJECT
+
+public:
+
+    ctkPluginGeneratorAbstractTemplate(const QString& name, QObject* parent = 0);
+
+    void AddContent(const QString& marker, const QString& content);
+
+    QString GetContent(const QString& marker) const;
+
+    virtual QStringList GetMarkers() const;
+
+    virtual QString GenerateContent() = 0;
+
+private:
+
+    const QScopedPointer<ctkPluginGeneratorAbstractTemplatePrivate> d_ptr;
+};
+
+#endif // CTKPLUGINGENERATORABSTRACTTEMPLATE_H

+ 27 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCmdArg.cpp

@@ -0,0 +1,27 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#include "ctkPluginGeneratorCmdArg.h"
+
+ctkPluginGeneratorCmdArg::ctkPluginGeneratorCmdArg()
+{
+}

+ 32 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCmdArg.h

@@ -0,0 +1,32 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#ifndef CTKPLUGINGENERATORCMDARG_H
+#define CTKPLUGINGENERATORCMDARG_H
+
+class ctkPluginGeneratorCmdArg
+{
+public:
+    ctkPluginGeneratorCmdArg();
+};
+
+#endif // CTKPLUGINGENERATORCMDARG_H

+ 35 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCodeModel.cpp

@@ -0,0 +1,35 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#include "ctkPluginGeneratorCodeModel.h"
+
+class ctkPluginGeneratorCodeModelPrivate
+{
+public:
+
+  QList<QObject*> rootTemplates;
+
+};
+
+ctkPluginGeneratorCodeModel::ctkPluginGeneratorCodeModel()
+{
+}

+ 50 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorCodeModel.h

@@ -0,0 +1,50 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#ifndef CTKPLUGINGENERATORCODEMODEL_H
+#define CTKPLUGINGENERATORCODEMODEL_H
+
+#include <QObject>
+#include <QScopedPointer>
+
+#include "ctkPluginGeneratorAbstractTemplate.h"
+
+class ctkPluginGeneratorCodeModelPrivate;
+
+class ctkPluginGeneratorCodeModel : public QObject
+{
+
+  Q_OBJECT
+
+public:
+    ctkPluginGeneratorCodeModel();
+
+    void AddTemplate(ctkPluginGeneratorAbstractTemplate* templ);
+
+private:
+
+    const QScopedPointer<ctkPluginGeneratorCodeModelPrivate> d_ptr;
+
+
+};
+
+#endif // CTKPLUGINGENERATORCODEMODEL_H

+ 27 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorExtension.cpp

@@ -0,0 +1,27 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#include "ctkPluginGeneratorExtension.h"
+
+ctkPluginGeneratorExtension::ctkPluginGeneratorExtension()
+{
+}

+ 50 - 0
Plugins/org.commontk.plugingenerator.core/ctkPluginGeneratorExtension.h

@@ -0,0 +1,50 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#ifndef CTKPLUGINGENERATOREXTENSION_H
+#define CTKPLUGINGENERATOREXTENSION_H
+
+class ctkPluginGeneratorExtension
+{
+public:
+    ctkPluginGeneratorExtension();
+
+    virtual void GetCommandLineArgs() const = 0;
+
+    void SetParameter(const QHash<QString, QVariant>& params);
+    QHash<QString, QVariant> GetParameter() const;
+
+    bool IsValid() const;
+
+    void SetErrorMessage(const QString& errMsg);
+    QString GetErrorMessage() const;
+
+    void Generate()
+
+protected:
+
+    virtual void VerifyParameter(const QHash<QString, QVariant>& params) = 0;
+
+
+};
+
+#endif // CTKPLUGINGENERATOREXTENSION_H

+ 9 - 0
Plugins/org.commontk.plugingenerator.core/target_libraries.cmake

@@ -0,0 +1,9 @@
+#
+# See CMake/ctkMacroGetTargetLibraries.cmake
+# 
+# This file should list the libraries required to build the current CTK plugin.
+# 
+
+SET(target_libraries
+  CTKPluginFramework
+  )

+ 34 - 0
Plugins/org.commontk.plugingenerator.ui/CMakeLists.txt

@@ -0,0 +1,34 @@
+PROJECT(org_commontk_plugingenerator_ui)
+
+SET(PLUGIN_export_directive "org_commontk_plugingenerator_ui_EXPORT")
+
+SET(PLUGIN_SRCS
+  ctkPluginGeneratorAbstractUiSection.cpp
+  ctkPluginGeneratorMainSection.cpp
+)
+
+SET(PLUGIN_MOC_SRCS
+  ctkPluginGeneratorAbstractUiSection.h
+  ctkPluginGeneratorMainSection.h
+)
+
+SET(PLUGIN_UI_FORMS
+  ctkPluginGeneratorMainSection.ui
+  ctkPluginGeneratorManifestSection.ui
+)
+
+SET(PLUGIN_resources
+  
+)
+
+ctkMacroGetTargetLibraries(PLUGIN_target_libraries)
+
+ctkMacroBuildPlugin(
+  NAME ${PROJECT_NAME}
+  EXPORT_DIRECTIVE ${PLUGIN_export_directive}
+  SRCS ${PLUGIN_SRCS}
+  MOC_SRCS ${PLUGIN_MOC_SRCS}
+  UI_FORMS ${PLUGIN_UI_FORMS}
+  RESOURCES ${PLUGIN_resources}
+  TARGET_LIBRARIES ${PLUGIN_target_libraries}
+)

+ 106 - 0
Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorAbstractUiSection.cpp

@@ -0,0 +1,106 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#include "ctkPluginGeneratorAbstractUiSection.h"
+
+ctkPluginGeneratorAbstractUiSection::ctkPluginGeneratorAbstractUiSection()
+  : sectionWidget(0)
+{
+
+}
+
+ctkPluginGeneratorAbstractUiSection::~ctkPluginGeneratorAbstractUiSection()
+{
+
+}
+
+QWidget* ctkPluginGeneratorAbstractUiSection::getWidget()
+{
+  return sectionWidget;
+}
+
+QString ctkPluginGeneratorAbstractUiSection::getDescription() const
+{
+  return this->description;
+}
+
+QString ctkPluginGeneratorAbstractUiSection::getTitle() const
+{
+  return this->title;
+}
+
+QString ctkPluginGeneratorAbstractUiSection::getErrorMessage() const
+{
+  return this->errorMessage;
+}
+
+QString ctkPluginGeneratorAbstractUiSection::getMessage() const
+{
+  return this->message;
+}
+
+QIcon ctkPluginGeneratorAbstractUiSection::getIcon() const
+{
+  return this->icon;
+}
+
+void ctkPluginGeneratorAbstractUiSection::setDescription(const QString& description)
+{
+  if (this->description != description)
+  {
+    this->description = description;
+    emit descriptionChanged(description);
+  }
+}
+
+void ctkPluginGeneratorAbstractUiSection::setTitle(const QString& title)
+{
+  if (this->title != title)
+  {
+    this->title = title;
+    emit titleChanged(title);
+  }
+}
+
+void ctkPluginGeneratorAbstractUiSection::setErrorMessage(const QString& errorMsg)
+{
+  if (this->errorMessage != errorMsg)
+  {
+    this->errorMessage = errorMsg;
+    emit errorMessageChanged(errorMsg);
+  }
+}
+
+void ctkPluginGeneratorAbstractUiSection::setMessage(const QString& msg)
+{
+  if (this->message != msg)
+  {
+    this->message = msg;
+    emit messageChanged(msg);
+  }
+}
+
+void ctkPluginGeneratorAbstractUiSection::setIcon(const QIcon& icon)
+{
+  this->icon = icon;
+  emit iconChanged(icon);
+}
+

+ 82 - 0
Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorAbstractUiSection.h

@@ -0,0 +1,82 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#ifndef CTKPLUGINGENERATORUISECTION_H
+#define CTKPLUGINGENERATORUISECTION_H
+
+#include <QObject>
+#include <QIcon>
+
+class QWidget;
+
+class ctkPluginGeneratorAbstractUiSection : public QObject
+{
+
+  Q_OBJECT
+
+public:
+
+  ctkPluginGeneratorAbstractUiSection();
+  virtual ~ctkPluginGeneratorAbstractUiSection();
+
+  QWidget* getWidget();
+
+  virtual QWidget* createWidget(QWidget* parent) = 0;
+
+  QString getDescription() const;
+  QString getTitle() const;
+
+  QString getErrorMessage() const;
+  QString getMessage() const;
+
+  QIcon getIcon() const;
+
+signals:
+
+  void descriptionChanged(const QString&);
+  void titleChanged(const QString&);
+  void errorMessageChanged(const QString&);
+  void messageChanged(const QString&);
+  void iconChanged(const QIcon&);
+
+protected:
+
+  void setDescription(const QString& description);
+  void setTitle(const QString& title);
+
+  void setErrorMessage(const QString& errorMsg);
+  void setMessage(const QString& msg);
+
+  void setIcon(const QIcon& icon);
+
+private:
+
+  QWidget* sectionWidget;
+
+  QString description;
+  QString title;
+  QString errorMessage;
+  QString message;
+  QIcon icon;
+
+};
+
+#endif // CTKPLUGINGENERATORUISECTION_H

+ 59 - 0
Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorMainSection.cpp

@@ -0,0 +1,59 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#include "ctkPluginGeneratorMainSection.h"
+
+ctkPluginGeneratorMainSection::ctkPluginGeneratorMainSection()
+  : ui(0)
+{
+
+}
+
+
+QWidget* ctkPluginGeneratorMainSection::createWidget(QWidget* parent)
+{
+  ui = new Ui::ctkPluginGeneratorMainSection();
+  QWidget* container = new QWidget(parent);
+  ui->setupUi(container);
+
+  connectSignals();
+
+  return container;
+}
+
+void ctkPluginGeneratorMainSection::connectSignals()
+{
+  connect(ui->symbolicNameEdit, SIGNAL(textChanged(QString)), this, SLOT(verifySection()));
+}
+
+void ctkPluginGeneratorMainSection::verifySection()
+{
+  if (ui->symbolicNameEdit->text().isEmpty())
+  {
+    this->setErrorMessage("The symbolic name cannot be empty");
+  }
+  else
+  {
+    this->setErrorMessage("");
+  }
+}
+

+ 50 - 0
Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorMainSection.h

@@ -0,0 +1,50 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) 2010 German Cancer Research Center,
+    Division of Medical and Biological Informatics
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+
+#ifndef CTKPLUGINGENERATORMAINSECTION_H
+#define CTKPLUGINGENERATORMAINSECTION_H
+
+#include "ctkPluginGeneratorAbstractUiSection.h"
+
+#include "ui_ctkPluginGeneratorMainSection.h"
+
+class ctkPluginGeneratorMainSection : public ctkPluginGeneratorAbstractUiSection
+{
+  Q_OBJECT
+
+public:
+    ctkPluginGeneratorMainSection();
+
+protected slots:
+
+    void verifySection();
+
+protected:
+
+    QWidget* createWidget(QWidget* parent);
+
+    void connectSignals();
+
+    Ui::ctkPluginGeneratorMainSection* ui;
+};
+
+#endif // CTKPLUGINGENERATORMAINSECTION_H

+ 88 - 0
Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorMainSection.ui

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ctkPluginGeneratorMainSection</class>
+ <widget class="QWidget" name="ctkPluginGeneratorMainSection">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <property name="margin">
+    <number>0</number>
+   </property>
+   <item row="0" column="2">
+    <widget class="QLineEdit" name="symbolicNameEdit"/>
+   </item>
+   <item row="1" column="2">
+    <widget class="QLineEdit" name="nameEdit"/>
+   </item>
+   <item row="2" column="2">
+    <widget class="QLineEdit" name="lineEdit_3"/>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Name</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Symbolic Name</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="1">
+    <widget class="QLabel" name="label_3">
+     <property name="text">
+      <string>Version</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="2">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="3" column="1">
+    <widget class="QLabel" name="label_7">
+     <property name="text">
+      <string>Activation Policy</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="2">
+    <widget class="QComboBox" name="comboBox">
+     <item>
+      <property name="text">
+       <string>Lazy</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Eager</string>
+      </property>
+     </item>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

+ 178 - 0
Plugins/org.commontk.plugingenerator.ui/ctkPluginGeneratorManifestSection.ui

@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Form</class>
+ <widget class="QWidget" name="Form">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>429</width>
+    <height>624</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="2">
+    <widget class="QLineEdit" name="lineEdit"/>
+   </item>
+   <item row="1" column="2">
+    <widget class="QLineEdit" name="lineEdit_2"/>
+   </item>
+   <item row="2" column="2">
+    <widget class="QLineEdit" name="lineEdit_3"/>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Name</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Symbolic Name</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="1">
+    <widget class="QLabel" name="label_3">
+     <property name="text">
+      <string>Version</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="2">
+    <widget class="QLineEdit" name="lineEdit_4"/>
+   </item>
+   <item row="3" column="1">
+    <widget class="QLabel" name="label_4">
+     <property name="text">
+      <string>Vendor</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="2">
+    <widget class="QLineEdit" name="lineEdit_5"/>
+   </item>
+   <item row="4" column="1">
+    <widget class="QLabel" name="label_6">
+     <property name="text">
+      <string>License</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="1">
+    <widget class="QLabel" name="label_5">
+     <property name="text">
+      <string>Copyright</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="2">
+    <widget class="QLineEdit" name="lineEdit_6"/>
+   </item>
+   <item row="12" column="2">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="6" column="1">
+    <widget class="QLabel" name="label_7">
+     <property name="text">
+      <string>Activaton Policy</string>
+     </property>
+    </widget>
+   </item>
+   <item row="8" column="1">
+    <widget class="QLabel" name="label_8">
+     <property name="text">
+      <string>Category</string>
+     </property>
+    </widget>
+   </item>
+   <item row="9" column="1">
+    <widget class="QLabel" name="label_9">
+     <property name="text">
+      <string>Contact Address</string>
+     </property>
+    </widget>
+   </item>
+   <item row="7" column="1">
+    <widget class="QLabel" name="label_10">
+     <property name="text">
+      <string>Description</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+    </widget>
+   </item>
+   <item row="10" column="1">
+    <widget class="QLabel" name="label_11">
+     <property name="text">
+      <string>Doc URL</string>
+     </property>
+    </widget>
+   </item>
+   <item row="11" column="1">
+    <widget class="QLabel" name="label_12">
+     <property name="text">
+      <string>Icon</string>
+     </property>
+    </widget>
+   </item>
+   <item row="7" column="2">
+    <widget class="QPlainTextEdit" name="plainTextEdit">
+     <property name="maximumSize">
+      <size>
+       <width>16777215</width>
+       <height>80</height>
+      </size>
+     </property>
+    </widget>
+   </item>
+   <item row="8" column="2">
+    <widget class="QLineEdit" name="lineEdit_7"/>
+   </item>
+   <item row="9" column="2">
+    <widget class="QLineEdit" name="lineEdit_8"/>
+   </item>
+   <item row="10" column="2">
+    <widget class="QLineEdit" name="lineEdit_9"/>
+   </item>
+   <item row="11" column="2">
+    <widget class="QLineEdit" name="lineEdit_10"/>
+   </item>
+   <item row="6" column="2">
+    <widget class="QComboBox" name="comboBox">
+     <item>
+      <property name="text">
+       <string>Lazy</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Eager</string>
+      </property>
+     </item>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+ <buttongroups>
+  <buttongroup name="buttonGroup"/>
+ </buttongroups>
+</ui>

+ 9 - 0
Plugins/org.commontk.plugingenerator.ui/target_libraries.cmake

@@ -0,0 +1,9 @@
+#
+# See CMake/ctkMacroGetTargetLibraries.cmake
+# 
+# This file should list the libraries required to build the current CTK plugin.
+# 
+
+SET(target_libraries
+  CTKPluginFramework
+  )