2323import java .net .URL ;
2424import java .net .URLClassLoader ;
2525import java .util .ArrayList ;
26+ import java .util .Arrays ;
2627import java .util .List ;
2728import java .util .regex .Matcher ;
2829import java .util .regex .Pattern ;
30+ import java .util .stream .IntStream ;
2931import java .util .zip .ZipEntry ;
3032import 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 \n If you see no transformers, you have not loaded deobfuscator.jar<br>\r \n or 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 \n They 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