Skip to content

Commit a76044e

Browse files
committed
Add "close resources" functionality; make navigator wider by default
1 parent 550c2f4 commit a76044e

File tree

4 files changed

+54
-31
lines changed

4 files changed

+54
-31
lines changed

src/main/java/the/bytecode/club/jda/JDA.java

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public class JDA
2525
{
2626
/*per version*/
27-
public static final String version = "0.0.3.1";
27+
public static final String version = "0.0.3.2";
2828
public static final boolean previewCopy = false;
2929
/* Constants */
3030
public static final String fs = System.getProperty("file.separator");
@@ -436,30 +436,39 @@ public static void showMessage(String message)
436436
*/
437437
public static void resetWorkSpace(boolean ask)
438438
{
439-
if (!ask)
440-
{
441-
files.clear();
442-
viewer.resetWorkspace();
443-
}
444-
else
439+
if (ask)
445440
{
446441
JOptionPane pane = new JOptionPane("Are you sure you want to reset the workspace?\n\rIt will also reset your file navigator and search.");
447442
Object[] options = new String[] { "Yes", "No" };
448443
pane.setOptions(options);
449444
JDialog dialog = pane.createDialog(viewer, "JDA - Reset Workspace");
450445
dialog.setVisible(true);
451446
Object obj = pane.getValue();
452-
int result = -1;
453447
for (int k = 0; k < options.length; k++)
454-
if (options[k].equals(obj))
455-
result = k;
448+
if (options[k].equals(obj) && k != 0)
449+
return;
450+
}
456451

457-
if (result == 0)
458-
{
459-
files.clear();
460-
viewer.resetWorkspace();
461-
}
452+
closeResources(false);
453+
viewer.resetWindows();
454+
}
455+
456+
public static void closeResources(boolean ask) {
457+
if (ask)
458+
{
459+
JOptionPane pane = new JOptionPane("Are you sure you want to close all resources?");
460+
Object[] options = new String[] { "Yes", "No" };
461+
pane.setOptions(options);
462+
JDialog dialog = pane.createDialog(viewer, "JDA - Close Resources");
463+
dialog.setVisible(true);
464+
Object obj = pane.getValue();
465+
for (int k = 0; k < options.length; k++)
466+
if (options[k].equals(obj) && k != 0)
467+
return;
462468
}
469+
470+
files.clear();
471+
viewer.closeResources();
463472
}
464473

465474
private static ArrayList<String> killList = new ArrayList<>();
@@ -597,14 +606,22 @@ private static void hideFile(File f)
597606
sm.setBlocking();
598607
}
599608

