shjung 2 жил өмнө
parent
commit
0a12b2323b

+ 3 - 2
src/main/java/com/its/cctv/ui/MainUI.java

@@ -281,7 +281,7 @@ public class MainUI {
 
     public boolean updateControllerInfo() {
         if (subUIController.isVisible()) {
-            subUIController.setVisible(false);
+            //subUIController.setVisible(false);
         }
 
         int row = tblCtlrList.getSelectedRow();
@@ -299,8 +299,9 @@ public class MainUI {
 
             subUIController.updateInfo(selObj);
             if (!subUIController.isVisible()) {
-                //subUIController.setVisible(true);
+                subUIController.setVisible(true);
             }
+            subUIController.setState(JFrame.NORMAL);
             return true;
         }
         return false;

+ 307 - 141
src/main/java/com/its/cctv/ui/SubUI.form

@@ -1,76 +1,40 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.its.cctv.ui.SubUI">
-  <grid id="27dc6" binding="rootPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+  <grid id="27dc6" binding="rootPanel" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
     <margin top="0" left="0" bottom="0" right="0"/>
     <constraints>
-      <xy x="20" y="20" width="979" height="620"/>
+      <xy x="20" y="20" width="788" height="376"/>
     </constraints>
     <properties/>
     <border type="none"/>
     <children>
-      <grid id="d0095" binding="pnlCtlr" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+      <grid id="d0095" binding="pnlCtlr" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
         <margin top="10" left="4" bottom="0" right="4"/>
         <constraints>
-          <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
+          <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
         </constraints>
         <properties/>
         <border type="none"/>
         <children>
-          <grid id="d1b2f" binding="pnlCtlrTitlex" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+          <grid id="17544" binding="pnlControl" layout-manager="GridLayoutManager" row-count="5" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
             <margin top="0" left="0" bottom="0" right="2"/>
             <constraints>
-              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-            </constraints>
-            <properties/>
-            <border type="none"/>
-            <children>
-              <component id="25222" class="javax.swing.JLabel">
-                <constraints>
-                  <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalAlignment value="2"/>
-                  <horizontalTextPosition value="11"/>
-                  <icon value="static/image/controller.png"/>
-                  <text value="제어기 정보"/>
-                </properties>
-              </component>
-              <hspacer id="e90f6">
-                <constraints>
-                  <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-              </hspacer>
-            </children>
-          </grid>
-          <grid id="17544" binding="pnlControl" layout-manager="GridLayoutManager" row-count="4" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
-            <margin top="0" left="0" bottom="0" right="2"/>
-            <constraints>
-              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
+              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
             </constraints>
             <properties/>
             <border type="none"/>
             <children>
-              <component id="a85f9" class="javax.swing.JButton" binding="btnDisconnect">
-                <constraints>
-                  <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="연결끊기"/>
-                </properties>
-              </component>
-              <grid id="31344" layout-manager="GridLayoutManager" row-count="4" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+              <grid id="31344" layout-manager="GridLayoutManager" row-count="5" column-count="8" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
                 <margin top="0" left="0" bottom="0" right="0"/>
                 <constraints>
-                  <grid row="0" column="0" row-span="4" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
+                  <grid row="0" column="0" row-span="5" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
                 </constraints>
                 <properties/>
                 <border type="none"/>
                 <children>
-                  <component id="6d1e0" class="javax.swing.JTextField" binding="txtId">
+                  <component id="6d1e0" class="javax.swing.JTextField" binding="txtNmbr">
                     <constraints>
-                      <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
+                      <grid row="0" column="3" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
                         <minimum-size width="100" height="-1"/>
                         <preferred-size width="100" height="-1"/>
                         <maximum-size width="100" height="-1"/>
@@ -80,12 +44,12 @@
                       <editable value="false"/>
                       <font name="Malgun Gothic" size="12" style="0"/>
                       <horizontalAlignment value="0"/>
-                      <text value="ID"/>
+                      <text value="관리번호"/>
                     </properties>
                   </component>
                   <component id="a6a03" class="javax.swing.JTextField" binding="txtName">
                     <constraints>
-                      <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
+                      <grid row="1" column="3" row-span="1" col-span="5" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
                         <preferred-size width="200" height="-1"/>
                       </grid>
                     </constraints>
@@ -98,169 +62,371 @@
                   </component>
                   <component id="a60a6" class="javax.swing.JLabel">
                     <constraints>
-                      <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                      <grid row="0" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                    </constraints>
+                    <properties>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <text value="ㅣCCTV"/>
+                    </properties>
+                  </component>
+                  <component id="11da9" class="javax.swing.JLabel">
+                    <constraints>
+                      <grid row="1" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                    </constraints>
+                    <properties>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <text value="ㅣ명칭"/>
+                    </properties>
+                  </component>
+                  <component id="dcc88" class="javax.swing.JLabel">
+                    <constraints>
+                      <grid row="2" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                    </constraints>
+                    <properties>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <text value="ㅣIP / Port   "/>
+                    </properties>
+                  </component>
+                  <component id="40583" class="javax.swing.JLabel">
+                    <constraints>
+                      <grid row="3" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                    </constraints>
+                    <properties>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <text value="ㅣ도어"/>
+                    </properties>
+                  </component>
+                  <component id="81652" class="javax.swing.JTextField">
+                    <constraints>
+                      <grid row="4" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
+                        <minimum-size width="100" height="-1"/>
+                        <preferred-size width="100" height="-1"/>
+                        <maximum-size width="100" height="-1"/>
+                      </grid>
+                    </constraints>
+                    <properties>
+                      <editable value="false"/>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <horizontalAlignment value="0"/>
+                      <text value="가동/중지"/>
+                    </properties>
+                  </component>
+                  <component id="bb275" class="javax.swing.JTextField">
+                    <constraints>
+                      <grid row="4" column="7" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
+                        <minimum-size width="100" height="-1"/>
+                        <preferred-size width="100" height="-1"/>
+                        <maximum-size width="100" height="-1"/>
+                      </grid>
+                    </constraints>
+                    <properties>
+                      <editable value="false"/>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <horizontalAlignment value="0"/>
+                      <text value="34"/>
+                    </properties>
+                  </component>
+                  <component id="54bbc" class="javax.swing.JLabel">
+                    <constraints>
+                      <grid row="3" column="6" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                    </constraints>
+                    <properties>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <text value="ㅣ팬"/>
+                    </properties>
+                  </component>
+                  <component id="140c3" class="javax.swing.JLabel">
+                    <constraints>
+                      <grid row="4" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                    </constraints>
+                    <properties>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <text value="ㅣ히터"/>
+                    </properties>
+                  </component>
+                  <component id="ba507" class="javax.swing.JLabel">
+                    <constraints>
+                      <grid row="4" column="6" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                    </constraints>
+                    <properties>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <text value="ㅣ함체온도"/>
+                    </properties>
+                  </component>
+                  <component id="5de49" class="javax.swing.JTextField">
+                    <constraints>
+                      <grid row="2" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
+                        <minimum-size width="120" height="-1"/>
+                        <preferred-size width="120" height="-1"/>
+                        <maximum-size width="120" height="-1"/>
+                      </grid>
+                    </constraints>
+                    <properties>
+                      <editable value="false"/>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <horizontalAlignment value="0"/>
+                      <text value="192.168.113.112"/>
+                    </properties>
+                  </component>
+                  <component id="3b1f0" class="javax.swing.JTextField">
+                    <constraints>
+                      <grid row="2" column="5" row-span="1" col-span="2" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
+                        <minimum-size width="100" height="-1"/>
+                        <preferred-size width="100" height="-1"/>
+                        <maximum-size width="100" height="-1"/>
+                      </grid>
                     </constraints>
                     <properties>
-                      <text value="ㅣ관리번호"/>
+                      <editable value="false"/>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <horizontalAlignment value="0"/>
+                      <text value="3001"/>
                     </properties>
                   </component>
-                  <component id="f96bf" class="javax.swing.JTextField" binding="textField1" default-binding="true">
+                  <component id="a2741" class="javax.swing.JTextField">
                     <constraints>
-                      <grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
-                        <preferred-size width="150" height="-1"/>
+                      <grid row="3" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
+                        <minimum-size width="100" height="-1"/>
+                        <preferred-size width="100" height="-1"/>
+                        <maximum-size width="100" height="-1"/>
                       </grid>
                     </constraints>
-                    <properties/>
+                    <properties>
+                      <editable value="false"/>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <horizontalAlignment value="0"/>
+                      <text value="열림/닫힘"/>
+                    </properties>
                   </component>
-                  <component id="17549" class="javax.swing.JTextField" binding="textField2" default-binding="true">
+                  <component id="72a2d" class="javax.swing.JTextField">
                     <constraints>
-                      <grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
-                        <preferred-size width="150" height="-1"/>
+                      <grid row="3" column="7" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
+                        <minimum-size width="100" height="-1"/>
+                        <preferred-size width="100" height="-1"/>
+                        <maximum-size width="100" height="-1"/>
                       </grid>
                     </constraints>
-                    <properties/>
+                    <properties>
+                      <editable value="false"/>
+                      <font name="Malgun Gothic" size="12" style="0"/>
+                      <horizontalAlignment value="0"/>
+                      <text value="가동/중지"/>
+                    </properties>
                   </component>
                 </children>
               </grid>
-              <component id="7c99b" class="javax.swing.JButton" binding="btnReset">
+            </children>
+          </grid>
+          <grid id="62443" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+            <margin top="0" left="0" bottom="0" right="0"/>
+            <constraints>
+              <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
+            </constraints>
+            <properties/>
+            <border type="none"/>
+            <children>
+              <component id="a85f9" class="javax.swing.JButton" binding="btnZoomIn">
                 <constraints>
-                  <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
+                  <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
                 </constraints>
                 <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="리셋"/>
+                  <font name="Malgun Gothic" size="14" style="1"/>
+                  <text value="Zoom (+)"/>
                 </properties>
               </component>
-              <component id="3d84f" class="javax.swing.JButton" binding="btnInitialize">
+              <component id="7c99b" class="javax.swing.JButton" binding="btnZoomOut">
                 <constraints>
-                  <grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
+                  <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
                 </constraints>
                 <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="초기화"/>
+                  <font name="Malgun Gothic" size="14" style="1"/>
+                  <text value="Zoom (-)"/>
                 </properties>
               </component>
-              <component id="660a8" class="javax.swing.JButton" binding="btnImage">
+              <component id="660a8" class="javax.swing.JButton" binding="btnFocusIn">
                 <constraints>
-                  <grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
+                  <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
                 </constraints>
                 <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="정지영상"/>
+                  <font name="Malgun Gothic" size="14" style="1"/>
+                  <text value="Focus (+)"/>
+                </properties>
+              </component>
+              <component id="3d84f" class="javax.swing.JButton" binding="btnFocusOut">
+                <constraints>
+                  <grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
+                </constraints>
+                <properties>
+                  <font name="Malgun Gothic" size="14" style="1"/>
+                  <text value="Focus (-)"/>
                 </properties>
               </component>
             </children>
           </grid>
-          <grid id="62443" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+          <grid id="e429a" layout-manager="GridLayoutManager" row-count="3" column-count="3" same-size-horizontally="true" same-size-vertically="true" hgap="-1" vgap="-1">
             <margin top="0" left="0" bottom="0" right="0"/>
             <constraints>
-              <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-            </constraints>
-            <properties/>
-            <border type="none"/>
-            <children/>
-          </grid>
-        </children>
-      </grid>
-      <grid id="1a658" binding="pnlLog" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
-        <margin top="0" left="4" bottom="0" right="4"/>
-        <constraints>
-          <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-        </constraints>
-        <properties/>
-        <border type="none"/>
-        <children>
-          <grid id="dbb05" binding="pnlLogTitle" layout-manager="GridLayoutManager" row-count="1" column-count="6" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
-            <margin top="0" left="0" bottom="0" right="2"/>
-            <constraints>
-              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
+              <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
             </constraints>
             <properties/>
             <border type="none"/>
             <children>
-              <component id="9ac90" class="javax.swing.JLabel">
+              <component id="6057a" class="javax.swing.JButton" binding="button2" default-binding="true">
                 <constraints>
-                  <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                  <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
                 </constraints>
                 <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalAlignment value="2"/>
-                  <icon value="static/image/logging.png"/>
-                  <text value="제어기 로그"/>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
                 </properties>
               </component>
-              <hspacer id="656fd">
+              <component id="90c8c" class="javax.swing.JButton" binding="button3" default-binding="true">
                 <constraints>
-                  <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
+                  <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
                 </constraints>
-              </hspacer>
-              <component id="df2a0" class="javax.swing.JButton" binding="btnLogDirOpen">
+                <properties>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
+                </properties>
+              </component>
+              <component id="83d68" class="javax.swing.JButton" binding="button5" default-binding="true">
                 <constraints>
-                  <grid row="0" column="5" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
+                  <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
                 </constraints>
                 <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalTextPosition value="0"/>
-                  <text value="로그 폴더"/>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
                 </properties>
               </component>
-              <component id="69a98" class="javax.swing.JButton" binding="btnLogPause">
+              <component id="d5b58" class="javax.swing.JButton" binding="button6" default-binding="true">
                 <constraints>
-                  <grid row="0" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
+                  <grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
                 </constraints>
                 <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalTextPosition value="0"/>
-                  <text value="지우기"/>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
                 </properties>
               </component>
-              <component id="1e9e7" class="javax.swing.JCheckBox" binding="chkLogPause">
+              <component id="9f7a9" class="javax.swing.JButton" binding="button8" default-binding="true">
                 <constraints>
-                  <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
+                  <grid row="1" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
                 </constraints>
                 <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalAlignment value="0"/>
-                  <horizontalTextPosition value="11"/>
-                  <text value="멈춤"/>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
                 </properties>
               </component>
-              <component id="ba97c" class="javax.swing.JButton" binding="btnLogCopy">
+              <component id="ec78f" class="javax.swing.JButton" binding="button9" default-binding="true">
                 <constraints>
-                  <grid row="0" column="4" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
+                  <grid row="2" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
                 </constraints>
                 <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="복사"/>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
                 </properties>
               </component>
-            </children>
-          </grid>
-          <scrollpane id="a6866">
-            <constraints>
-              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-            </constraints>
-            <properties>
-              <font name="D2Coding" size="12" style="0"/>
-            </properties>
-            <border type="none"/>
-            <children>
-              <component id="8ce8a" class="javax.swing.JTextArea" binding="taLog">
-                <constraints/>
+              <component id="90b80" class="javax.swing.JButton" binding="button1" default-binding="true">
+                <constraints>
+                  <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
+                </constraints>
                 <properties>
-                  <background color="-16777216"/>
-                  <caretColor color="-1"/>
-                  <editable value="false"/>
-                  <font name="D2Coding" size="14" style="0"/>
-                  <foreground color="-1"/>
-                  <margin top="4" left="4" bottom="4" right="4"/>
-                  <text value="[10:50:08.561] [ INFO] ************************************************************************************&#10;[10:50:08.561] [ INFO] **                   Center Communication Server Information                      **&#10;[10:50:08.561] [ INFO] **     bindAddress: 0.0.0.0&#10;[10:50:08.561] [ INFO] **      listenPort: 9901&#10;[10:50:08.561] [ INFO] **         backlog: 1024&#10;[10:50:08.561] [ INFO] **   acceptThreads: 16&#10;[10:50:08.561] [ INFO] **   workerThreads: 16&#10;[10:50:08.561] [ INFO] ************************************************************************************&#10;"/>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
+                </properties>
+              </component>
+              <component id="2920a" class="javax.swing.JButton" binding="button4" default-binding="true">
+                <constraints>
+                  <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
+                </constraints>
+                <properties>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
+                </properties>
+              </component>
+              <component id="e2bad" class="javax.swing.JButton" binding="button7" default-binding="true">
+                <constraints>
+                  <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
+                    <minimum-size width="50" height="50"/>
+                    <preferred-size width="50" height="50"/>
+                    <maximum-size width="50" height="50"/>
+                  </grid>
+                </constraints>
+                <properties>
+                  <font name="Malgun Gothic" size="16" style="0"/>
+                  <horizontalTextPosition value="2"/>
+                  <text value=""/>
                 </properties>
               </component>
             </children>
-          </scrollpane>
+          </grid>
         </children>
       </grid>
+      <grid id="c02d8" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+        <margin top="0" left="0" bottom="0" right="0"/>
+        <constraints>
+          <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false">
+            <minimum-size width="-1" height="10"/>
+            <preferred-size width="-1" height="10"/>
+            <maximum-size width="-1" height="10"/>
+          </grid>
+        </constraints>
+        <properties/>
+        <border type="none"/>
+        <children/>
+      </grid>
+      <grid id="a186" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
+        <margin top="0" left="0" bottom="0" right="0"/>
+        <constraints>
+          <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false">
+            <minimum-size width="-1" height="10"/>
+            <preferred-size width="-1" height="10"/>
+            <maximum-size width="-1" height="10"/>
+          </grid>
+        </constraints>
+        <properties/>
+        <border type="none"/>
+        <children/>
+      </grid>
     </children>
   </grid>
 </form>

+ 192 - 187
src/main/java/com/its/cctv/ui/SubUI.java

@@ -2,7 +2,6 @@ package com.its.cctv.ui;
 
 import com.intellij.uiDesigner.core.GridConstraints;
 import com.intellij.uiDesigner.core.GridLayoutManager;
-import com.intellij.uiDesigner.core.Spacer;
 import com.its.cctv.domain.NET;
 import com.its.cctv.entity.TbCctvCtlr;
 import com.its.cctv.service.CctvCtlrService;
@@ -14,10 +13,6 @@ import javax.swing.*;
 import javax.swing.plaf.FontUIResource;
 import javax.swing.text.StyleContext;
 import java.awt.*;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.StringSelection;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.io.File;
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
@@ -32,23 +27,27 @@ public abstract class SubUI {
 
     private JPanel rootPanel;
     private JPanel pnlCtlr;
-    private JPanel pnlLog;
-    private JPanel pnlLogTitle;
-    private JPanel pnlCtlrTitlex;
     private JButton btnLogDirOpen;
     private JButton btnLogPause;
     private JCheckBox chkLogPause;
     private JTextArea taLog;
     private JButton btnLogCopy;
     private JPanel pnlControl;
-    private JButton btnImage;
-    private JButton btnInitialize;
-    private JButton btnReset;
-    private JButton btnDisconnect;
+    private JButton btnFocusIn;
+    private JButton btnFocusOut;
+    private JButton btnZoomOut;
+    private JButton btnZoomIn;
     private JTextField txtName;
-    private JTextField txtId;
-    private JTextField textField1;
-    private JTextField textField2;
+    private JTextField txtNmbr;
+    private JButton button1;
+    private JButton button2;
+    private JButton button3;
+    private JButton button4;
+    private JButton button5;
+    private JButton button6;
+    private JButton button7;
+    private JButton button8;
+    private JButton button9;
 
     protected abstract void actionButtonClicked();
 
@@ -67,79 +66,18 @@ public abstract class SubUI {
         //taLog.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 14));
         Font d2font = new Font("D2Coding", Font.PLAIN, 14);
         if (d2font != null) {
-            taLog.setFont(d2font);
+            //taLog.setFont(d2font);
         }
-        taLog.setText(null);
+        //taLog.setText(null);
 
-        chkLogPause.setFocusable(false);
-        btnLogPause.setFocusable(false);
-        btnLogDirOpen.setFocusable(false);
-        btnLogCopy.setFocusable(false);
-
-        btnLogPause.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                taLog.setText(null);
-            }
-        });
-        btnLogDirOpen.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                Runtime rt = Runtime.getRuntime();
-                try {
-                    rt.exec("explorer.exe logs");
-                } catch (IOException ex) {
-                    throw new RuntimeException(ex);
-                }
-            }
-        });
-        chkLogPause.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                JTextAreaOutputStream.isLoggingPause = chkLogPause.isSelected();
-            }
-        });
-        btnLogCopy.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                StringSelection stringSelection = new StringSelection(taLog.getText());
-                Clipboard clpBrd = Toolkit.getDefaultToolkit().getSystemClipboard();
-                clpBrd.setContents(stringSelection, null);
-            }
-        });
-
-        btnDisconnect.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(1);
-            }
-        });
-        btnReset.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(2);
-            }
-        });
-        btnInitialize.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(3);
-            }
-        });
-        btnImage.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(4);
-            }
-        });
     }
 
     public void updateInfo(TbCctvCtlr selObj) {
         this.selObj = selObj;
-        txtId.setText("");
+        txtNmbr.setText("");
         txtName.setText("");
         if (selObj != null) {
-            txtId.setText(selObj.getCCTV_CTLR_ID());
+            txtNmbr.setText(selObj.getCCTV_CTLR_ID());
             txtName.setText(selObj.getCCTV_NM());
         }
     }
