22
33import com .jgoodies .forms .layout .CellConstraints ;
44import com .jgoodies .forms .layout .FormLayout ;
5+ import com .longforus .apidebugger .ExtFunKt ;
56import com .longforus .apidebugger .MyValueHandler ;
67import com .longforus .apidebugger .OB ;
78import com .longforus .apidebugger .UIActionHandler ;
89import com .longforus .apidebugger .UILifecycleHandler ;
910import com .longforus .apidebugger .bean .ApiBean ;
1011import com .longforus .apidebugger .encrypt .IEncryptHandler ;
12+ import com .teamdev .jxbrowser .chromium .Browser ;
13+ import com .teamdev .jxbrowser .chromium .BrowserException ;
14+ import com .teamdev .jxbrowser .chromium .swing .BrowserView ;
1115import java .awt .Dimension ;
1216import java .awt .FlowLayout ;
1317import java .awt .HeadlessException ;
@@ -50,10 +54,8 @@ public class MainPanel extends JFrame {
5054 private JComboBox mCbApiUrl ;
5155 private JButton mBtnSend ;
5256 private JComboBox mCbEncrypt ;
53- private JTextPane mTpResponse ;
5457 private JTable mTbParams ;
5558 private JTextPane mTpInfo ;
56- private JsonEditPanel mJep ;
5759 private JButton mBtnSaveApi ;
5860 private JButton mBtnNewApi ;
5961 private JLabel lbStatus ;
@@ -64,6 +66,8 @@ public class MainPanel extends JFrame {
6466 private JButton btnAddRow ;
6567 private JButton btnDelRow ;
6668 private JButton btnClear ;
69+ private BrowserView mBrowserView1 ;
70+ private Browser mBrowser ;
6771
6872 public JComboBox getCbMethod () {
6973 return mCbMethod ;
@@ -81,18 +85,10 @@ public JComboBox getCbEncrypt() {
8185 return mCbEncrypt ;
8286 }
8387
84- public JsonEditPanel getJep () {
85- return mJep ;
86- }
87-
8888 public JLabel getLbStatus () {
8989 return lbStatus ;
9090 }
9191
92- public JTextPane getTpResponse () {
93- return mTpResponse ;
94- }
95-
9692 public JTextPane getTpInfo () {
9793 return mTpInfo ;
9894 }
@@ -124,14 +120,24 @@ public MainPanel(String title) throws HeadlessException {
124120 //mCbApiUrl.setRenderer(new DeleteBtnComboBoxRenderer(o -> UIActionHandler.INSTANCE.onDelApiUrl((ApiBean) o)));
125121 //mCbBaseUrl.setRenderer(new DeleteBtnComboBoxRenderer(UIActionHandler.INSTANCE :: onDelBaseUrl));
126122 initTextPanel ();
127- mJep .jTree .setCellRenderer (new JsonTreeCellRenderer ());
128123 initTable ();
129124 pack ();
130125 Dimension screensize = Toolkit .getDefaultToolkit ().getScreenSize ();
131126 int x = (int ) screensize .getWidth () / 2 - baseP .getPreferredSize ().width / 2 ;
132127 int y = 0 ;
133128 setLocation (x , y );
134129 setVisible (true );
130+ String resource = getClass ().getResource ("" ).getPath ();
131+ int index = resource .indexOf (".jar" );
132+ String path ;
133+ if (index > 0 ) {
134+ int last = resource .lastIndexOf ("/" , index );
135+ path = resource .substring (0 , last ) + "/jsonView/index.html" ;
136+ } else {//debug model
137+ path = resource .substring (1 ) + "/jsonView/index.html" ;
138+ }
139+ mBrowser .loadURL (path );
140+ mBrowser .executeJavaScript ("app.setData('123')" );
135141 }
136142
137143 private void initEvent () {
@@ -152,23 +158,7 @@ private void initEvent() {
152158 }
153159
154160 private void initTextPanel () {
155- mTpResponse .addMouseListener (new MouseInputAdapter () {
156- @ Override
157- public void mouseClicked (MouseEvent e ) {
158- super .mouseClicked (e );
159- if (e .getButton () == MouseEvent .BUTTON3 ) {
160- JPopupMenu menu = new JPopupMenu ("Clear" );
161- JMenuItem clear1 = menu .add (new JMenuItem ("clear" ));
162- JMenuItem copyAll = menu .add (new JMenuItem ("copy all" ));
163- clear1 .addActionListener (e1 -> {
164- mJep .setJson ("{}" , JsonEditPanel .UpdateType .REPLACE );
165- mTpResponse .setText ("" );
166- });
167- copyAll .addActionListener (e1 -> MyValueHandler .INSTANCE .setSysClipboardText (MyValueHandler .INSTANCE .getCurShowJsonStr ()));
168- menu .show (mTpResponse , e .getX (), e .getY ());
169- }
170- }
171- });
161+
172162 mTpInfo .addMouseListener (new MouseInputAdapter () {
173163 @ Override
174164 public void mouseClicked (MouseEvent e ) {
@@ -229,7 +219,6 @@ protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirem
229219 };
230220 }
231221 };
232- mTpResponse .setEditorKit (editorKit );
233222 mTpInfo .setEditorKit (editorKit );
234223 }
235224
@@ -272,7 +261,12 @@ public void keyReleased(KeyEvent e) {
272261 }
273262
274263 private void createUIComponents () {
275- mJep = new JsonEditPanel ();
264+ try {
265+ mBrowser = new Browser ();
266+ } catch (BrowserException e ) {
267+ ExtFunKt .showErrorMsg ("already been opened !!!" );
268+ }
269+ mBrowserView1 = new BrowserView (mBrowser );
276270 }
277271
278272 @ Override
@@ -332,11 +326,9 @@ public String getCurBaseUrl() {
332326 scrollPane1 .setViewportView (mTbParams );
333327 final JScrollPane scrollPane2 = new JScrollPane ();
334328 scrollPane2 .setHorizontalScrollBarPolicy (31 );
335- baseP .add (scrollPane2 , cc .xyw (1 , 10 , 11 , CellConstraints .FILL , CellConstraints .FILL ));
329+ baseP .add (scrollPane2 , cc .xyw (1 , 10 , 13 , CellConstraints .FILL , CellConstraints .FILL ));
336330 scrollPane2 .setBorder (BorderFactory .createTitledBorder ("Response" ));
337- mTpResponse = new JTextPane ();
338- mTpResponse .setPreferredSize (new Dimension (500 , 600 ));
339- scrollPane2 .setViewportView (mTpResponse );
331+ scrollPane2 .setViewportView (mBrowserView1 );
340332 lbStatus = new JLabel ();
341333 lbStatus .setText ("Status:" );
342334 baseP .add (lbStatus , cc .xyw (1 , 11 , 11 ));
@@ -345,8 +337,6 @@ public String getCurBaseUrl() {
345337 scrollPane3 .setBorder (BorderFactory .createTitledBorder ("Request Information" ));
346338 mTpInfo = new JTextPane ();
347339 scrollPane3 .setViewportView (mTpInfo );
348- baseP .add (mJep , cc .xywh (13 , 8 , 1 , 3 ));
349- mJep .setBorder (BorderFactory .createTitledBorder ("Json Tree" ));
350340 mCbEncrypt = new JComboBox ();
351341 baseP .add (mCbEncrypt , cc .xy (11 , 2 ));
352342 btnDelUrl = new JButton ();
0 commit comments