diff --git a/agui2/ALIB.pro b/agui2/ALIB.pro
index 58d8e435be68c66ef327552f6510273fdf781d9e..519d89d62356a83679fe2fa2ae0d868598785a27 100644
--- a/agui2/ALIB.pro
+++ b/agui2/ALIB.pro
@@ -28,11 +28,13 @@ SOURCES += main.cpp\
         mainwindow.cpp \
     ../FIT/automata-library/aconvert2/src/DotConverter.cpp \
     graphicsbox.cpp \
-    inputdialog.cpp
+    inputdialog.cpp \
+    graphicsconnection.cpp
 
 HEADERS  += mainwindow.h \
     graphicsbox.h \
-    inputdialog.h
+    inputdialog.h \
+    graphicsconnection.h
 
 FORMS    += mainwindow.ui \
     inputdialog.ui
diff --git a/agui2/graphicsbox.cpp b/agui2/graphicsbox.cpp
index 67f92ccf3dfb5143d6922b67b364ac5e5db0f34e..7a19843245221734af8d653f892c5cfe198211b5 100644
--- a/agui2/graphicsbox.cpp
+++ b/agui2/graphicsbox.cpp
@@ -1,14 +1,27 @@
 #include <QAction>
 #include <QMenu>
 #include <QGraphicsSceneContextMenuEvent>
+#include <QDialog>
+#include <QGraphicsScene>
+
 #include "graphicsbox.h"
+#include "inputdialog.h"
 
-GraphicsBox::GraphicsBox(QString text, QPointF point)
+GraphicsBox::GraphicsBox(QObject * parent, QString text, QPointF point)
+    : QObject(parent)
 {
     m_text = text;
     m_position = new QPointF(point);
-    m_boundRect.setRect(0,0,150,100);
+    m_boundRect.setRect(point.x(), point.y(), point.x() + 1, point.y() + 1);
     setFlags(ItemIsMovable | ItemIsSelectable);
+    setZValue(1);
+
+    QPainter painter;
+    QFont f;
+    f.setBold(true);
+    f.setPixelSize(18);
+    painter.setFont(f);
+    painter.drawText(m_boundRect, Qt::AlignCenter, m_text, &m_boundRect);
 }
 
 QRectF GraphicsBox::boundingRect() const
@@ -18,28 +31,41 @@ QRectF GraphicsBox::boundingRect() const
 
 void GraphicsBox::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *widget)
 {
-    QRectF rect(*m_position,QSizeF(100,50));
-
     painter->setPen(QPen(Qt::white, 1));
     QFont font = painter->font();
     font.setPixelSize(18);
     font.setBold(true);
     painter->setFont(font);
 
-    painter->drawText(rect, Qt::AlignCenter, m_text, &m_boundRect );
+    painter->drawText(m_boundRect, Qt::AlignCenter, m_text, &m_boundRect );
 
     m_boundRect.adjust(-30,-30,30,30);
 
     painter->fillRect(m_boundRect,Qt::blue);
-    painter->drawText(rect, Qt::AlignCenter, m_text );
+    painter->drawText(m_boundRect, Qt::AlignCenter, m_text );
+}
+
+void GraphicsBox::on_SetInput()
+{
+    InputDialog * inputDlg = new InputDialog();
+    inputDlg->setModal(true);
+    inputDlg->show();
+}
+
+void GraphicsBox::on_Connect()
+{
+
+    ((QGraphicsScene *)parent())->addLine(0,0,rand()%100,rand()%65);
 }
 
 void GraphicsBox::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
 {
     QMenu menu;
-    QAction * setInputAction = menu.addAction("Set &Input");
-    QObject::connect(setInputAction, &QAction::triggered, this, &GraphicsBox::on_SetInput);
-    menu.addAction("Action 2");
+    QAction * a;
+    a = menu.addAction("Set &Input");
+    QObject::connect(a,SIGNAL(triggered()), this, SLOT(on_SetInput()));
+    a = menu.addAction("Connect");
+    QObject::connect(a,SIGNAL(triggered()), this, SLOT(on_Connect()));
     menu.addAction("Action 3");
+    menu.exec(event->screenPos());
 }
-
diff --git a/agui2/graphicsbox.h b/agui2/graphicsbox.h
index 8679589f15969fd88e99c94179361247261d690c..15e5df3a82242cfe9b7a911b3355fb24b563f4ea 100644
--- a/agui2/graphicsbox.h
+++ b/agui2/graphicsbox.h
@@ -4,19 +4,22 @@
 #include <QPainter>
 #include <QGraphicsItem>
 
-class GraphicsBox : public QGraphicsItem
+class GraphicsBox : public QObject, public QGraphicsItem
 {
     Q_OBJECT
 public:
-    explicit GraphicsBox(QString text, QPointF point);
+    explicit GraphicsBox(QObject * parent, QString text, QPointF point);
+    GraphicsBox(QObject * parent): QObject(parent){};
     QRectF boundingRect() const;
     void paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *widget);
