From: <hee...@us...> - 2008-10-07 10:10:12
|
Revision: 1346 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1346&view=rev Author: heeroyuy Date: 2008-10-07 10:05:51 +0000 (Tue, 07 Oct 2008) Log Message: ----------- -some gui changes -add options to chose maxEcecutionTime, maxNrOfResults and minAccuracy Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java trunk/src/dl-learner/org/dllearner/tools/protege/OWLClassDescriptionEditorWithDLLearnerTab.java trunk/src/dl-learner/org/dllearner/tools/protege/PosAndNegSelectPanel.java trunk/src/dl-learner/org/dllearner/tools/protege/SuggestClassPanel.java Modified: trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java 2008-10-06 16:46:14 UTC (rev 1345) +++ trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java 2008-10-07 10:05:51 UTC (rev 1346) @@ -27,6 +27,8 @@ import java.awt.event.MouseListener; import java.util.Iterator; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; @@ -40,7 +42,7 @@ * */ public class ActionHandler implements ActionListener, ItemListener, - MouseListener, ListSelectionListener { + MouseListener, ListSelectionListener, ListDataListener { // This is the DLLearnerModel. @@ -91,6 +93,11 @@ */ public void actionPerformed(ActionEvent z) { + + if(z.getActionCommand().equals("comboBoxChanged")) { + view.getPosAndNegSelectPanel().setOptionSpinner(); + } + if (z.getActionCommand().equals("Suggest " + id)) { if (model.getAlreadyLearned()) { model.unsetListModel(); @@ -108,22 +115,11 @@ this.dlLearner = new Thread(model); dlLearner.start(); view.getRunButton().setEnabled(false); - view.getCancelButton().setEnabled(true); view.renderErrorMessage("Learning started"); view.getPosAndNegSelectPanel().unsetCheckBoxes(); } } - if (z.getActionCommand().equals("Cancel")) { - view.getRunButton().setEnabled(true); - view.getCancelButton().setEnabled(false); - String error = "Learning aborted"; - view.renderErrorMessage(error); - dlLearner.interrupt(); - model.getLearningAlgorithm().stop(); - model.setErrorMessage(error); - } - if (z.getActionCommand().equals("ADD")) { if (evaluatedDescription != null) { model @@ -311,4 +307,22 @@ toggled = false; } + @Override + public void contentsChanged(ListDataEvent listEvent) { + System.out.println(listEvent); + + } + + @Override + public void intervalAdded(ListDataEvent listEvent) { + // TODO Auto-generated method stub + + } + + @Override + public void intervalRemoved(ListDataEvent listEvent) { + // TODO Auto-generated method stub + + } + } Modified: trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java 2008-10-06 16:46:14 UTC (rev 1345) +++ trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java 2008-10-07 10:05:51 UTC (rev 1346) @@ -112,9 +112,6 @@ // This is the count of Concepts which you get after learning - // TODO make those configurable via user interface - private static final int NR_OF_DISPLAYED_DESCRIPTIONS = 6; - private static final double MIN_ACCURACY = 0.8; // A Array of Concepts which the DL-Learner suggested @@ -265,7 +262,7 @@ * This method adds the solutions from the DL-Learner to the List Model. */ private void addToListModel() { - evalDescriptions = la.getCurrentlyBestEvaluatedDescriptions(NR_OF_DISPLAYED_DESCRIPTIONS, MIN_ACCURACY, true); + evalDescriptions = la.getCurrentlyBestEvaluatedDescriptions(view.getPosAndNegSelectPanel().getMaxNrOfResultsModelData(), view.getPosAndNegSelectPanel().getMinAccuracyModelData(), true); for (int j = 0; j < evalDescriptions.size(); j++) { suggestModel.add(j, evalDescriptions.get(j) .getDescription().toManchesterSyntaxString( @@ -387,6 +384,7 @@ } cm.applyConfigEntry(la, "numberOfTrees", 100); cm.applyConfigEntry(la, "maxDepth", 5); + cm.applyConfigEntry(la, "maxExecutionTimeInSeconds", view.getPosAndNegSelectPanel().getMaxExecutionModelData()); try { // initializes the learning algorithm la.init(); @@ -404,14 +402,13 @@ // start the algorithm and print the best concept found la.start(); description = new Description[la.getCurrentlyBestEvaluatedDescriptions( - NR_OF_DISPLAYED_DESCRIPTIONS).size()]; + view.getPosAndNegSelectPanel().getMaxNrOfResultsModelData()).size()]; addToListModel(); // renders the errormessage view.renderErrorMessage(error); // reenables the run button view.getRunButton().setEnabled(true); // disables the cancel button - view.getCancelButton().setEnabled(false); view.getSuggestClassPanel().setSuggestList(suggestModel); } Modified: trunk/src/dl-learner/org/dllearner/tools/protege/OWLClassDescriptionEditorWithDLLearnerTab.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/OWLClassDescriptionEditorWithDLLearnerTab.java 2008-10-06 16:46:14 UTC (rev 1345) +++ trunk/src/dl-learner/org/dllearner/tools/protege/OWLClassDescriptionEditorWithDLLearnerTab.java 2008-10-07 10:05:51 UTC (rev 1346) @@ -305,10 +305,6 @@ private final Color colorRed = Color.red; - // Cancel button to abort the learning algorithm - - private JButton cancel; - // This is the text area for the error message when an error occurred private JTextArea errorMessage; @@ -338,7 +334,7 @@ private ImageIcon icon; // Picture of the advanced button when it is toggled - + private JPanel addButtonPanel; private ImageIcon toggledIcon; private JTextArea hint; // This is the Panel for more details of the suggested concept @@ -366,9 +362,8 @@ advanced = new JToggleButton(icon); advanced.setVisible(true); run = new JButton("Suggest " + label); - cancel = new JButton("Cancel"); accept = new JButton("ADD"); - // why = new JButton("Why"); + addButtonPanel = new JPanel(new BorderLayout()); sugPanel.addSuggestPanelMouseListener(action); errorMessage = new JTextArea(); errorMessage.setEditable(false); @@ -384,7 +379,6 @@ posPanel = new PosAndNegSelectPanel(model, action); addAcceptButtonListener(this.action); addRunButtonListener(this.action); - addCancelButtonListener(this.action); addAdvancedButtonListener(this.action); } @@ -410,32 +404,31 @@ advanced.setIcon(icon); model.clearVector(); model.unsetListModel(); - model.initReasoner(); + //model.initReasoner(); model.setPosVector(); - posPanel.setJCheckBoxen(); - cancel.setEnabled(false); + posPanel.setJCheckBoxes(); accept.setEnabled(false); action.resetToggled(); + addButtonPanel.add("North", accept); sugPanel.setSuggestList(model.getSuggestList()); sugPanel = sugPanel.updateSuggestClassList(); advanced.setSelected(false); - sugPanel.setBounds(10, 40, 490, 110); + sugPanel.setBounds(10, 35, 490, 110); adv.setBounds(40, 200, 200, 20); + addButtonPanel.setBounds(510, 40, 80, 110); run.setBounds(10, 0, 200, 30); advanced.setBounds(10, 200, 20, 20); sugPanel.setVisible(true); posPanel.setVisible(false); posPanel.setBounds(10, 230, 490, 250); - cancel.setBounds(260, 0, 200, 30); accept.setBounds(510, 40, 80, 110); hint.setBounds(10, 150, 490, 20); errorMessage.setBounds(10, 170, 490, 20); learner.add(run); learner.add(adv); learner.add(advanced); - learner.add(cancel); learner.add(sugPanel); - learner.add(accept); + learner.add(addButtonPanel); learner.add(hint); learner.add(errorMessage); learner.add(posPanel); @@ -542,14 +535,6 @@ } /** - * This method returns the cancel button. - * @return JButton - */ - public JButton getCancelButton() { - return cancel; - } - - /** * Destroys the view after the plugin is closed. */ public void dispose() { @@ -565,14 +550,6 @@ } /** - * Adds Actionlistener to the cancel button. - * @param a ActionListener - */ - public void addCancelButtonListener(ActionListener a) { - cancel.addActionListener(a); - } - - /** * Adds Actionlistener to the add button. * @param a ActionListener */ Modified: trunk/src/dl-learner/org/dllearner/tools/protege/PosAndNegSelectPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/PosAndNegSelectPanel.java 2008-10-06 16:46:14 UTC (rev 1345) +++ trunk/src/dl-learner/org/dllearner/tools/protege/PosAndNegSelectPanel.java 2008-10-07 10:05:51 UTC (rev 1346) @@ -25,11 +25,14 @@ import java.awt.GridLayout; import javax.swing.JButton; +import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.JSpinner; import javax.swing.JTextArea; +import javax.swing.SpinnerNumberModel; import javax.swing.WindowConstants; /** @@ -94,6 +97,14 @@ // This is the frame that pops up when the help button is pressed. private JDialog assistPanel; + private JComboBox optionBox; + private JPanel optionBoxPanel; + private JPanel spinnerPanel; + private SpinnerNumberModel minAccuracyModel; + private SpinnerNumberModel maxNrOfResultsModel; + private SpinnerNumberModel maxExecutionModel; + private JSpinner optionSpinner; + private ActionHandler action; private final Color colorBlack = Color.black; /** @@ -101,21 +112,37 @@ * * @param model * DLLearnerModel - * @param action + * @param act * ActionHandler */ - public PosAndNegSelectPanel(DLLearnerModel model, ActionHandler action) { + public PosAndNegSelectPanel(DLLearnerModel model, ActionHandler act) { super(); pos = new JLabel("Positive Examples"); neg = new JLabel("Negative Examples"); + optionBoxPanel = new JPanel(new GridLayout(0, 1)); + spinnerPanel = new JPanel(new GridLayout(0, 1)); + action = act; + minAccuracyModel = new SpinnerNumberModel(0.8, 0.0 , 1.0, 0.05); + maxNrOfResultsModel = new SpinnerNumberModel(5.0, 1.0 , 20.0, 1.0); + maxExecutionModel = new SpinnerNumberModel(10.0, 1.0 , 60.0, 1.0); + optionBox = new JComboBox(); + optionSpinner = new JSpinner(); + optionSpinner.setModel(minAccuracyModel); + optionBox.addItem("min. Accuracy"); + optionBox.addItem("max. Nr. of Results"); + optionBox.addItem("max. Executiontime"); + optionBoxPanel.add(optionBox); + spinnerPanel.add(optionSpinner); + setComboBoxListener(); + spinnerPanel.setSize(50, 20); // help button for positive examples helpForPosExamples = new JButton("?"); helpForPosExamples.setSize(10, 10); // help button for negative examples helpForNegExamples = new JButton("?"); helpForNegExamples.setSize(10, 10); - posLabelPanel = new JPanel(); - negLabelPanel = new JPanel(); + posLabelPanel = new JPanel(new GridLayout(0, 1)); + negLabelPanel = new JPanel(new GridLayout(0, 1)); // panel for the positive check boxes with flow layout posLabelPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 0)); // panel for the negative check boxes with flow layout @@ -137,6 +164,7 @@ model.clearVector(); model.unsetListModel(); model.initReasoner(); + model.setPosVector(); posAndNegPanel = new JPanel(new GridLayout(0, 1)); posAndNegPanel.add(posAndNegSelectPanel); @@ -153,7 +181,9 @@ * This method adds the check boxes, the labels and the help buttons for * positive and negative examples. */ - public void setJCheckBoxen() { + public void setJCheckBoxes() { + posAndNegSelectPanel.add(optionBoxPanel); + posAndNegSelectPanel.add(spinnerPanel); posAndNegSelectPanel.add(posLabelPanel); posAndNegSelectPanel.add(negLabelPanel); // adds check boxes for all examples of the ontology @@ -165,8 +195,60 @@ } } - + /** + * This Methode returns the min Accuracy that the concepts must have. + * @return min accuracy + */ + public float getMinAccuracyModelData() { + float minAccuracy = Float.valueOf(minAccuracyModel.getValue().toString()).floatValue(); + return minAccuracy; + } + + /** + * This Methode returns the max nr. of results selected in the option Panel. + * @return Max Nr. of Results + */ + public int getMaxNrOfResultsModelData() { + float maxNrOfRes = Float.valueOf(maxNrOfResultsModel.getValue().toString()).floatValue(); + int maxNrOfResults = Math.round(maxNrOfRes); + return maxNrOfResults; + } + + /** + * This Methode returns the max execution time selected in the Panel. + * @return Max Execution Time in seconds + */ + public int getMaxExecutionModelData() { + float maxExe = Float.valueOf(maxExecutionModel.getValue().toString()).floatValue(); + int maxExecution = Math.round(maxExe); + return maxExecution; + } + + /** + * This method adds the ActionListener to the Option Combo Box. + */ + private void setComboBoxListener() { + optionBox.addActionListener(action); + } + /** + * This Methode sets the right Spinner for the selected Option. + */ + public void setOptionSpinner() { + if(optionBox.getSelectedItem().equals("min. Accuracy")) { + optionSpinner.setModel(minAccuracyModel); + } + + if(optionBox.getSelectedItem().equals("max. Nr. of Results")) { + optionSpinner.setModel(maxNrOfResultsModel); + } + + if(optionBox.getSelectedItem().equals("max. Executiontime")) { + optionSpinner.setModel(maxExecutionModel); + } + + } + /** * This method removes the Check boxes, the labels and the help buttons * after the DL-Learner tab is closed. */ @@ -177,16 +259,16 @@ /** * This method adds the item listener for every check box. * - * @param action + * @param act * ActionHandler */ - public void addListeners(ActionHandler action) { + public void addListeners(ActionHandler act) { // adds the listener for the checkboxes for (int i = 0; i < model.getPosVector().size(); i++) { // listener for the check boxes of the positive examples - model.getPositivJCheckBox(i).addItemListener(action); + model.getPositivJCheckBox(i).addItemListener(act); // listener for the check boxes of the negative examples - model.getNegativJCheckBox(i).addItemListener(action); + model.getNegativJCheckBox(i).addItemListener(act); } } @@ -223,7 +305,7 @@ assistPanel = new JDialog(); // no writing in the help panel is allowed help.setEditable(false); - assistPanel.setName("Hilfe"); + assistPanel.setName("help"); assistPanel.setSize(300, 100); // window will be disposed if the x or the ok button is pressed assistPanel.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); Modified: trunk/src/dl-learner/org/dllearner/tools/protege/SuggestClassPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/SuggestClassPanel.java 2008-10-06 16:46:14 UTC (rev 1345) +++ trunk/src/dl-learner/org/dllearner/tools/protege/SuggestClassPanel.java 2008-10-07 10:05:51 UTC (rev 1346) @@ -19,6 +19,7 @@ */ package org.dllearner.tools.protege; +import java.awt.Color; import java.awt.Dimension; import javax.swing.*; @@ -82,6 +83,7 @@ * @param desc List model of descriptions made by the DL-Learner */ public void setSuggestList(DefaultListModel desc) { + descriptions.setForeground(Color.GREEN); descriptions.setModel(desc); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |