Skip to content

Commit 099a7b4

Browse files
committed
Allow mult-select
1 parent 1bd15c1 commit 099a7b4

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed

src/java/io/github/thistestuser/DeobfuscatorFrame.java

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@
2323
import java.net.URL;
2424
import java.net.URLClassLoader;
2525
import java.util.ArrayList;
26+
import java.util.Arrays;
2627
import java.util.List;
2728
import java.util.regex.Matcher;
2829
import java.util.regex.Pattern;
30+
import java.util.stream.IntStream;
2931
import java.util.zip.ZipEntry;
3032
import java.util.zip.ZipInputStream;
3133

@@ -190,7 +192,7 @@ public void actionPerformed(ActionEvent e)
190192
transformerList = new DefaultListModel<>();
191193
JScrollPane transformerListScroll = new JScrollPane();
192194
transformerJList = new JList<>(transformerList);
193-
transformerJList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
195+
transformerJList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
194196
transformerJList.setToolTipText(
195197
"<html>Here you will select the transformers to run.<br>\r\nIf you see no transformers, you have not loaded deobfuscator.jar<br>\r\nor your jar file is corrupt.</html>");
196198
transformerJList.setBounds(10, 23, 179, 165);
@@ -221,7 +223,7 @@ public void mouseClicked(MouseEvent e)
221223
JScrollPane transformerSelectScroll = new JScrollPane();
222224
selectedTransformersJList = new JList<>(selectedTransformers);
223225
selectedTransformersJList
224-
.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
226+
.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
225227
selectedTransformersJList.setToolTipText(
226228
"<html>Here you will find the list of selected transformers. <br>\r\nThey will be applied in this order. </html>");
227229
selectedTransformersJList.setBounds(323, 23, 179, 165);
@@ -238,9 +240,8 @@ public void mouseClicked(MouseEvent e)
238240
@Override
239241
public void actionPerformed(ActionEvent e)
240242
{
241-
if(!transformerJList.isSelectionEmpty())
242-
selectedTransformers.add(selectedTransformers.size(),
243-
transformerJList.getSelectedValue());
243+
for(String str : transformerJList.getSelectedValuesList())
244+
selectedTransformers.addElement(str);
244245
}
245246
});
246247
transformers.add(addTransformer);
@@ -253,9 +254,12 @@ public void actionPerformed(ActionEvent e)
253254
@Override
254255
public void actionPerformed(ActionEvent e)
255256
{
256-
if(!selectedTransformersJList.isSelectionEmpty())
257-
selectedTransformers
258-
.remove(selectedTransformersJList.getSelectedIndex());
257+
int[] indexes = selectedTransformersJList.getSelectedIndices();
258+
Arrays.sort(indexes);
259+
int[] reversed = IntStream.range(0, indexes.length).map(i -> indexes[indexes.length - i - 1])
260+
.toArray();
261+
for(int i : reversed)
262+
selectedTransformers.remove(i);
259263
}
260264
});
261265
transformers.add(removeTransformer);
@@ -268,17 +272,6 @@ public void actionPerformed(ActionEvent e)
268272
lblTransformersSelected.setBounds(323, 6, 133, 14);
269273
transformers.add(lblTransformersSelected);
270274

271-
JButton btnDeselectAll = new JButton("Deselect All");
272-
btnDeselectAll.setBounds(213, 153, 89, 23);
273-
btnDeselectAll.addActionListener(new ActionListener()
274-
{
275-
@Override
276-
public void actionPerformed(ActionEvent e)
277-
{
278-
selectedTransformers.clear();
279-
}
280-
});
281-
transformers.add(btnDeselectAll);
282275
tabbedPane.addTab("Libraries", libraries);
283276

284277
JScrollPane scrollPane = new JScrollPane();

0 commit comments

Comments
 (0)