+    virtual ~GraphicsBox() {};
 private:
     QString m_text;
     QPointF * m_position;
     QRectF m_boundRect;
 private slots:
     void on_SetInput();
+    void on_Connect();
 protected:
     void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
 };
diff --git a/agui2/graphicsconnection.cpp b/agui2/graphicsconnection.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7fe0cedb12c962152415cea437f968c36e3e73fc
--- /dev/null
+++ b/agui2/graphicsconnection.cpp
@@ -0,0 +1,16 @@
+#include "graphicsconnection.h"
+
+GraphicsConnection::GraphicsConnection()
+{
+
+}
+
+QRectF GraphicsConnection::boundingRect() const
+{
+
+}
+
+void GraphicsConnection::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *widget)
+{
+
+}
diff --git a/agui2/graphicsconnection.h b/agui2/graphicsconnection.h
new file mode 100644
index 0000000000000000000000000000000000000000..2c7cea830ab04a1dfa66f785e49b9a8507dd40b3
--- /dev/null
+++ b/agui2/graphicsconnection.h
@@ -0,0 +1,14 @@
+#ifndef GRAPHICSCONNECTION_H
+#define GRAPHICSCONNECTION_H
+
+#include <QGraphicsItem>
+
+class GraphicsConnection : public QGraphicsItem
+{
+public:
+    GraphicsConnection();
+    QRectF boundingRect() const;
+    void paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *widget);
+};
+
+#endif // GRAPHICSCONNECTION_H
diff --git a/agui2/inputdialog.ui b/agui2/inputdialog.ui
index 647e8fc94046246ccb7649c615c5ccaccd64b42e..3af2636321d47c01890db91d85cc7a7601dbf43e 100644
--- a/agui2/inputdialog.ui
+++ b/agui2/inputdialog.ui
@@ -32,6 +32,12 @@
      </item>
      <item row="1" column="0" colspan="3">
       <widget class="QPlainTextEdit" name="plainTextEdit_5">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
        <property name="plainText">
         <string>&lt;?xml version=&quot;1.0&quot;?&gt;
 &lt;NFA&gt;&lt;states&gt;&lt;Integer ref=&quot;0&quot;&gt;0&lt;/Integer&gt;&lt;Integer ref=&quot;1&quot;&gt;1&lt;/Integer&gt;&lt;Integer ref=&quot;2&quot;&gt;2&lt;/Integer&gt;&lt;Integer ref=&quot;3&quot;&gt;3&lt;/Integer&gt;&lt;Integer ref=&quot;4&quot;&gt;4&lt;/Integer&gt;&lt;/states&gt;&lt;inputAlphabet&gt;&lt;Character ref=&quot;5&quot;&gt;a&lt;/Character&gt;&lt;Character ref=&quot;6&quot;&gt;b&lt;/Character&gt;&lt;Character ref=&quot;7&quot;&gt;c&lt;/Character&gt;&lt;/inputAlphabet&gt;&lt;initialState&gt;&lt;Integer ref=&quot;8&quot;&gt;0&lt;/Integer&gt;&lt;/initialState&gt;&lt;finalStates&gt;&lt;Ref id=&quot;2&quot;/&gt;&lt;Ref id=&quot;3&quot;/&gt;&lt;/finalStates&gt;&lt;transitions&gt;&lt;transition&gt;&lt;from&gt;&lt;Ref id=&quot;0&quot;/&gt;&lt;/from&gt;&lt;input&gt;&lt;Ref id=&quot;6&quot;/&gt;&lt;/input&gt;&lt;to&gt;&lt;Ref id=&quot;1&quot;/&gt;&lt;/to&gt;&lt;/transition&gt;&lt;transition&gt;&lt;from&gt;&lt;Ref id=&quot;1&quot;/&gt;&lt;/from&gt;&lt;input&gt;&lt;Ref id=&quot;5&quot;/&gt;&lt;/input&gt;&lt;to&gt;&lt;Ref id=&quot;4&quot;/&gt;&lt;/to&gt;&lt;/transition&gt;&lt;transition&gt;&lt;from&gt;&lt;Ref id=&quot;1&quot;/&gt;&lt;/from&gt;&lt;input&gt;&lt;Ref id=&quot;6&quot;/&gt;&lt;/input&gt;&lt;to&gt;&lt;Ref id=&quot;0&quot;/&gt;&lt;/to&gt;&lt;/transition&gt;&lt;transition&gt;&lt;from&gt;&lt;Ref id=&quot;1&quot;/&gt;&lt;/from&gt;&lt;input&gt;&lt;Ref id=&quot;7&quot;/&gt;&lt;/input&gt;&lt;to&gt;&lt;Ref id=&quot;1&quot;/&gt;&lt;/to&gt;&lt;/transition&gt;&lt;transition&gt;&lt;from&gt;&lt;Ref id=&quot;2&quot;/&gt;&lt;/from&gt;&lt;input&gt;&lt;Ref id=&quot;5&quot;/&gt;&lt;/input&gt;&lt;to&gt;&lt;Ref id=&quot;2&quot;/&gt;&lt;/to&gt;&lt;/transition&gt;&lt;transition&gt;&lt;from&gt;&lt;Ref id=&quot;3&quot;/&gt;&lt;/from&gt;&lt;input&gt;&lt;Ref id=&quot;5&quot;/&gt;&lt;/input&gt;&lt;to&gt;&lt;Ref id=&quot;2&quot;/&gt;&lt;/to&gt;&lt;/transition&gt;&lt;transition&gt;&lt;from&gt;&lt;Ref id=&quot;4&quot;/&gt;&lt;/from&gt;&lt;input&gt;&lt;Ref id=&quot;6&quot;/&gt;&lt;/input&gt;&lt;to&gt;&lt;Ref id=&quot;2&quot;/&gt;&lt;/to&gt;&lt;/transition&gt;&lt;transition&gt;&lt;from&gt;&lt;Ref id=&quot;4&quot;/&gt;&lt;/from&gt;&lt;input&gt;&lt;Ref id=&quot;6&quot;/&gt;&lt;/input&gt;&lt;to&gt;&lt;Ref id=&quot;3&quot;/&gt;&lt;/to&gt;&lt;/transition&gt;&lt;/transitions&gt;&lt;/NFA&gt;