@@ -221,126 +159,193 @@ public abstract class SubUI {
      */
     private void $$$setupUI$$$() {
         rootPanel = new JPanel();
-        rootPanel.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
+        rootPanel.setLayout(new GridLayoutManager(3, 1, new Insets(0, 0, 0, 0), -1, -1));
         pnlCtlr = new JPanel();
-        pnlCtlr.setLayout(new GridLayoutManager(2, 2, new Insets(10, 4, 0, 4), -1, -1));
-        rootPanel.add(pnlCtlr, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        pnlCtlrTitlex = new JPanel();
-        pnlCtlrTitlex.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 2), -1, -1));
-        pnlCtlr.add(pnlCtlrTitlex, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_FIXED, 1, null, null, null, 0, false));
-        final JLabel label1 = new JLabel();
-        Font label1Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label1.getFont());
-        if (label1Font != null) label1.setFont(label1Font);
-        label1.setHorizontalAlignment(2);
-        label1.setHorizontalTextPosition(11);
-        label1.setIcon(new ImageIcon(getClass().getResource("/static/image/controller.png")));
-        label1.setText("제어기 정보");
-        pnlCtlrTitlex.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        final Spacer spacer1 = new Spacer();
-        pnlCtlrTitlex.add(spacer1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
+        pnlCtlr.setLayout(new GridLayoutManager(1, 3, new Insets(10, 4, 0, 4), -1, -1));
+        rootPanel.add(pnlCtlr, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         pnlControl = new JPanel();
-        pnlControl.setLayout(new GridLayoutManager(4, 2, new Insets(0, 0, 0, 2), 1, 1));
-        pnlCtlr.add(pnlControl, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
-        btnDisconnect = new JButton();
-        Font btnDisconnectFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnDisconnect.getFont());
-        if (btnDisconnectFont != null) btnDisconnect.setFont(btnDisconnectFont);
-        btnDisconnect.setText("연결끊기");
-        pnlControl.add(btnDisconnect, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        pnlControl.setLayout(new GridLayoutManager(5, 1, new Insets(0, 0, 0, 2), 1, 1));
+        pnlCtlr.add(pnlControl, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
         final JPanel panel1 = new JPanel();
-        panel1.setLayout(new GridLayoutManager(4, 2, new Insets(0, 0, 0, 0), -1, -1));
-        pnlControl.add(panel1, new GridConstraints(0, 0, 4, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
-        txtId = new JTextField();
-        txtId.setEditable(false);
-        Font txtIdFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, txtId.getFont());
-        if (txtIdFont != null) txtId.setFont(txtIdFont);
-        txtId.setHorizontalAlignment(0);
-        txtId.setText("ID");
-        panel1.add(txtId, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
+        panel1.setLayout(new GridLayoutManager(5, 8, new Insets(0, 0, 0, 0), -1, -1));
+        pnlControl.add(panel1, new GridConstraints(0, 0, 5, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+        txtNmbr = new JTextField();
+        txtNmbr.setEditable(false);
+        Font txtNmbrFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, txtNmbr.getFont());
+        if (txtNmbrFont != null) txtNmbr.setFont(txtNmbrFont);
+        txtNmbr.setHorizontalAlignment(0);
+        txtNmbr.setText("관리번호");
+        panel1.add(txtNmbr, new GridConstraints(0, 3, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
         txtName = new JTextField();
         txtName.setEditable(false);
         Font txtNameFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, txtName.getFont());
         if (txtNameFont != null) txtName.setFont(txtNameFont);
         txtName.setHorizontalAlignment(2);
         txtName.setText("제어기 명칭");
-        panel1.add(txtName, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
+        panel1.add(txtName, new GridConstraints(1, 3, 1, 5, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
+        final JLabel label1 = new JLabel();
+        Font label1Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label1.getFont());
+        if (label1Font != null) label1.setFont(label1Font);
+        label1.setText("ㅣCCTV");
+        panel1.add(label1, new GridConstraints(0, 0, 1, 3, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         final JLabel label2 = new JLabel();
-        label2.setText("ㅣ관리번호");
-        panel1.add(label2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        textField1 = new JTextField();
-        panel1.add(textField1, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
-        textField2 = new JTextField();
-        panel1.add(textField2, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
-        btnReset = new JButton();
-        Font btnResetFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReset.getFont());
-        if (btnResetFont != null) btnReset.setFont(btnResetFont);
-        btnReset.setText("리셋");
-        pnlControl.add(btnReset, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnInitialize = new JButton();
-        Font btnInitializeFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnInitialize.getFont());
-        if (btnInitializeFont != null) btnInitialize.setFont(btnInitializeFont);
-        btnInitialize.setText("초기화");
-        pnlControl.add(btnInitialize, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnImage = new JButton();
-        Font btnImageFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnImage.getFont());
-        if (btnImageFont != null) btnImage.setFont(btnImageFont);
-        btnImage.setText("정지영상");
-        pnlControl.add(btnImage, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        final JPanel panel2 = new JPanel();
-        panel2.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
-        pnlCtlr.add(panel2, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
-        pnlLog = new JPanel();
-        pnlLog.setLayout(new GridLayoutManager(2, 1, new Insets(0, 4, 0, 4), -1, -1));
-        rootPanel.add(pnlLog, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
-        pnlLogTitle = new JPanel();
-        pnlLogTitle.setLayout(new GridLayoutManager(1, 6, new Insets(0, 0, 0, 2), 1, 1));
-        pnlLog.add(pnlLogTitle, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+        Font label2Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label2.getFont());
+        if (label2Font != null) label2.setFont(label2Font);
+        label2.setText("ㅣ명칭");
+        panel1.add(label2, new GridConstraints(1, 0, 1, 3, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         final JLabel label3 = new JLabel();
         Font label3Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label3.getFont());
         if (label3Font != null) label3.setFont(label3Font);
-        label3.setHorizontalAlignment(2);
-        label3.setIcon(new ImageIcon(getClass().getResource("/static/image/logging.png")));
-        label3.setText("제어기 로그");
-        pnlLogTitle.add(label3, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        final Spacer spacer2 = new Spacer();
-        pnlLogTitle.add(spacer2, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
-        btnLogDirOpen = new JButton();
-        Font btnLogDirOpenFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnLogDirOpen.getFont());
-        if (btnLogDirOpenFont != null) btnLogDirOpen.setFont(btnLogDirOpenFont);
-        btnLogDirOpen.setHorizontalTextPosition(0);
-        btnLogDirOpen.setText("로그 폴더");
-        pnlLogTitle.add(btnLogDirOpen, new GridConstraints(0, 5, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnLogPause = new JButton();
-        Font btnLogPauseFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnLogPause.getFont());
-        if (btnLogPauseFont != null) btnLogPause.setFont(btnLogPauseFont);
-        btnLogPause.setHorizontalTextPosition(0);
-        btnLogPause.setText("지우기");
-        pnlLogTitle.add(btnLogPause, new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        chkLogPause = new JCheckBox();
-        Font chkLogPauseFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, chkLogPause.getFont());
-        if (chkLogPauseFont != null) chkLogPause.setFont(chkLogPauseFont);
-        chkLogPause.setHorizontalAlignment(0);
-        chkLogPause.setHorizontalTextPosition(11);
-        chkLogPause.setText("멈춤");
-        pnlLogTitle.add(chkLogPause, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnLogCopy = new JButton();
-        Font btnLogCopyFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnLogCopy.getFont());
-        if (btnLogCopyFont != null) btnLogCopy.setFont(btnLogCopyFont);
-        btnLogCopy.setText("복사");
-        pnlLogTitle.add(btnLogCopy, new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        final JScrollPane scrollPane1 = new JScrollPane();
-        Font scrollPane1Font = this.$$$getFont$$$("D2Coding", Font.PLAIN, 12, scrollPane1.getFont());
-        if (scrollPane1Font != null) scrollPane1.setFont(scrollPane1Font);
-        pnlLog.add(scrollPane1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
-        taLog = new JTextArea();
-        taLog.setBackground(new Color(-16777216));
-        taLog.setCaretColor(new Color(-1));
-        taLog.setEditable(false);
-        Font taLogFont = this.$$$getFont$$$("D2Coding", Font.PLAIN, 14, taLog.getFont());
-        if (taLogFont != null) taLog.setFont(taLogFont);
-        taLog.setForeground(new Color(-1));
-        taLog.setMargin(new Insets(4, 4, 4, 4));
-        taLog.setText("[10:50:08.561] [ INFO] ************************************************************************************\n[10:50:08.561] [ INFO] **                   Center Communication Server Information                      **\n[10:50:08.561] [ INFO] **     bindAddress: 0.0.0.0\n[10:50:08.561] [ INFO] **      listenPort: 9901\n[10:50:08.561] [ INFO] **         backlog: 1024\n[10:50:08.561] [ INFO] **   acceptThreads: 16\n[10:50:08.561] [ INFO] **   workerThreads: 16\n[10:50:08.561] [ INFO] ************************************************************************************\n");
-        scrollPane1.setViewportView(taLog);
+        label3.setText("ㅣIP / Port   ");
+        panel1.add(label3, new GridConstraints(2, 0, 1, 3, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        final JLabel label4 = new JLabel();
+        Font label4Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label4.getFont());
+        if (label4Font != null) label4.setFont(label4Font);
+        label4.setText("ㅣ도어");
+        panel1.add(label4, new GridConstraints(3, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        final JTextField textField1 = new JTextField();
+        textField1.setEditable(false);
+        Font textField1Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, textField1.getFont());
+        if (textField1Font != null) textField1.setFont(textField1Font);
+        textField1.setHorizontalAlignment(0);
+        textField1.setText("가동/중지");
+        panel1.add(textField1, new GridConstraints(4, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
+        final JTextField textField2 = new JTextField();
+        textField2.setEditable(false);
+        Font textField2Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, textField2.getFont());
+        if (textField2Font != null) textField2.setFont(textField2Font);
+        textField2.setHorizontalAlignment(0);
+        textField2.setText("34");
+        panel1.add(textField2, new GridConstraints(4, 7, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
+        final JLabel label5 = new JLabel();
+        Font label5Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label5.getFont());
+        if (label5Font != null) label5.setFont(label5Font);
+        label5.setText("ㅣ팬");
+        panel1.add(label5, new GridConstraints(3, 6, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        final JLabel label6 = new JLabel();
+        Font label6Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label6.getFont());
+        if (label6Font != null) label6.setFont(label6Font);
+        label6.setText("ㅣ히터");
+        panel1.add(label6, new GridConstraints(4, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        final JLabel label7 = new JLabel();
+        Font label7Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label7.getFont());
+        if (label7Font != null) label7.setFont(label7Font);
+        label7.setText("ㅣ함체온도");
+        panel1.add(label7, new GridConstraints(4, 6, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        final JTextField textField3 = new JTextField();
+        textField3.setEditable(false);
+        Font textField3Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, textField3.getFont());
+        if (textField3Font != null) textField3.setFont(textField3Font);
+        textField3.setHorizontalAlignment(0);
+        textField3.setText("192.168.113.112");
+        panel1.add(textField3, new GridConstraints(2, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(120, -1), new Dimension(120, -1), new Dimension(120, -1), 0, false));
+        final JTextField textField4 = new JTextField();
+        textField4.setEditable(false);
+        Font textField4Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, textField4.getFont());
+        if (textField4Font != null) textField4.setFont(textField4Font);
+        textField4.setHorizontalAlignment(0);
+        textField4.setText("3001");
+        panel1.add(textField4, new GridConstraints(2, 5, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
+        final JTextField textField5 = new JTextField();
+        textField5.setEditable(false);
+        Font textField5Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, textField5.getFont());
+        if (textField5Font != null) textField5.setFont(textField5Font);
+        textField5.setHorizontalAlignment(0);
+        textField5.setText("열림/닫힘");
+        panel1.add(textField5, new GridConstraints(3, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
+        final JTextField textField6 = new JTextField();
+        textField6.setEditable(false);
+        Font textField6Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, textField6.getFont());
+        if (textField6Font != null) textField6.setFont(textField6Font);
+        textField6.setHorizontalAlignment(0);
+        textField6.setText("가동/중지");
+        panel1.add(textField6, new GridConstraints(3, 7, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
+        final JPanel panel2 = new JPanel();
+        panel2.setLayout(new GridLayoutManager(4, 1, new Insets(0, 0, 0, 0), -1, -1));
+        pnlCtlr.add(panel2, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnZoomIn = new JButton();
+        Font btnZoomInFont = this.$$$getFont$$$("Malgun Gothic", Font.BOLD, 14, btnZoomIn.getFont());
+        if (btnZoomInFont != null) btnZoomIn.setFont(btnZoomInFont);
+        btnZoomIn.setText("Zoom (+)");
+        panel2.add(btnZoomIn, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnZoomOut = new JButton();
+        Font btnZoomOutFont = this.$$$getFont$$$("Malgun Gothic", Font.BOLD, 14, btnZoomOut.getFont());
+        if (btnZoomOutFont != null) btnZoomOut.setFont(btnZoomOutFont);
+        btnZoomOut.setText("Zoom (-)");
+        panel2.add(btnZoomOut, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnFocusIn = new JButton();
+        Font btnFocusInFont = this.$$$getFont$$$("Malgun Gothic", Font.BOLD, 14, btnFocusIn.getFont());
+        if (btnFocusInFont != null) btnFocusIn.setFont(btnFocusInFont);
+        btnFocusIn.setText("Focus (+)");
+        panel2.add(btnFocusIn, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnFocusOut = new JButton();
+        Font btnFocusOutFont = this.$$$getFont$$$("Malgun Gothic", Font.BOLD, 14, btnFocusOut.getFont());
+        if (btnFocusOutFont != null) btnFocusOut.setFont(btnFocusOutFont);
+        btnFocusOut.setText("Focus (-)");
+        panel2.add(btnFocusOut, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        final JPanel panel3 = new JPanel();
+        panel3.setLayout(new GridLayoutManager(3, 3, new Insets(0, 0, 0, 0), -1, -1, true, true));
+        pnlCtlr.add(panel3, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        button2 = new JButton();
+        Font button2Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button2.getFont());
+        if (button2Font != null) button2.setFont(button2Font);
+        button2.setHorizontalTextPosition(2);
+        button2.setText("\uF0E7");
+        panel3.add(button2, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        button3 = new JButton();
+        Font button3Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button3.getFont());
+        if (button3Font != null) button3.setFont(button3Font);
+        button3.setHorizontalTextPosition(2);
+        button3.setText("\uF0ED");
+        panel3.add(button3, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        button5 = new JButton();
+        Font button5Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button5.getFont());
+        if (button5Font != null) button5.setFont(button5Font);
+        button5.setHorizontalTextPosition(2);
+        button5.setText("▣");
+        panel3.add(button5, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        button6 = new JButton();
+        Font button6Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button6.getFont());
+        if (button6Font != null) button6.setFont(button6Font);
+        button6.setHorizontalTextPosition(2);
+        button6.setText("\uF0EA");
+        panel3.add(button6, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        button8 = new JButton();
+        Font button8Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button8.getFont());
+        if (button8Font != null) button8.setFont(button8Font);
+        button8.setHorizontalTextPosition(2);
+        button8.setText("\uF0E8");
+        panel3.add(button8, new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        button9 = new JButton();
+        Font button9Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button9.getFont());
+        if (button9Font != null) button9.setFont(button9Font);
+        button9.setHorizontalTextPosition(2);
+        button9.setText("\uF0EE");
+        panel3.add(button9, new GridConstraints(2, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        button1 = new JButton();
+        Font button1Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button1.getFont());
+        if (button1Font != null) button1.setFont(button1Font);
+        button1.setHorizontalTextPosition(2);
+        button1.setText("\uF0EB");
+        panel3.add(button1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        button4 = new JButton();
+        Font button4Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button4.getFont());
+        if (button4Font != null) button4.setFont(button4Font);
+        button4.setHorizontalTextPosition(2);
+        button4.setText("\uF0E9");
+        panel3.add(button4, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        button7 = new JButton();
+        Font button7Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 16, button7.getFont());
+        if (button7Font != null) button7.setFont(button7Font);
+        button7.setHorizontalTextPosition(2);
+        button7.setText("\uF0EC");
+        panel3.add(button7, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, new Dimension(50, 50), new Dimension(50, 50), new Dimension(50, 50), 0, false));
+        final JPanel panel4 = new JPanel();
+        panel4.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
+        rootPanel.add(panel4, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(-1, 10), new Dimension(-1, 10), new Dimension(-1, 10), 0, false));
+        final JPanel panel5 = new JPanel();
+        panel5.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
+        rootPanel.add(panel5, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(-1, 10), new Dimension(-1, 10), new Dimension(-1, 10), 0, false));
     }
 
     /**

+ 13 - 2
src/main/java/com/its/cctv/ui/SubUIController.java

@@ -10,8 +10,8 @@ public class SubUIController extends JFrame {
     private JFrame caller;
 
     public SubUIController(JFrame jFrame) {
-        super("제어기 정보");
-        String pathOfImage = "C:\\DEV\\ITS\\01.WINDOWS\\22.01.YONGIN\\JAVA\\cctv-comm-server\\src\\main\\resources\\static\\image\\application.png";
+        super("CCTV 제어");
+        String pathOfImage = "C:\\DEV\\ITS\\01.WINDOWS\\22.07.PyeongTaek\\JAVA\\cctv-comm-server\\src\\main\\resources\\static\\image\\application.png";
         setIconImage(Toolkit.getDefaultToolkit().getImage(pathOfImage));
         this.caller = jFrame;
         this.view = new SubUI() {
@@ -20,8 +20,19 @@ public class SubUIController extends JFrame {
                 doAction();
             }
         };
+        //this.setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
+        this.setResizable(false);
+        this.setLocationRelativeTo(this.caller);
+        this.setLocationByPlatform(true);
         this.setContentPane(view.$$$getRootComponent$$$());
+        this.setAlwaysOnTop(true);
         this.setDefaultCloseOperation(HIDE_ON_CLOSE);
+
+        this.setUndecorated(true);
+        //this.setDefaultLookAndFeelDecorated(true);
+        this.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
+        //this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+
         this.pack();
     }
 

+ 6 - 6
src/main/java/com/its/cctv/xnettcp/cctv/protocol/CctvReqPtzCtrl.java

@@ -38,18 +38,18 @@ public class CctvReqPtzCtrl extends CctvReqFramePacket {
         setFocus((byte)0x80, sped);    // 128
     }
 
-    protected void setFan(byte fan, byte sped) {
-        this.body[0] = fan;
+    protected void setPan(byte pan, byte sped) {
+        this.body[0] = pan;
         this.body[1] = sped;   // 0 ~ 64
         this.body[2] = 0x00;
         this.body[3] = 0x00;
         this.body[4] = 0x00;
     }
     public void panLeft(byte sped) {
-        setFocus((byte)0x01, sped);    // 1
+        setPan((byte)0x01, sped);    // 1
     }
     public void fanRight(byte sped) {
-        setFocus((byte)0x02, sped);    // 2
+        setPan((byte)0x02, sped);    // 2
     }
 
     protected void setTilt(byte tilt, byte sped) {
@@ -60,10 +60,10 @@ public class CctvReqPtzCtrl extends CctvReqFramePacket {
         this.body[4] = 0x00;
     }
     public void tiltUp(byte sped) {
-        setFocus((byte)0x04, sped);    // 4
+        setTilt((byte)0x04, sped);    // 4
     }
     public void tiltDown(byte sped) {
-        setFocus((byte)0x08, sped);    // 8
+        setTilt((byte)0x08, sped);    // 8
     }
 
     public void ptzStop() {