public void setTermTablePanel(TermTablePanel ttp) { if (termTablePanel != null) main.remove(termTablePanel); termTablePanel = ttp; main.add(ttp); uacalc.validate(); repaint(); }
private void setupFreeAlgebraPanel() { final SmallAlgebra alg = uacalc.getCurrentAlgebra(); if (alg == null) { JOptionPane.showMessageDialog( this, "<html>You must have an algebra loaded.<br>" + "Use the file menu or make a new one.</html>", "No algebra error", JOptionPane.ERROR_MESSAGE); return; } final int gens = getFreeGensDialog(); if (!(gens > 0)) return; System.out.println("gens = " + gens); final boolean thin = getThinGens(); final ProgressReport report = new ProgressReport(monitorPanel); monitorPanel.setProgressReport(report); final BackgroundTask<FreeAlgebra> freeAlgTask = new BackgroundTask<FreeAlgebra>(report) { public FreeAlgebra compute() { // monitorPanel.getProgressMonitor().reset(); report.setDescription("F(" + gens + ") over " + alg.getName()); FreeAlgebra freeAlg = new FreeAlgebra(uacalc.getCurrentAlgebra(), gens, true, thin, report); return freeAlg; } public void onCompletion( FreeAlgebra fr, Throwable exception, boolean cancelled, boolean outOfMemory) { // System.out.println("got to completion"); // System.out.println("thrown = " + exception); // for (BackgroundTask task : monitorPanel.getTaskList()) { // System.out.println("task: " + task.getStatus()); // } if (outOfMemory) { // monitorPanel.getProgressMonitor().reset(); report.addEndingLine("Out of memory!!!"); // monitorPanel.getProgressModel().printlnToLog("Not enough memory"); return; } if (!cancelled) { TermTablePanel ttp = new TermTablePanel(uacalc, fr.getTerms(), fr.getVariables()); setTermTablePanel(ttp); } else { // monitorPanel.getProgressMonitor().reset(); // monitorPanel.getProgressModel().printlnToLog("computation cancelled"); report.addEndingLine("Computation cancelled"); } } }; monitorPanel.addTask(freeAlgTask); BackgroundExec.getBackgroundExec().execute(freeAlgTask); }
public ComputationsPanel(final UACalculator uacalc) { super(JSplitPane.VERTICAL_SPLIT); setOneTouchExpandable(true); Dimension minimumSize = new Dimension(100, 100); Dimension preferredSize = new Dimension(100, 400); this.uacalc = uacalc; // setLayout(new BorderLayout()); main = new JPanel(); main.setMinimumSize(minimumSize); main.setPreferredSize(preferredSize); main.setLayout(new BorderLayout()); JPanel fieldsPanel = new JPanel(); main.add(fieldsPanel, BorderLayout.NORTH); setTopComponent(main); // monitorPanel = new MonitorPanel(uacalc); monitorPanel = uacalc.getMonitorPanel(); // add(monitorPanel, BorderLayout.SOUTH); setBottomComponent(monitorPanel); setDividerLocation(getSize().height - getInsets().bottom - getDividerSize() - 150); /* fieldsPanel.add(new JLabel("Name:")); name_tf.setEditable(false); fieldsPanel.add(name_tf); fieldsPanel.add(new JLabel("Cardinality:")); card_tf.setEditable(false); fieldsPanel.add(card_tf); fieldsPanel.add(new JLabel("Description:")); desc_tf.setEditable(true); fieldsPanel.add(desc_tf); fieldsPanel.add(new JLabel("Operations")); resetOpsCB(); fieldsPanel.add(ops_cb); ops_cb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { OpSymItem item = (OpSymItem)ops_cb.getSelectedItem(); if (item == null) return; OperationSymbol opSym = item.getOperationSymbol(); OperationWithDefaultValue op = opMap.get(opSym); if (op != null) { OperationInputTable opTable = new OperationInputTable(op, uacalc); setOperationTable(opTable); } validate(); repaint(); } }); JButton delOpButton = new JButton("Del Op"); JButton addOpButton = new JButton("Add Op"); fieldsPanel.add(delOpButton); fieldsPanel.add(addOpButton); delOpButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int n = JOptionPane.showConfirmDialog( uacalc, "Delete this operation?", "Delete this operatin?", JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { removeCurrentOperation(); } } }); addOpButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (opTablePanel != null && !opTablePanel.stopCellEditing()) { uacalc.beep(); return; } if (opList == null) { // algebra uacalc.beep(); return; } String name = getOpNameDialog(); if (name == null) return; int arity = getArityDialog(); if (arity == -1) return; addOperation(name, arity); } }); */ // add(main, BorderLayout.CENTER); validate(); }