@@ -81,8 +87,6 @@
     </layout>
    </item>
   </layout>
-  <zorder>layoutWidget</zorder>
-  <zorder>lineEdit_5</zorder>
  </widget>
  <resources/>
  <connections/>
diff --git a/agui2/mainwindow.cpp b/agui2/mainwindow.cpp
index 4b44c53f6a5d4eee181d7f1f5afd1622bf484bb4..0e2adce0500096b290e2321517a3a1bd9a7847bd 100644
--- a/agui2/mainwindow.cpp
+++ b/agui2/mainwindow.cpp
@@ -6,6 +6,7 @@
 
 #include "mainwindow.h"
 #include "ui_mainwindow.h"
+#include "inputdialog.h"
 
 MainWindow::MainWindow(QWidget *parent) :
     QMainWindow(parent),
@@ -17,10 +18,10 @@ MainWindow::MainWindow(QWidget *parent) :
 
     QBrush brush(Qt::blue);
     QPen pen(Qt::blue);
-    scene->setSceneRect(0,0,700,500);
-    GraphicsBox * input = new GraphicsBox("Input", QPointF(0,0));
+//    scene->setSceneRect(0,0,700,500);
+    GraphicsBox * input = new GraphicsBox(scene, "Input", QPointF(0,0));
     scene->addItem(input);
-    GraphicsBox * output = new GraphicsBox("Output", QPointF(150,0));
+    GraphicsBox * output = new GraphicsBox(scene, "Output", QPointF(150,0));
     scene->addItem(output);
 }
 
@@ -51,7 +52,10 @@ void MainWindow::on_OpenFileBtn_clicked()
     }
 }
 
-void MainWindow::on_actionNew_triggered()
-{
 
+void MainWindow::on_inputButton_clicked()
+{
+    InputDialog * inputDlg = new InputDialog();
+    inputDlg->setModal(true);
+    inputDlg->show();
 }
diff --git a/agui2/mainwindow.h b/agui2/mainwindow.h
index 3e271684abd1efb3124adff88d3bba4a57dae246..2c5e7b00373b9f36918747c15b1c7d7caf855e50 100644
--- a/agui2/mainwindow.h
+++ b/agui2/mainwindow.h
@@ -24,8 +24,8 @@ public:
 private slots:
     void on_MagicBtn_clicked();
     void on_OpenFileBtn_clicked();
+    void on_inputButton_clicked();
 
-    void on_actionNew_triggered();
 private:
     Ui::MainWindow *ui;
     automaton::Automaton *automaton = NULL;
diff --git a/agui2/mainwindow.ui b/agui2/mainwindow.ui
index d512b3de37fe1c4f10292a8f19e33a0045eb6323..d88a2cdc2cbef66f79f0054a9549eac50365ea22 100644
--- a/agui2/mainwindow.ui
+++ b/agui2/mainwindow.ui
@@ -203,6 +203,13 @@
       </property>
      </widget>
     </item>
+    <item row="3" column="0">
+     <widget class="QPushButton" name="inputButton">
+      <property name="text">
+       <string>Input</string>
+      </property>
+     </widget>
+    </item>
    </layout>
   </widget>
   <widget class="QMenuBar" name="menuBar">