From 22fd520fb5839e8099d3041bbc0cc6e143d99414 Mon Sep 17 00:00:00 2001 From: krakjoe Date: Fri, 29 Nov 2013 13:20:26 +0000 Subject: [PATCH] update ui echo checkbox move input to bottom like a normal console --- tutorials/java/dist/phpdbg-ui.jar | Bin 30579 -> 30921 bytes tutorials/java/src/phpdbg/ui/DebugSocket.java | 7 +- tutorials/java/src/phpdbg/ui/JConsole.form | 118 +++++++++--------- tutorials/java/src/phpdbg/ui/JConsole.java | 81 ++++++------ 4 files changed, 110 insertions(+), 96 deletions(-) diff --git a/tutorials/java/dist/phpdbg-ui.jar b/tutorials/java/dist/phpdbg-ui.jar index 9df88060a6c056758dea3fe7d52976c461ed660a..f317aa47699dabe535ea8d7b7268edebbf494c75 100644 GIT binary patch delta 8732 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 delta 8493 zcma)C34B%6(f`lMa^JhTgyaEPNXSB16G8%n9fTyTfrJ2I2_O(4LNFu!1ifchDaN4*DVA!nF>r!}SgZBHzIvp3)|^{YP+!xqyr62u zn%bIWDszK_LJV+lBW`jq7R45>aB#E2TO91ftqy*H+Z^1EI~?4JVh4BOZVSJ3unYG% zxEJ@$p-m3%$8Lex4jxdR2l0@DJ=jZI9qd!%?nH}&hq2#52nS9xWoFZwx`yRy%5Dpf zICxZLe}!Uqb8(W}5SP$KpzjyCJ^Ft%*-@ABdmk z#>LNePsIOvbYITAAP+GJs4F-b0riUqIab0F^@<1S7{X}s7hy0AhPdB#ERmt^*o2(& zVQeX)7Eoq5Mi44C5~Iki*l3(V3B^=S*Us) zPe-4K-V#zeBI*RXStuQ6VcfT#_`rzhFtp;LLkBS^{b7eeO{y5t9vB1j0y5grL4 zWf#U#Dz!ZNF<%8)yWWHjxt);~LbqMW>X#oC9YTh=3thq@nFolC*dwCzo=%NEM7=rgr-8fUdhJ8+5c+uUw{*I}m!rz6M#dwXp!gTB{sYyuX=C;>2LG>e%bB8 z59FjVbh$B>LU~)>QMxKN34C8H8x)!hGu(_K9A%0<7%)j@B6^tVrrtD?-e{UUsPyyr zK47Am>>*ptFU%bz++lWk@I158qbHbvD&~qD%5F+f>2^-a56;0b;0nyc^_b6Xy$~(rejGLQ+X{MgC0@nZ_%rJ9DH`w}YBLm>g(i@HR;YukYt(df_q@9V?^yiYG)L^Ncjb*X{D`XRywvuTFnQkG|Jrukj zb+ViE7Sf+2{W;R#ApLF9J|OKFX(!NNI$$-2x7-A6?{?of>v(*s0lrbD$e)0sNT48K20VZTK66NtjIUts`E>7DFEm zqxZ^5J3;;mdQdo=6k?UccDK^lZMapZb#MCy<@k$&Cy?2`xlbU9FW+H^h3OV%e1i_( z!DnHng{p+~Z{V-+ws7nTbZ?W1EwM1`R3%CncM{p~bKkRL{*j;oK*In-h;@>tGZ?V3 z#0p||%KxS=zD?bK)2ZF}MB?fEKQ_ZNJcw+X7BQ^V@-9Cm`eOw;j)b3PZ66|e=1|mN zE}kH?8DKBw5`BDZs+Ue!UOvI3VP{0M)xvL?t!PCD*T9YAGxa+j&XlIvdFz9ZM-aV-%lGGa~9PscYCLo`7~#Fbk2Z-E!(>vF*4nq z)3d~1g;<#dTV}g=^qk>wbQ#m@i$mhTNm-^RJ+XlqRd2VSzg`DqRQ&1`!-Pa2$Ws}>x@Tv}Lktj{* zF3lK3iNl5cyrGSL<$=PuLLkmPUf4%wxIG4x1uYqClX-+6JEho?5*wYvFQt}@vymKr z8L!O~^fA$rNjB2MV2}xCk=LxhBvD9t1V&LSE2o6 zNtI95_++h)fo3xe+$l^0tK?i;*2#LmY!K#sRl>ZlN;cX&7%s3SD4P}A;+G5MBE`1q zW1GHStk@;Wa;ajMso2l-ak(8N@d{OVrM_RKJzZ_fcG;nRyhb0c4(8`J?vZP4xlXQE z>;_wIl$#X0Sy^teWvAS#vcIt8HXG~Yc0cZyJCt&#dS|+gZE}~g-fhV*mAp&+a1T?} zopP^@3*=t{ql@FtJrgv{LYf+ zEqTF`7j4`vBW#|)FI)18j&_74zqjO7x3FWTJEUlb`$bWCPyec#x`vsn>+6~XDN{8E zUSF_w9dpitGLKqW(@;Co9XYtgeZ8n_%V&eH7yCDsyk^Pkmb~F!J#?eo<~qX`MgP;1 zH{HfzgWXXb`nYcnJ1Qaf_TkUUTP^h?#)wUOBX+sfX{GLeMy9%3vj@1-M%hsV3kwPN zW`B;iG#h3j{1HBO@DBdyFn1yL0$z0RCf;(hN2kTTpj^-4cY-eN7vs9P3r2T|Z?n_k zk^F>PGdeBmF+A#iIJz|G@Nj;Vyr+$;bVcpbvr8J+JNPY*I(QaG1)WagC~0nLYHWyP z)X%7fz-jGMYnIg3YaV`35K~%TTeHSt0%Hj}uU@fw*^=c2&2);8AH_Tc^D z1?lg|ALJcJ{wRNP<$>4mHdKy;>h3SQ%C+GpE>fmeC)^8)U2u>hKAau+(A~U+p(mVuZVihU^B!WT~a%2sJ;vn zj%c`JMwpS78ReMK<_tk>Mct|;&1)SqM!OqpiXBs;SgFoUmiyU=Ece@zuxtGEw7a>lfr3h>S`OBYMSaA8wBxdYn!SX z8|$m;R#(-or-3#J;~Q$0)YmTKJolN`cecA>{NT{L{H}Ca!60UhURQDR-0jdvMAKQ{KnTE=!FouCH6(u!?4koaY{!*wuY< zQiA*Clv2O1q1Z-(1ujuYYk&@L!{pVz1*3=21pNlIr12 z;wz@eOnJ-+cfs@?!NlqV2<%6v+=J*$w99@Z5ltqVvLC5LBMe>J(KMpzWazdZ8SQ8$ z(JWH4_w$0-CYD3A2dO>xqZjXf9Rl8UkjO#wtNGC-GDZ-W_g$FTM6%7ets4^-kgkc1!2Qj=lFd{0!Ie?KNj8YPR zb_k;hlJqqMUZ2B4yd#ex+BGmXgkldV33rqhC=FB6TD#8R&3GJHG6Lg6nBXB3LzqM) zGt!b7m>h1&43vdix(B9&FqJGGQm)8BR8;2%4`5mdm3+?$Ob_>y)7nq3z>E-P9z<0& zoiytJW=~a^7s8ypynUD(LN)PuA|2@ujOtl;w%RlOZhL zhng@gLm7gtZ#fCyCyYw?o(u^A{TIR#%4K>=A_8e`ENwcvvps~RAuOXA9#Z=Q+tes_ zzWdb9)m~2DS!`R{HQ{@s-7e=#cVj%ZA^n+^4aF=Oi#akG zb6HB5C-X30mSTa_Vo@kYCcH`+(BN)Gde`vR}Xuj3qZ z4lXhO#*OAUZqhwEkQEzm(}g#w@QB6R_yf13(c~e#HF?)ItnC2XIEQDux6kS|ul@+C z_hA*s%T?VFLgSo$sIM+R%x4Iz`?2Q2;?2|fhjw8g*+Mv{oTZ#Kw<1m@h!*ccs@Jgg zhYfD_?4+PZlo5<6V0o|)tAqV<8!yVYv#53lFV1(eoNy1X)c0a3?qkVdH_HVNp_$dd zjXZs}V!s!Ca%u7cmc0IicWHhzvG+WT!)S|0+gNURpM(4hd+G+O&q-dUg|lkYkT&KYOk@6GbYec0sTn?l&A`on`u@~WB7@E~}WS;OyG7k!@Nc+u-C zT#-zT^rcRZhH=z%CKP<~7?6u78C2gs6!SPP(9japvf-V1Q5*}m+U6Ts4-8>T2p8_+ z%shgNX68k+iQ6yIwDr`csDXUD5zF$T!^r$LEj{zRwp)>Y5ZkKz@hvy{5nOx#m$U>? z?+x+NHoZN=@@>q~19PJy%-BRngm7uQ3(nwL0|y+#f!aLr;_*5w@o!)p2RWPDYcV%i z9kLntTN#C6v>sTAeyIDZTdc%eviXfT+v@6jqb^zTk`0bK^)>}4ssIfm6fdC&Bb>N zOeYzDfwdwyUkol{4fAq|hAT0+Sz>Xg`0#-EPuYPFMjS@>Q15=ajPo00XROdoVl1)( zW5$J}5t~?G4*QfJ1;Xe6QYYz(=efR-~WVg>JNn-3NsLer?Xv}Nqt0m z4R^c-nJjkQm8Zbeyd!Wptqk)qd3$mLSMI}AjDI|aPKyoFk!6VplV+L1wkX`9A_d!m8mAtQ63gulQV!$~O1G?#)(tt;BHN(N4skwn2;jXy`F4{w8 zpaVDI_DF;Z=ptk-IbPDyQMw^TGTSWZ$Vm7J=SpR|;rBt$WoiLec!k9Y6p8uC{`r04 zl>V>z@BQ~+|2^4%FZSQ(fA2q=H!UkN{^H2^{kcp`T<@r9-H=|Cmwxngew%I{2W@N2 z&-M2%)u=juMBQ}yC5l7sn41^q&-3f&AxysT5nTI&vqK7L`2bI=o>BT$srBsW7|}|a z*j#-EesP$}=tW`f!l!0wsHi|EdVdt>e>BTEXRyvV26=oRAY~}xmxRGmiV4Ig%Q%$D zc&0gJOmQYK#hJ(yri?pk5}KF>ZIcRIE%Wh;+puU*!6%Z;UdoWj+0*OEA`eR?*5qMb zi2>UsjdKqC#eHc}KY7XhZc%cF_VCq(y0RB158&aK;FDhb(hv@LBRCFS=drnY2N2!v zjd0M5NOfQuL8(5Hqf+jbi+@719;@W(EBfv5C2B0BUbQPWx4H%VR?s?oZJJ35@4r~- zp-Yj{d7Ra-bh;;`ySAiuSH26@C3*d7<^5dp=QBEIw*K91(U27wQGQ{qL?V!NO|>bahv(ce<-zYL1(& f*98Fmb!%s%U!Gjd|J{%kpX@%cJ}Gv`T5bD3($-XY diff --git a/tutorials/java/src/phpdbg/ui/DebugSocket.java b/tutorials/java/src/phpdbg/ui/DebugSocket.java index eb46af016b..05db2077c3 100644 --- a/tutorials/java/src/phpdbg/ui/DebugSocket.java +++ b/tutorials/java/src/phpdbg/ui/DebugSocket.java @@ -70,7 +70,12 @@ public class DebugSocket extends Socket implements Runnable { command = main.getInputField().getText(); /* send command to stdin socket */ - if (command != null) { + if (command != null) { + if (main.isEchoing()) { + main.getOutputField().appendANSI("remote> "); + main.getOutputField().appendANSI(command); + main.getOutputField().appendANSI("\n"); + } output.write( command.getBytes()); output.write("\n".getBytes()); diff --git a/tutorials/java/src/phpdbg/ui/JConsole.form b/tutorials/java/src/phpdbg/ui/JConsole.form index 69ab5773a4..224a13aeef 100644 --- a/tutorials/java/src/phpdbg/ui/JConsole.form +++ b/tutorials/java/src/phpdbg/ui/JConsole.form @@ -42,14 +42,14 @@ - + - - + + - + @@ -59,7 +59,12 @@ - + + + + + + @@ -70,18 +75,23 @@ - + - - - + + + + + + + + @@ -89,54 +99,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -146,7 +108,7 @@ - + @@ -165,8 +127,8 @@ + - @@ -175,7 +137,7 @@ - + @@ -183,5 +145,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/java/src/phpdbg/ui/JConsole.java b/tutorials/java/src/phpdbg/ui/JConsole.java index 2958cb90ee..bf85012013 100644 --- a/tutorials/java/src/phpdbg/ui/JConsole.java +++ b/tutorials/java/src/phpdbg/ui/JConsole.java @@ -40,10 +40,6 @@ public class JConsole extends javax.swing.JDialog { stdoutPopupMenu = new javax.swing.JPopupMenu(); resetStdout = new javax.swing.JMenuItem(); - mainSplit = new javax.swing.JSplitPane(); - input = new javax.swing.JTextField(); - outputScrollPane = new javax.swing.JScrollPane(); - output = new phpdbg.ui.JTerminalPane(); host = new javax.swing.JTextField(); stdoutPort = new javax.swing.JTextField(); stdinCheckBox = new javax.swing.JCheckBox(); @@ -51,6 +47,10 @@ public class JConsole extends javax.swing.JDialog { openButton = new javax.swing.JButton(); stdinPort = new javax.swing.JTextField(); hostLabel = new javax.swing.JLabel(); + input = new javax.swing.JTextField(); + outputScrollPane = new javax.swing.JScrollPane(); + output = new phpdbg.ui.JTerminalPane(); + echoCheckBox = new javax.swing.JCheckBox(); resetStdout.setText("Clear"); resetStdout.addActionListener(new java.awt.event.ActionListener() { @@ -63,29 +63,11 @@ public class JConsole extends javax.swing.JDialog { setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("phpdbg jui"); - mainSplit.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); - mainSplit.setToolTipText(""); - - input.setToolTipText(""); - input.setEnabled(false); - input.addKeyListener(new java.awt.event.KeyAdapter() { - public void keyReleased(java.awt.event.KeyEvent evt) { - inputKeyReleased(evt); - } - }); - mainSplit.setLeftComponent(input); - - output.setFont(new java.awt.Font("DialogInput", 0, 12)); // NOI18N - output.setComponentPopupMenu(stdoutPopupMenu); - outputScrollPane.setViewportView(output); - - mainSplit.setRightComponent(outputScrollPane); - host.setText("127.0.0.1"); host.setToolTipText("Set the hostname, or IPv4 address of the machine running the phpdbg remote console server"); stdoutPort.setText("8000"); - stdoutPort.setToolTipText(""); + stdoutPort.setToolTipText("By default, stdin * 2"); stdinCheckBox.setSelected(true); stdinCheckBox.setText("stdin:"); @@ -95,8 +77,8 @@ public class JConsole extends javax.swing.JDialog { stdoutCheckBox.setText("stdout:"); stdoutCheckBox.setToolTipText("Set the port for stdout, or unset to disable stdout"); + openButton.setText("Connect"); openButton.setActionCommand("open"); - openButton.setLabel("open"); openButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { openButtonActionPerformed(evt); @@ -104,10 +86,27 @@ public class JConsole extends javax.swing.JDialog { }); stdinPort.setText("4000"); - stdinPort.setToolTipText(""); + stdinPort.setToolTipText("The listen port passed to phpdbg (-l option)"); hostLabel.setText("Hostname:"); + input.setToolTipText("Enter phpdbg commands here !"); + input.setEnabled(false); + input.addKeyListener(new java.awt.event.KeyAdapter() { + public void keyReleased(java.awt.event.KeyEvent evt) { + inputKeyReleased(evt); + } + }); + + output.setFont(new java.awt.Font("DialogInput", 0, 12)); // NOI18N + output.setComponentPopupMenu(stdoutPopupMenu); + outputScrollPane.setViewportView(output); + + echoCheckBox.setSelected(true); + echoCheckBox.setToolTipText("Check to echo sent commands in output"); + echoCheckBox.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); + echoCheckBox.setLabel("echo"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( @@ -115,11 +114,11 @@ public class JConsole extends javax.swing.JDialog { .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(mainSplit) - .addGroup(layout.createSequentialGroup() + .addComponent(outputScrollPane) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(hostLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(host, javax.swing.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE) + .addComponent(host, javax.swing.GroupLayout.DEFAULT_SIZE, 345, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(stdinCheckBox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) @@ -129,24 +128,32 @@ public class JConsole extends javax.swing.JDialog { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(stdoutPort, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(openButton))) + .addComponent(openButton, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(input) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(echoCheckBox))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addComponent(mainSplit, javax.swing.GroupLayout.DEFAULT_SIZE, 428, Short.MAX_VALUE) + .addComponent(outputScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 403, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(host, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(openButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(input, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(echoCheckBox)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(stdoutPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(stdinCheckBox) .addComponent(stdoutCheckBox) .addComponent(stdinPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(hostLabel))) + .addComponent(hostLabel) + .addComponent(host, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(openButton)) .addContainerGap()) ); @@ -238,6 +245,10 @@ public class JConsole extends javax.swing.JDialog { return connected; } + public Boolean isEchoing() { + return echoCheckBox.isSelected(); + } + public void setConnected(Boolean isConnected) { synchronized(this) { if (isConnected) { @@ -353,10 +364,10 @@ public class JConsole extends javax.swing.JDialog { private static CommandHistory history = new CommandHistory(); // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JCheckBox echoCheckBox; private javax.swing.JTextField host; private javax.swing.JLabel hostLabel; private javax.swing.JTextField input; - private javax.swing.JSplitPane mainSplit; private javax.swing.JButton openButton; private phpdbg.ui.JTerminalPane output; private javax.swing.JScrollPane outputScrollPane; -- 2.50.1