609+
private static boolean isCtrlDown(KeyEvent e) {
610+
return ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0);
611+
}
612+
613+
private static boolean isShiftDown(KeyEvent e) {
614+
return ((e.getModifiers() & KeyEvent.SHIFT_MASK) != 0);
615+
}
616+
600617
/**
601618
* Checks the hotkeys
602619
*
603620
* @param e
604621
*/
605622
public static void checkHotKey(KeyEvent e)
606623
{
607-
if ((e.getKeyCode() == KeyEvent.VK_O) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0))
624+
if ((e.getKeyCode() == KeyEvent.VK_O) && isCtrlDown(e))
608625
{
609626
JFileChooser fc = new JFileChooser();
610627
try
@@ -656,15 +673,19 @@ public String getDescription()
656673
}
657674
}
658675
}
659-
else if ((e.getKeyCode() == KeyEvent.VK_N) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0))
676+
else if ((e.getKeyCode() == KeyEvent.VK_N) && isCtrlDown(e))
660677
{
661678
JDA.resetWorkSpace(true);
662679
}
663-
else if ((e.getKeyCode() == KeyEvent.VK_R) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0))
680+
else if ((e.getKeyCode() == KeyEvent.VK_R) && isCtrlDown(e))
664681
{
665682
viewer.reloadResources();
666683
}
667-
else if ((e.getKeyCode() == KeyEvent.VK_S) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0))
684+
else if ((e.getKeyCode() == KeyEvent.VK_W) && isCtrlDown(e) && isShiftDown(e))
685+
{
686+
JDA.closeResources(true);
687+
}
688+
else if ((e.getKeyCode() == KeyEvent.VK_S) && isCtrlDown(e))
668689
{
669690
if (JDA.getLoadedClasses().isEmpty())
670691
{
@@ -741,7 +762,7 @@ public void run()
741762
};
742763
t.start();
743764
}
744-
else if ((e.getKeyCode() == KeyEvent.VK_W) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0))
765+
else if ((e.getKeyCode() == KeyEvent.VK_W) && isCtrlDown(e))
745766
{
746767
if (viewer.workPane.getCurrentViewer() != null)
747768
viewer.workPane.tabs.remove(viewer.workPane.getCurrentViewer());

src/main/java/the/bytecode/club/jda/gui/FileNavigationPane.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ public void openFile(String name, String container, byte[] contents)
268268
{
269269
}
270270

271-
public static Dimension defaultDimension = new Dimension(200, -1);
271+
public static Dimension defaultDimension = new Dimension(350, -1);
272272
public static Point defaultPosition = new Point(0, 0);
273273
@Override
274274
public Dimension getDefaultSize()

src/main/java/the/bytecode/club/jda/gui/MainViewerGUI.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ private void initializeMenubar()
158158
{
159159
final JCheckBoxMenuItem refreshOnChange = new JCheckBoxMenuItem("Refresh On View Change");
160160
final JMenuItem mntmNewWorkspace = new JMenuItem("New Workspace");
161+
final JMenuItem mntmReloadResources = new JMenuItem("Reload Resources");
162+
final JMenuItem mntmCloseResources = new JMenuItem("Close Resources");
161163
final JMenuItem mntmDecompileSaveAllClasses = new JMenuItem("Decompile & Save All Classes..");
162164
final JMenuItem mntmAbout = new JMenuItem("About");
163165
final JMenuItem mntmIntro = new JMenuItem("Help");
@@ -168,7 +170,6 @@ private void initializeMenubar()
168170
final JCheckBox mnSnapToEdges = new JCheckBox("Snap Windows to Edges");
169171
final JMenuItem mntmSetOptionalLibrary = new JMenuItem("Set Optional Library Folder");
170172
final JMenu mnFontSize = new JMenu("Font Size");
171-
final JMenuItem mntmReloadResources = new JMenuItem("Reload Resources");
172173

173174
menuBar = new JMenuBar();
174175
fileMenu = new JMenu("File");
@@ -181,25 +182,27 @@ private void initializeMenubar()
181182

182183
menuBar.add(fileMenu);
183184

184-
mntmNewWorkspace.addActionListener(arg0 -> JDA.resetWorkSpace(true));
185-
186185
JMenuItem mntmLoadJar = new JMenuItem("Add..");
187186
mntmLoadJar.addActionListener(e -> addFile());
188187
fileMenu.add(mntmLoadJar);
189188

190189
fileMenu.add(new JSeparator());
191190

191+
mntmNewWorkspace.addActionListener(arg0 -> JDA.resetWorkSpace(true));
192192
fileMenu.add(mntmNewWorkspace);
193193

194-
JMenuItem mntmSaveAsZip = new JMenuItem("Save As Zip..");
195-
mntmSaveAsZip.setActionCommand("");
196-
mntmSaveAsZip.addActionListener(arg0 -> saveAsZip());
197-
198194
mntmReloadResources.addActionListener(arg0 -> reloadResources());
199195
fileMenu.add(mntmReloadResources);
200196

197+
mntmCloseResources.addActionListener(arg0 -> JDA.closeResources(true));
198+
fileMenu.add(mntmCloseResources);
199+
201200
fileMenu.add(new JSeparator());
202201

202+
JMenuItem mntmSaveAsZip = new JMenuItem("Save As Zip..");
203+
mntmSaveAsZip.setActionCommand("");
204+
mntmSaveAsZip.addActionListener(arg0 -> saveAsZip());
205+
203206
mntmSaveAsRunnableJar.addActionListener(e -> saveAsRunnableJar());
204207
fileMenu.add(mntmSaveAsRunnableJar);
205208

@@ -444,11 +447,9 @@ private JMenu generatePane(int id)
444447
return menu;
445448
}
446449

447-
public void resetWorkspace()
448-
{
450+
public void closeResources() {
449451
navigator.resetWorkspace();
450452
workPane.resetWorkspace();
451-
resetWindows();
452453
}
453454

454455
public void setIcon(final boolean busy)

src/main/resources/intro.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ <h2>Keyboard Short-cuts:</h2>
2727
<li>Add (Ctrl + O)</li>
2828
<li>New Workspace (Ctrl + N)</li>
2929
<li>Reload Resources (Ctrl + R)</li>
30+
<li>Close All Resources (Ctrl + Shift + W)</li>
3031
<li>Search Text (Ctrl + F)</li>
3132
<li>Search For File (Ctrl + F)</li>
3233
<li>Save Classes As Zip (Ctrl + S)</li>

0 commit comments

Comments
 (0)