001 package demo;
002
003 import java.awt.*;
004 import java.awt.event.*;
005 import javax.swing.*;
006
007 import lrs.*;
008 import lrs.visitor.*;
009 import counter.*;
010 import lrs.lazyLRSEvaluators.*;
011 import logic.*;
012
013
014 public class LazyLRSDemoFrame extends JFrame {
015 GridLayout gridLayout1 = new GridLayout();
016 JTextArea textArea1 = new JTextArea();
017 JPanel algoPnl = new JPanel();
018 JLabel displayLenLbl = new JLabel();
019 JLabel ioALbl = new JLabel();
020 JLabel ioBLbl = new JLabel();
021 JTextField ioATF = new JTextField();
022 JTextField ioBTF = new JTextField();
023 JTextField displayLenTF = new JTextField();
024 JPanel ctrlPnl = new JPanel();
025 JPanel displayLenIOABPnl = new JPanel();
026 JPanel displayLenPnl = new JPanel();
027 JPanel ioAPnl = new JPanel();
028 JPanel ioBPnl = new JPanel();
029 JPanel displayLenIOABCtrlPnl = new JPanel();
030 JRadioButton chkBxConst = new JRadioButton();
031 JRadioButton chkBxInc = new JRadioButton();
032 JRadioButton chkBxFibonacci = new JRadioButton();
033 JRadioButton chkBxFilter = new JRadioButton();
034 JRadioButton chkBxRangeFilter = new JRadioButton();
035 JRadioButton chkBxMultMNodFilter = new JRadioButton();
036 JRadioButton chkBxSieve = new JRadioButton();
037 JRadioButton chkBxNInv = new JRadioButton();
038 JRadioButton chkBxLambda = new JRadioButton();
039 ButtonGroup buttonGroup = new ButtonGroup();
040
041 LRStruct list = new LRStruct();
042 ICounterFactory cf = CounterFactory.Singleton;
043
044 JScrollPane jScrollPane1 = new JScrollPane();
045 JButton selSortBtn = new JButton();
046 JButton selSortBtn1 = new JButton();
047 JButton nthCdrBtn = new JButton();
048 JButton trimBtn = new JButton();
049 JButton btnSetNth = new JButton();
050 JButton btnRemNth = new JButton();
051 JButton btnNth = new JButton();
052 JButton sumBtn = new JButton();
053 JButton sumNBtn = new JButton();
054 JButton sumLambdaNBtn = new JButton();
055 JButton appendBtn = new JButton();
056 JButton getLastBtn = new JButton();
057 JButton removeBtn = new JButton();
058 JButton ordInsertBtn = new JButton();
059 JButton consBtn = new JButton();
060 JButton clearBtn = new JButton();
061 GridLayout gridLayout5 = new GridLayout();
062 GridLayout gridLayout6 = new GridLayout();
063 GridLayout gridLayout7 = new GridLayout();
064 GridLayout gridLayout8 = new GridLayout();
065 BorderLayout borderLayout1 = new BorderLayout();
066 BorderLayout borderLayout2 = new BorderLayout();
067 BorderLayout borderLayout3 = new BorderLayout();
068
069 //Construct the frame
070 public LazyLRSDemoFrame() {
071 enableEvents(AWTEvent.WINDOW_EVENT_MASK);
072 try {
073 jbInit();
074 }
075 catch(Exception e) {
076 e.printStackTrace();
077 }
078 addWindowListener(new WindowAdapter() {
079 public void windowClosing(WindowEvent e) {
080 System.exit(0);
081 }
082 });
083
084 buttonGroup.add(chkBxConst);
085 buttonGroup.add(chkBxInc);
086 buttonGroup.add(chkBxFibonacci);
087 buttonGroup.add(chkBxFilter);
088 buttonGroup.add(chkBxRangeFilter);
089 buttonGroup.add(chkBxMultMNodFilter);
090 buttonGroup.add(chkBxSieve);
091 buttonGroup.add(chkBxNInv);
092 buttonGroup.add(chkBxLambda);
093 validate();
094 pack();
095 }
096
097 //Component initialization
098 private void jbInit() throws Exception {
099 gridLayout1.setColumns(3);
100 gridLayout1.setHgap(2);
101 gridLayout1.setVgap(2);
102 this.getContentPane().setLayout(gridLayout1);
103 // this.setSize(new Dimension(810, 737));
104 this.setTitle("Lazy Evaluation of LRStructs");
105
106 displayLenLbl.setFont(new java.awt.Font("Dialog", 1, 18));
107 displayLenLbl.setHorizontalAlignment(SwingConstants.LEFT);
108 displayLenLbl.setLabelFor(displayLenTF);
109 displayLenLbl.setText("Display length:");
110
111 ioALbl.setFont(new java.awt.Font("Dialog", 1, 18));
112 ioALbl.setHorizontalAlignment(SwingConstants.LEFT);
113 ioALbl.setText("Input/Output A:");
114
115 ioBLbl.setFont(new java.awt.Font("Dialog", 1, 18));
116 ioBLbl.setHorizontalAlignment(SwingConstants.LEFT);
117 ioBLbl.setText("Input/Output B:");
118
119 ioATF.setColumns(6);
120 ioATF.setHorizontalAlignment(SwingConstants.CENTER);
121 ioATF.setBackground(Color.lightGray);
122 ioATF.setFont(new java.awt.Font("SansSerif", 1, 20));
123 ioATF.setBorder(null);
124 ioATF.setOpaque(false);
125 ioATF.setText("1");
126
127 ioBTF.setFont(new java.awt.Font("SansSerif", 1, 20));
128 ioBTF.setColumns(6);
129 ioBTF.setBorder(null);
130 ioBTF.setOpaque(false);
131 ioBTF.setText("1");
132 ioBTF.setHorizontalAlignment(SwingConstants.CENTER);
133
134 displayLenTF.setBackground(Color.lightGray);
135 displayLenTF.setFont(new java.awt.Font("Dialog", 1, 20));
136 displayLenTF.setBorder(null);
137 displayLenTF.setOpaque(false);
138 displayLenTF.setPreferredSize(new Dimension(102, 27));
139 displayLenTF.setText("15");
140 displayLenTF.setHorizontalAlignment(SwingConstants.CENTER);
141 displayLenTF.addActionListener(new java.awt.event.ActionListener() {
142 public void actionPerformed(ActionEvent e) {
143 displayLenTF_actionPerformed(e);
144 }
145 });
146 ctrlPnl.setLayout(gridLayout6);
147 ctrlPnl.setBackground(Color.cyan);
148 //ctrlPnl.setPreferredSize(new Dimension(227, 500));
149 displayLenIOABPnl.setLayout(gridLayout7);
150 displayLenPnl.setLayout(borderLayout2);
151 ioAPnl.setLayout(borderLayout1);
152 ioBPnl.setLayout(borderLayout3);
153 displayLenIOABCtrlPnl.setLayout(gridLayout8);
154 chkBxConst.setToolTipText("value <- A");
155 chkBxConst.setOpaque(false);
156 chkBxConst.setText("Constant List");
157 chkBxConst.setFont(new java.awt.Font("Dialog", 1, 18));
158 chkBxConst.addActionListener(new java.awt.event.ActionListener() {
159 public void actionPerformed(ActionEvent e) {
160 chkBxConst_actionPerformed(e);
161 }
162 });
163 chkBxInc.addActionListener(new java.awt.event.ActionListener() {
164 public void actionPerformed(ActionEvent e) {
165 chkBxInc_actionPerformed(e);
166 }
167 });
168 chkBxInc.setText("Arithmetic List");
169 chkBxInc.setFont(new java.awt.Font("Dialog", 1, 18));
170 chkBxInc.setToolTipText("x0 <- A, inc <- B");
171 chkBxInc.setOpaque(false);
172 chkBxFibonacci.setOpaque(false);
173 chkBxFibonacci.setText("Fibonacci List");
174 chkBxFibonacci.setFont(new java.awt.Font("Dialog", 1, 18));
175 chkBxFibonacci.addActionListener(new java.awt.event.ActionListener() {
176 public void actionPerformed(ActionEvent e) {
177 chkBxFibonacci_actionPerformed(e);
178 }
179 });
180 chkBxFilter.setToolTipText("value <- A");
181 chkBxFilter.setOpaque(false);
182 chkBxFilter.setText("Modulo Filter");
183 chkBxFilter.setFont(new java.awt.Font("Dialog", 1, 18));
184 chkBxFilter.addActionListener(new java.awt.event.ActionListener() {
185 public void actionPerformed(ActionEvent e) {
186 chkBxFilter_actionPerformed(e);
187 }
188 });
189 chkBxRangeFilter.setToolTipText("min <- A, max <- B");
190 chkBxRangeFilter.setOpaque(false);
191 chkBxRangeFilter.setText("Range Filtered List");
192 chkBxRangeFilter.setFont(new java.awt.Font("Dialog", 1, 18));
193 chkBxRangeFilter.addActionListener(new java.awt.event.ActionListener() {
194 public void actionPerformed(ActionEvent e) {
195 chkBxRangeFilter_actionPerformed(e);
196 }
197 });
198 chkBxMultMNodFilter.setToolTipText("value 1 <- A, value 2 <- B");
199 chkBxMultMNodFilter.setOpaque(false);
200 chkBxMultMNodFilter.setText("Multiple Modulo Filtered List");
201 chkBxMultMNodFilter.setFont(new java.awt.Font("Dialog", 1, 18));
202 chkBxMultMNodFilter.addActionListener(new java.awt.event.ActionListener() {
203 public void actionPerformed(ActionEvent e) {
204 chkBxMultMNodFilter_actionPerformed(e);
205 }
206 });
207 chkBxSieve.setOpaque(false);
208 chkBxSieve.setText("Prime Numbers List");
209 chkBxSieve.setFont(new java.awt.Font("Dialog", 1, 18));
210 chkBxSieve.addActionListener(new java.awt.event.ActionListener() {
211 public void actionPerformed(ActionEvent e) {
212 chkBxSieve_actionPerformed(e);
213 }
214 });
215
216 chkBxNInv.setOpaque(false);
217 chkBxNInv.setText("1/N! list");
218 chkBxNInv.setFont(new java.awt.Font("Dialog", 1, 18));
219 chkBxNInv.addActionListener(new java.awt.event.ActionListener() {
220 public void actionPerformed(ActionEvent e) {
221 chkBxNInv_actionPerformed(e);
222 }
223 });
224
225 chkBxLambda.setOpaque(false);
226 chkBxLambda.setText("Lambda list");
227 chkBxLambda.setFont(new java.awt.Font("Dialog", 1, 18));
228 chkBxLambda.addActionListener(new java.awt.event.ActionListener() {
229 public void actionPerformed(ActionEvent e) {
230 chkBxLambda_actionPerformed(e);
231 }
232 });
233
234 textArea1.setMargin(new Insets(10, 50, 10, 10));
235 textArea1.setEditable(false);
236 textArea1.setFont(new java.awt.Font("Serif", 1, 30));
237 selSortBtn.setBackground(Color.yellow);
238 selSortBtn.setFont(new java.awt.Font("Dialog", 1, 18));
239 selSortBtn.setText("Selection Sort <");
240 selSortBtn.addActionListener(new java.awt.event.ActionListener() {
241 public void actionPerformed(ActionEvent e) {
242 selSortBtn_actionPerformed(e);
243 }
244 });
245 algoPnl.setLayout(gridLayout5);
246 algoPnl.setBackground(new java.awt.Color(135, 104, 151));
247 selSortBtn1.setText("Selection Sort >");
248 selSortBtn1.addActionListener(new java.awt.event.ActionListener() {
249 public void actionPerformed(ActionEvent e)
250 {
251 selSortBtn1_actionPerformed(e);
252 }
253 });
254 selSortBtn1.setFont(new java.awt.Font("Dialog", 1, 18));
255 selSortBtn1.setBackground(Color.yellow);
256 nthCdrBtn.setText("n\'th Cdr");
257 nthCdrBtn.addActionListener(new java.awt.event.ActionListener() {
258 public void actionPerformed(ActionEvent e)
259 {
260 nthCdrBtn_actionPerformed(e);
261 }
262 });
263 nthCdrBtn.setFont(new java.awt.Font("Dialog", 1, 18));
264 nthCdrBtn.setToolTipText("n <- A");
265 nthCdrBtn.setBackground(Color.yellow);
266 trimBtn.setText("Trim at n\'th");
267 trimBtn.addActionListener(new java.awt.event.ActionListener() {
268 public void actionPerformed(ActionEvent e)
269 {
270 trimBtn_actionPerformed(e);
271 }
272 });
273 trimBtn.setFont(new java.awt.Font("Dialog", 1, 18));
274 trimBtn.setToolTipText("n <- A");
275 trimBtn.setBackground(Color.yellow);
276 btnSetNth.setText("Set n\'th");
277 btnSetNth.addActionListener(new java.awt.event.ActionListener() {
278 public void actionPerformed(ActionEvent e)
279 {
280 btnSetNth_actionPerformed(e);
281 }
282 });
283 btnSetNth.setFont(new java.awt.Font("Dialog", 1, 18));
284 btnSetNth.setToolTipText("n <- A, value <- B");
285 btnSetNth.setBackground(Color.yellow);
286 btnRemNth.setText("Remove n\'th");
287 btnRemNth.addActionListener(new java.awt.event.ActionListener() {
288 public void actionPerformed(ActionEvent e)
289 {
290 btnRemNth_actionPerformed(e);
291 }
292 });
293 btnRemNth.setFont(new java.awt.Font("Dialog", 1, 18));
294 btnRemNth.setToolTipText("n <- A, B <- value");
295 btnRemNth.setBackground(Color.yellow);
296 btnNth.setText("n\'th Element");
297 btnNth.addActionListener(new java.awt.event.ActionListener() {
298 public void actionPerformed(ActionEvent e)
299 {
300 btnNth_actionPerformed(e);
301 }
302 });
303 btnNth.setFont(new java.awt.Font("Dialog", 1, 18));
304 btnNth.setToolTipText("n <- A, B <- value");
305 btnNth.setBackground(Color.yellow);
306 sumBtn.setText("Sum");
307 sumBtn.addActionListener(new java.awt.event.ActionListener() {
308 public void actionPerformed(ActionEvent e)
309 {
310 sumBtn_actionPerformed(e);
311 }
312 });
313 sumBtn.setFont(new java.awt.Font("Dialog", 1, 18));
314 sumBtn.setToolTipText("A <- sum");
315 sumBtn.setBackground(Color.yellow);
316
317 sumNBtn.setText("Sum N terms");
318 sumNBtn.addActionListener(new java.awt.event.ActionListener(){
319 public void actionPerformed(ActionEvent e)
320 {
321 sumNBtn_actionPerformed(e);
322 }
323 });
324
325 sumNBtn.setFont(new java.awt.Font("Dialog", 1, 18));
326 sumNBtn.setToolTipText("A = N, B <- sum");
327 sumNBtn.setBackground(Color.yellow);
328
329 sumLambdaNBtn.setText("Sum N Lamba terms");
330 sumLambdaNBtn.addActionListener(new java.awt.event.ActionListener(){
331 public void actionPerformed(ActionEvent e)
332 {
333 sumLambdaNBtn_actionPerformed(e);
334 }
335 });
336
337 sumLambdaNBtn.setFont(new java.awt.Font("Dialog", 1, 18));
338 sumLambdaNBtn.setToolTipText("A = N, B = 0<x<1, B <- sum");
339 sumLambdaNBtn.setBackground(Color.yellow);
340
341 appendBtn.setText("Append");
342 appendBtn.addActionListener(new java.awt.event.ActionListener() {
343 public void actionPerformed(ActionEvent e)
344 {
345 appendBtn_actionPerformed(e);
346 }
347 });
348 appendBtn.setFont(new java.awt.Font("Dialog", 1, 18));
349 appendBtn.setToolTipText("value <- A");
350 appendBtn.setBackground(Color.yellow);
351 getLastBtn.setText("Get Last");
352 getLastBtn.addActionListener(new java.awt.event.ActionListener() {
353 public void actionPerformed(ActionEvent e)
354 {
355 getLastBtn_actionPerformed(e);
356 }
357 });
358 getLastBtn.setFont(new java.awt.Font("Dialog", 1, 18));
359 getLastBtn.setToolTipText("A <- value");
360 getLastBtn.setBackground(Color.yellow);
361 removeBtn.setText("Remove Car");
362 removeBtn.addActionListener(new java.awt.event.ActionListener() {
363 public void actionPerformed(ActionEvent e) {
364 removeBtn_actionPerformed(e);
365 }
366 });
367 removeBtn.setFont(new java.awt.Font("Dialog", 1, 18));
368 removeBtn.setToolTipText("A <- value");
369 removeBtn.setBackground(Color.yellow);
370 ordInsertBtn.setText("Ordered Insert +");
371 ordInsertBtn.addActionListener(new java.awt.event.ActionListener() {
372 public void actionPerformed(ActionEvent e) {
373 ordInsertBtn_actionPerformed(e);
374 }
375 });
376 ordInsertBtn.setFont(new java.awt.Font("Dialog", 1, 18));
377 ordInsertBtn.setToolTipText("value <- A");
378 ordInsertBtn.setBackground(Color.yellow);
379 consBtn.setText("Cons");
380 consBtn.addActionListener(new java.awt.event.ActionListener() {
381 public void actionPerformed(ActionEvent e) {
382 consBtn_actionPerformed(e);
383 }
384 });
385 consBtn.setFont(new java.awt.Font("Dialog", 1, 18));
386 consBtn.setToolTipText("car <- A ");
387 consBtn.setBackground(Color.yellow);
388 clearBtn.setText("Clear");
389 clearBtn.addActionListener(new java.awt.event.ActionListener() {
390 public void actionPerformed(ActionEvent e) {
391 clearBtn_actionPerformed(e);
392 }
393 });
394 clearBtn.setFont(new java.awt.Font("Dialog", 1, 18));
395 clearBtn.setBackground(Color.yellow);
396 gridLayout5.setColumns(1);
397 gridLayout5.setHgap(2);
398 gridLayout5.setRows(0);
399 gridLayout5.setVgap(2);
400 gridLayout6.setColumns(1);
401 gridLayout6.setHgap(2);
402 gridLayout6.setRows(0);
403 gridLayout6.setVgap(2);
404 gridLayout7.setColumns(1);
405 gridLayout7.setHgap(2);
406 gridLayout7.setRows(0);
407 gridLayout7.setVgap(2);
408 gridLayout8.setColumns(1);
409 gridLayout8.setHgap(2);
410 gridLayout8.setRows(0);
411 gridLayout8.setVgap(2);
412 displayLenIOABPnl.setBackground(Color.white);
413 displayLenPnl.setBorder(BorderFactory.createRaisedBevelBorder());
414 ioAPnl.setBorder(BorderFactory.createRaisedBevelBorder());
415 ioBPnl.setBorder(BorderFactory.createRaisedBevelBorder());
416 this.getContentPane().add(displayLenIOABCtrlPnl, null);
417 displayLenIOABCtrlPnl.add(displayLenIOABPnl, null);
418 displayLenIOABPnl.add(displayLenPnl, null);
419 displayLenPnl.add(displayLenLbl, BorderLayout.CENTER);
420 displayLenPnl.add(displayLenTF, BorderLayout.EAST);
421 displayLenIOABPnl.add(ioAPnl, null);
422 ioAPnl.add(ioALbl, BorderLayout.WEST);
423 ioAPnl.add(ioATF, BorderLayout.CENTER);
424 displayLenIOABPnl.add(ioBPnl, null);
425 ioBPnl.add(ioBLbl, BorderLayout.WEST);
426 ioBPnl.add(ioBTF, BorderLayout.CENTER);
427 displayLenIOABCtrlPnl.add(ctrlPnl, null);
428 ctrlPnl.add(chkBxConst, null);
429 ctrlPnl.add(chkBxInc, null);
430 ctrlPnl.add(chkBxFilter, null);
431 ctrlPnl.add(chkBxFibonacci, null);
432 ctrlPnl.add(chkBxRangeFilter, null);
433 ctrlPnl.add(chkBxMultMNodFilter, null);
434 ctrlPnl.add(chkBxSieve, null);
435 ctrlPnl.add(chkBxNInv, null);
436 ctrlPnl.add(chkBxLambda, null);
437
438 this.getContentPane().add(algoPnl, null);
439 algoPnl.add(clearBtn, null);
440 algoPnl.add(consBtn, null);
441 algoPnl.add(ordInsertBtn, null);
442 algoPnl.add(removeBtn, null);
443 algoPnl.add(getLastBtn, null);
444 algoPnl.add(appendBtn, null);
445 algoPnl.add(sumBtn, null);
446 algoPnl.add(sumNBtn, null);
447 algoPnl.add(sumLambdaNBtn, null);
448 algoPnl.add(btnNth, null);
449 algoPnl.add(btnRemNth, null);
450 algoPnl.add(btnSetNth, null);
451 algoPnl.add(trimBtn, null);
452 algoPnl.add(nthCdrBtn, null);
453 algoPnl.add(selSortBtn1, null);
454 algoPnl.add(selSortBtn, null);
455 this.getContentPane().add(jScrollPane1, null);
456 jScrollPane1.getViewport().add(textArea1, null);
457 }
458
459
460 void displayLenTF_actionPerformed(ActionEvent e) {
461 printList();
462 }
463
464 void chkBxConst_actionPerformed(ActionEvent e) {
465 list = new LazyConstantEval (Integer.parseInt(ioATF.getText())).makeLRS ();
466 printList ();
467 }
468
469 void chkBxInc_actionPerformed(ActionEvent e) {
470 list = new LazyIncEval (Integer.parseInt(ioATF.getText()),
471 Integer.parseInt(ioBTF.getText())).makeLRS ();
472 printList ();
473 }
474
475 void chkBxFibonacci_actionPerformed(ActionEvent e) {
476 list = (new LazyFibEval(0, 1)).makeLRS();
477 printList();
478 }
479
480 void chkBxFilter_actionPerformed(ActionEvent e){
481 list = new LazyFilterEval (new ModPredStrategy(Integer.parseInt (ioATF.getText ())), list).makeLRS ();
482 printList ();
483 }
484
485 void chkBxRangeFilter_actionPerformed(ActionEvent e) {
486 list = new LazyFilterEval (new RangePredicate(
487 Integer.parseInt (ioATF.getText ()),
488 Integer.parseInt (ioBTF.getText ())),
489 list).makeLRS ();
490 printList ();
491 }
492
493 void chkBxMultMNodFilter_actionPerformed(ActionEvent e) {
494 list = new LazyFilterEval (new MultModPredicate(Integer.parseInt (ioATF.getText ()),
495 Integer.parseInt (ioBTF.getText ())),
496 list).makeLRS ();
497 printList ();
498 }
499
500 void chkBxSieve_actionPerformed(ActionEvent e) {
501 list = (new LazySieveEval()).makeLRS();
502 printList();
503 }
504
505 void chkBxNInv_actionPerformed(ActionEvent e) {
506 list = (new LazyNFacInvEval()).makeLRS();
507 printList();
508 }
509
510 void chkBxLambda_actionPerformed(ActionEvent e) {
511 list = (new LazyLambdaEval()).makeLRS();
512 printList();
513 }
514
515 void printList(){
516 textArea1.setText("");
517 list.execute(new LRSPrintN(textArea1), cf.makeCounter(Integer.parseInt(displayLenTF.getText())));
518 validate();
519 pack();
520 }
521
522 void clearBtn_actionPerformed(ActionEvent e) {
523 list.execute(LRSClear.Singleton);
524 printList();
525 }
526
527 void consBtn_actionPerformed(ActionEvent e) {
528 list.insertFront(new Integer(ioATF.getText()));
529 printList();
530 }
531
532 void ordInsertBtn_actionPerformed(ActionEvent e){
533 list.execute( LRSOrderedInsert.Singleton, new Integer(ioATF.getText()));
534 printList();
535 }
536
537 void removeBtn_actionPerformed(ActionEvent e) {
538 ioATF.setText(((Integer)list.removeFront()).toString());
539 printList();
540 }
541
542 void getLastBtn_actionPerformed(ActionEvent e) {
543 ioATF.setText(((Integer)list.execute(GetLast.Singleton,list)).toString());
544 }
545
546 void appendBtn_actionPerformed(ActionEvent e) {
547 list.execute( LRSAppend.Singleton, new Integer(ioATF.getText()));
548 printList();
549 }
550
551 void sumBtn_actionPerformed(ActionEvent e) {
552 ioATF.setText(((Integer) list.execute(LRSSum.Singleton)).toString());
553 }
554
555 void sumNBtn_actionPerformed(ActionEvent e) {
556 ioBTF.setText(list.execute(LRSSumN.Singleton,
557 cf.makeCounter(Integer.parseInt(ioATF.getText()))).toString());
558 }
559
560 void sumLambdaNBtn_actionPerformed(ActionEvent e) {
561 ioBTF.setText(list.execute(LRSSumLambdaN.Singleton,
562 cf.makeCounter(Integer.parseInt(ioATF.getText())),
563 Double.parseDouble(ioBTF.getText())).toString());
564 }
565
566 void btnNth_actionPerformed(ActionEvent e) {
567 ioBTF.setText(list.execute(Nth.Singleton,
568 cf.makeCounter(Integer.parseInt(ioATF.getText()))).toString());
569 }
570
571 void btnRemNth_actionPerformed(ActionEvent e) {
572 ioBTF.setText(list.execute(RemoveNth.Singleton,
573 cf.makeCounter(Integer.parseInt(ioATF.getText ()))).toString());
574 printList ();
575 }
576
577 void btnSetNth_actionPerformed(ActionEvent e){
578 int ix = Integer.parseInt (ioATF.getText ());
579 Integer dat = Integer.parseInt (ioBTF.getText ());
580 list.execute(SetNth.Singleton, cf.makeCounter(ix), dat);
581 printList ();
582 }
583
584 void trimBtn_actionPerformed(ActionEvent e) {
585 list.execute(LRSTrim.Singleton,
586 cf.makeCounter(Integer.parseInt(ioATF.getText())));
587 printList();
588 }
589
590 void nthCdrBtn_actionPerformed(ActionEvent e){
591 list = (LRStruct) list.execute(NthCdr.Singleton,
592 cf.makeCounter(Integer.parseInt(ioATF.getText())));
593 printList();
594 }
595
596 void selSortBtn1_actionPerformed(ActionEvent e){
597 list.execute(new SelectionSort(GetMax.Singleton));
598 printList();
599 }
600
601 void selSortBtn_actionPerformed(ActionEvent e){
602 list.execute(new SelectionSort(GetMin.Singleton));
603 printList();
604 }
605 }