From: <lor...@us...> - 2009-09-29 15:59:52
|
Revision: 1869 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1869&view=rev Author: lorenz_b Date: 2009-09-29 15:59:38 +0000 (Tue, 29 Sep 2009) Log Message: ----------- continued auto learning mode Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java trunk/src/dl-learner/org/dllearner/tools/ore/TaskManager.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/GraphicalCoveragePanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/LearningOptionsPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/StatusBar.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ManualLearnPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/tools/ore/ui/Help-24x24.png Modified: trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/OREManager.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -236,6 +236,10 @@ public void setMaxExecutionTimeInSeconds(int maxExecutionTimeInSeconds) { this.maxExecutionTimeInSeconds = maxExecutionTimeInSeconds; } + + public int getMaxExecutionTimeInSeconds(){ + return maxExecutionTimeInSeconds; + } public void setMaxNrOfResults(int maxNrOfResults) { this.maxNrOfResults = maxNrOfResults; Modified: trunk/src/dl-learner/org/dllearner/tools/ore/TaskManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/TaskManager.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/TaskManager.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -46,6 +46,7 @@ dialog.setCursor(null); statusBar.setMessage("Done"); statusBar.showProgress(false); + statusBar.setProgress(0); } Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTable.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -0,0 +1,66 @@ +package org.dllearner.tools.ore.ui; + +import java.awt.Color; +import java.util.List; + +import javax.swing.ListSelectionModel; + +import org.dllearner.learningproblems.EvaluatedDescriptionClass; +import org.jdesktop.swingx.JXTable; +import org.jdesktop.swingx.decorator.HighlighterFactory; + +public class EquivalentClassExpressionsTable extends JXTable { + + /** + * + */ + private static final long serialVersionUID = 486680925931781915L; + + private EvaluatedDescriptionClass old = null; + + public EquivalentClassExpressionsTable(){ + setBackground(Color.WHITE); + setHighlighters(HighlighterFactory.createAlternateStriping()); +// setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + setModel(new EquivalentClassExpressionsTableModel()); + setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + getColumn(1).setCellRenderer(new ManchesterSyntaxTableCellRenderer()); + setColumnSizes(); + getColumn(0).setResizable(false); + getColumn(1).setResizable(false); + setGridColor(Color.LIGHT_GRAY); + } + + private void setColumnSizes(){ + getColumn(0).setMaxWidth(100); + getColumn(1).setPreferredWidth(430); + getColumn(2).setMaxWidth(30); + + } + + + + public void clear(){ + ((EquivalentClassExpressionsTableModel)getModel()).clear(); + } + + public void addResults(List<EvaluatedDescriptionClass> resultList){ + + if(getSelectedRow() >= 0){ + old = getSelectedValue(); + } + ((EquivalentClassExpressionsTableModel)getModel()).addResults(resultList); + if(old != null){ + int newRowIndex = ((EquivalentClassExpressionsTableModel)getModel()).getSelectionIndex(old); + if(newRowIndex >= 0){ + getSelectionModel().setSelectionInterval(newRowIndex, newRowIndex); + } + + } + } + + public EvaluatedDescriptionClass getSelectedValue(){ + return ((EquivalentClassExpressionsTableModel)getModel()).getSelectedValue(getSelectedRow()); + } + +} Added: trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/EquivalentClassExpressionsTableModel.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -0,0 +1,114 @@ +package org.dllearner.tools.ore.ui; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.table.AbstractTableModel; + +import org.dllearner.core.owl.Description; +import org.dllearner.learningproblems.EvaluatedDescriptionClass; + +public class EquivalentClassExpressionsTableModel extends AbstractTableModel { + + /** + * + */ + private static final long serialVersionUID = 8582947007601430481L; + + private List<EvaluatedDescriptionClass> resultList; + private DecimalFormat df; + private List<Boolean> selectionList; + + public EquivalentClassExpressionsTableModel(){ + super(); + resultList = new ArrayList<EvaluatedDescriptionClass>(); + selectionList = new ArrayList<Boolean>(); + df = new DecimalFormat("00%"); + } + + public EquivalentClassExpressionsTableModel(List<EvaluatedDescriptionClass> resultList){ + this.resultList = resultList; + } + + @Override + public int getColumnCount() { + return 3; + } + + @Override + public int getRowCount() { + return resultList.size(); + } + + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + if(columnIndex == 0){ + return df.format(resultList.get(rowIndex).getAccuracy()); + } else if(columnIndex == 1){ + return resultList.get(rowIndex).getDescription(); + } else { + return selectionList.get(rowIndex); + } + } + + @Override + public void setValueAt(Object value, int rowIndex, int columnIndex) { + + selectionList.set(rowIndex, (Boolean)value); + + super.fireTableCellUpdated(rowIndex, columnIndex); + + } + + @Override + public Class<? extends Object> getColumnClass(int columnIndex){ + switch(columnIndex){ + case 0: return String.class; + case 1: return Description.class; + case 2: return Boolean.class; + } + return null; + } + + @Override + public String getColumnName(int column){ + switch(column){ + case 0: return "Accuracy"; + case 1: return "Class expression"; + } + return ""; + } + + @Override + public boolean isCellEditable(int rowIndex, int columnIndex) { + if(columnIndex == 2){ + return true; + } + return false; + } + + public void clear(){ + resultList.clear(); + fireTableDataChanged(); + } + + public void addResults(List<EvaluatedDescriptionClass> resultList){ + this.resultList.clear(); + this.resultList.addAll(resultList); + for(int i = 0; i < resultList.size(); i++){ + selectionList.add(i, Boolean.FALSE); + } + + fireTableRowsUpdated(0, this.resultList.size()); + } + + public EvaluatedDescriptionClass getSelectedValue(int rowIndex){ + return resultList.get(rowIndex); + } + + public int getSelectionIndex(EvaluatedDescriptionClass e){ + return resultList.indexOf(e); + } + +} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/GraphicalCoveragePanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/GraphicalCoveragePanel.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/GraphicalCoveragePanel.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -141,8 +141,10 @@ AlphaComposite ac = AlphaComposite.getInstance( AlphaComposite.SRC_OVER, 0.5f); g2D.setColor(Color.BLACK); + if(OREManager.getInstance().getCurrentClass2Learn() != null){ g2D.drawString(ManchesterSyntaxRenderer.renderSimple(OREManager.getInstance().getCurrentClass2Learn()) , 320, 10); + } // g2D.setColor(Color.ORANGE); // g2D.fillOval(310, 20, 9, 9); g2D.setColor(Color.black); Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/ui/Help-24x24.png =================================================================== (Binary files differ) Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/LearningOptionsPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/LearningOptionsPanel.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/LearningOptionsPanel.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -22,10 +22,8 @@ import java.awt.BorderLayout; import java.awt.GridLayout; -import javax.swing.ButtonGroup; import javax.swing.JLabel; import javax.swing.JPanel; -import javax.swing.JRadioButton; import javax.swing.JSlider; /** * This Class is responsible for the Options of the DL-Learner. @@ -46,10 +44,6 @@ private JSlider nrOfConcepts; private JSlider threshold; - private JRadioButton equivalentClassButton; - private JRadioButton superClassButton; - private ButtonGroup learningType; - private JPanel labelPanel; private JPanel sliderPanel; private double accuracy; @@ -106,22 +100,6 @@ sliderPanel.add(nrOfConcepts); sliderPanel.add(threshold); - JPanel learnTypePanel = new JPanel(); - learnTypePanel.setLayout(new GridLayout(0, 1)); - equivalentClassButton = new JRadioButton("Learn equivalent class expressions", true); - equivalentClassButton.setActionCommand("equivalent"); - equivalentClassButton.setSelected(true); - superClassButton = new JRadioButton("Learn super class expressions"); - superClassButton.setActionCommand("super"); - - learningType = new ButtonGroup(); - learningType.add(equivalentClassButton); - learningType.add(superClassButton); - - learnTypePanel.add(equivalentClassButton); - learnTypePanel.add(superClassButton); - -// holderPanel.add(BorderLayout.NORTH, learnTypePanel); holderPanel.add(BorderLayout.WEST, labelPanel); holderPanel.add(BorderLayout.CENTER, sliderPanel); add(holderPanel, BorderLayout.CENTER); @@ -161,8 +139,4 @@ return threshold.getValue()/100.0; } - public boolean isEquivalentClassesTypeSelected(){ - return equivalentClassButton.isSelected(); - } - } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/StatusBar.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/StatusBar.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/StatusBar.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -13,6 +13,8 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Ellipse2D; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.Set; import javax.swing.BorderFactory; @@ -30,7 +32,7 @@ import com.clarkparsia.explanation.util.ExplanationProgressMonitor; -public class StatusBar extends JPanel implements ProgressMonitor, ExplanationProgressMonitor{ +public class StatusBar extends JPanel implements ProgressMonitor, ExplanationProgressMonitor, PropertyChangeListener{ /** * */ @@ -208,8 +210,23 @@ // TODO Auto-generated method stub } + + @Override + public void propertyChange(PropertyChangeEvent evt) { + if ("progress" == evt.getPropertyName()) { + int progress = (Integer) evt.getNewValue(); + progressBar.setValue(progress); + + + } + + } + public void setMaximumValue(int max){ + progressBar.setMaximum(max); + } + } class AngledLinesWindowsCornerIcon implements Icon { Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardController.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -26,6 +26,7 @@ import javax.swing.JOptionPane; import org.dllearner.tools.ore.OREManager; +import org.dllearner.tools.ore.ui.wizard.descriptors.AutoLearnPanelDescriptor; import org.dllearner.tools.ore.ui.wizard.descriptors.ClassChoosePanelDescriptor; import org.dllearner.tools.ore.ui.wizard.descriptors.InconsistencyExplanationPanelDescriptor; import org.dllearner.tools.ore.ui.wizard.descriptors.KnowledgeSourcePanelDescriptor; @@ -120,7 +121,7 @@ } else { nextPanelDescriptor = ClassChoosePanelDescriptor.IDENTIFIER; ((ClassChoosePanelDescriptor) nextDescriptor).resetPanel(); - ((ClassChoosePanelDescriptor) nextDescriptor).refill(); + } } } else if (currentPanelDescriptor.getPanelDescriptorIdentifier().equals(InconsistencyExplanationPanelDescriptor.IDENTIFIER)) { @@ -135,11 +136,11 @@ } else { nextPanelDescriptor = ClassChoosePanelDescriptor.IDENTIFIER; ((ClassChoosePanelDescriptor) nextDescriptor).resetPanel(); - ((ClassChoosePanelDescriptor) nextDescriptor).refill(); + } } else if (currentPanelDescriptor.getPanelDescriptorIdentifier().equals(UnsatisfiableExplanationPanelDescriptor.IDENTIFIER)) { nextPanelDescriptor = ClassChoosePanelDescriptor.IDENTIFIER; - ((ClassChoosePanelDescriptor) nextDescriptor).refill(); + } // else if (currentPanelDescriptor.getPanelDescriptorIdentifier().equals(ClassChoosePanelDescriptor.IDENTIFIER)) { // ore.makeOWAToCWA(); @@ -158,6 +159,8 @@ ClassChoosePanelDescriptor classChoose = ((ClassChoosePanelDescriptor) model .getPanelHashMap().get(nextPanelDescriptor)); classChoose.resetPanel(); + } else if(nextPanelDescriptor.equals(AutoLearnPanelDescriptor.IDENTIFIER)){ + ((ClassChoosePanelDescriptor)currentPanelDescriptor).setAutoLearningOptions(); } // else if(currentPanelDescriptor.getPanelDescriptorIdentifier().equals(LearningPanelDescriptor.IDENTIFIER)){ // if(OREManager.getInstance().getNewClassDescription().getAccuracy() == 1.0){ Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -1,15 +1,20 @@ package org.dllearner.tools.ore.ui.wizard.descriptors; +import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Set; +import java.util.Timer; +import java.util.TimerTask; import java.util.TreeSet; import java.util.concurrent.ExecutionException; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; +import org.dllearner.core.EvaluatedDescription; +import org.dllearner.core.LearningAlgorithm; import org.dllearner.core.owl.NamedClass; import org.dllearner.learningproblems.EvaluatedDescriptionClass; import org.dllearner.tools.ore.OREManager; @@ -17,8 +22,7 @@ import org.dllearner.tools.ore.ui.wizard.WizardPanelDescriptor; import org.dllearner.tools.ore.ui.wizard.panels.AutoLearnPanel; -public class AutoLearnPanelDescriptor extends WizardPanelDescriptor { - +public class AutoLearnPanelDescriptor extends WizardPanelDescriptor{ /** * Identification string for class choose panel. */ @@ -29,6 +33,8 @@ public static final String INFORMATION = ""; private AutoLearnPanel autoLearnPanel; + + private List<NamedClass> classes; /** * Constructor creates new panel and adds listener to list. @@ -37,6 +43,7 @@ autoLearnPanel = new AutoLearnPanel(); setPanelDescriptorIdentifier(IDENTIFIER); setPanelComponent(autoLearnPanel); + classes = new ArrayList<NamedClass>(); } @Override @@ -59,6 +66,16 @@ new ClassRetrievingTask().execute(); } + public void learnEquivalentClassExpressions(){ + TaskManager.getInstance().setTaskStarted("Learning equivalent class expressions..."); + new EquivalentLearningTask().execute(); + } + + public void learnSubClassExpressions(){ + TaskManager.getInstance().setTaskStarted("Learning superclass expressions..."); + new SuperClassLearningTask().execute(); + } + /** * Inner class to get all atomic classes in a background thread. @@ -91,9 +108,9 @@ @Override public void run() { - Set<NamedClass> classes = Collections.emptySet(); + Set<NamedClass> result = Collections.emptySet(); try { - classes = get(); + result = get(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -101,15 +118,17 @@ // TODO Auto-generated catch block e.printStackTrace(); } - - autoLearnPanel.fillClassesTable(classes); + classes.addAll(result); + autoLearnPanel.fillClassesTable(result); + OREManager.getInstance().setCurrentClass2Learn(classes.get(0)); TaskManager.getInstance().setTaskFinished(); + learnEquivalentClassExpressions(); } }); } } - class EquivalentLearningTask extends SwingWorker<Void, Void> { + class EquivalentLearningTask extends SwingWorker<Void, List<? extends EvaluatedDescription>> { @Override @@ -117,7 +136,22 @@ OREManager.getInstance().setLearningType("equivalence"); OREManager.getInstance().setLearningProblem(); OREManager.getInstance().setLearningAlgorithm(); - OREManager.getInstance().getLa().start(); + + final LearningAlgorithm la = OREManager.getInstance().getLa(); + Timer timer = new Timer(); + timer.schedule(new TimerTask(){ + + @SuppressWarnings("unchecked") + @Override + public void run() { + if(!isCancelled() && la.isRunning()){ + publish(la.getCurrentlyBestEvaluatedDescriptions(OREManager.getInstance().getMaxNrOfResults(), + OREManager.getInstance().getThreshold(), true)); + } + } + + }, 1000, 2000); + la.start(); return null; } @@ -130,14 +164,36 @@ public void run() { autoLearnPanel.fillEquivalentClassExpressionsTable((List<EvaluatedDescriptionClass>)OREManager.getInstance().getLa(). - getCurrentlyBestEvaluatedDescriptions(OREManager.getInstance().getMaxNrOfResults(), OREManager.getInstance().getThreshold(), true)); - TaskManager.getInstance().setTaskFinished(); + getCurrentlyBestEvaluatedDescriptions(OREManager.getInstance().getMaxNrOfResults(), OREManager.getInstance().getThreshold(), true)); + learnSubClassExpressions(); + } }); } + + @Override + protected void process(List<List<? extends EvaluatedDescription>> resultLists) { + + for (List<? extends EvaluatedDescription> list : resultLists) { + updateList(list); + } + } + + private void updateList(final List<? extends EvaluatedDescription> result) { + + Runnable doUpdateList = new Runnable() { + + @SuppressWarnings("unchecked") + public void run() { + autoLearnPanel.fillEquivalentClassExpressionsTable((List<EvaluatedDescriptionClass>) result); + } + }; + SwingUtilities.invokeLater(doUpdateList); + + } } - class SubclassLearningTask extends SwingWorker<Void, Void> { + class SuperClassLearningTask extends SwingWorker<Void, List<? extends EvaluatedDescription>> { @Override @@ -145,7 +201,23 @@ OREManager.getInstance().setLearningType("superClass"); OREManager.getInstance().setLearningProblem(); OREManager.getInstance().setLearningAlgorithm(); - OREManager.getInstance().getLa().start(); + + final LearningAlgorithm la = OREManager.getInstance().getLa(); + Timer timer = new Timer(); + timer.schedule(new TimerTask(){ + + @SuppressWarnings("unchecked") + @Override + public void run() { + if(!isCancelled() && la.isRunning()){ + publish(la.getCurrentlyBestEvaluatedDescriptions(OREManager.getInstance().getMaxNrOfResults(), + OREManager.getInstance().getThreshold(), true)); + } + } + + }, 1000, 2000); + la.start(); + return null; } @@ -157,11 +229,35 @@ @Override public void run() { - autoLearnPanel.fillSubClassExpressionsTable((List<EvaluatedDescriptionClass>)OREManager.getInstance().getLa(). + autoLearnPanel.fillSuperClassExpressionsTable((List<EvaluatedDescriptionClass>)OREManager.getInstance().getLa(). getCurrentlyBestEvaluatedDescriptions(OREManager.getInstance().getMaxNrOfResults(), OREManager.getInstance().getThreshold(), true)); TaskManager.getInstance().setTaskFinished(); } }); } + + @Override + protected void process(List<List<? extends EvaluatedDescription>> resultLists) { + + for (List<? extends EvaluatedDescription> list : resultLists) { + updateList(list); + } + } + + private void updateList(final List<? extends EvaluatedDescription> result) { + + Runnable doUpdateList = new Runnable() { + + @SuppressWarnings("unchecked") + public void run() { + autoLearnPanel.fillSuperClassExpressionsTable((List<EvaluatedDescriptionClass>) result); + } + }; + SwingUtilities.invokeLater(doUpdateList); + + } } + + + } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -40,6 +40,7 @@ import org.dllearner.core.owl.NamedClass; import org.dllearner.tools.ore.OREManager; +import org.dllearner.tools.ore.OREManagerListener; import org.dllearner.tools.ore.TaskManager; import org.dllearner.tools.ore.ui.wizard.WizardPanelDescriptor; import org.dllearner.tools.ore.ui.wizard.panels.ClassChoosePanel; @@ -52,7 +53,7 @@ * @author Lorenz Buehmann * */ -public class ClassChoosePanelDescriptor extends WizardPanelDescriptor implements ListSelectionListener, ChangeListener, ActionListener{ +public class ClassChoosePanelDescriptor extends WizardPanelDescriptor implements OREManagerListener, ListSelectionListener, ChangeListener, ActionListener{ /** * Identification string for class choose panel. @@ -77,6 +78,7 @@ classChoosePanel.addChangeListener(this); classChoosePanel.addActionsListeners(this); + OREManager.getInstance().addListener(this); setPanelDescriptorIdentifier(IDENTIFIER); setPanelComponent(classChoosePanel); @@ -144,9 +146,11 @@ classChoosePanel.reset(); } - public void refill(){ - TaskManager.getInstance().setTaskStarted("Retrieving atomic classes..."); - new ClassRetrievingTask().execute(); + public void retrieveClasses(){ + if(instanceCountToClasses.isEmpty()){ + TaskManager.getInstance().setTaskStarted("Retrieving atomic classes..."); + new ClassRetrievingTask().execute(); + } } public void fillClassesList(int minInstanceCount){ @@ -207,6 +211,7 @@ classChoosePanel.setAutoLearningPanel(true); } else { classChoosePanel.setAutoLearningPanel(false); + retrieveClasses(); } setNextButtonAccordingToConceptSelected(); @@ -215,4 +220,14 @@ public boolean isAutoLearningMode(){ return classChoosePanel.isAutoLearnMode(); } + + public void setAutoLearningOptions(){ + classChoosePanel.setLearningOptions(); + } + + @Override + public void activeOntologyChanged() { + instanceCountToClasses.clear(); + + } } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ManualLearnPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ManualLearnPanelDescriptor.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ManualLearnPanelDescriptor.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -20,6 +20,7 @@ package org.dllearner.tools.ore.ui.wizard.descriptors; +import java.awt.Cursor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; @@ -129,14 +130,16 @@ public void actionPerformed(ActionEvent event) { if(event.getActionCommand().equals("Start")){ String learningType = ""; - if(learnPanel.getOptionsPanel().isEquivalentClassesTypeSelected()){ + if(learnPanel.isEquivalentClassesTypeSelected()){ OREManager.getInstance().setLearningType("equivalence"); learningType = "equivalent"; } else { learningType = "super"; OREManager.getInstance().setLearningType("superClass"); } - TaskManager.getInstance().setTaskStarted("Learning " + learningType + " class expressions..."); +// TaskManager.getInstance().setTaskStarted("Learning " + learningType + " class expressions..."); + TaskManager.getInstance().getStatusBar().setMessage("Learning " + learningType + " class expressions..."); + getWizard().getDialog().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); learnPanel.getStartButton().setEnabled(false); learnPanel.getStopButton().setEnabled(true); OREManager.getInstance().setNoisePercentage(learnPanel.getOptionsPanel().getMinAccuracy()); @@ -147,6 +150,7 @@ learningTask = new LearningTask(); + learningTask.addPropertyChangeListener(TaskManager.getInstance().getStatusBar()); learningTask.execute(); } else{ @@ -220,19 +224,21 @@ la = OREManager.getInstance().getLa(); - + setProgress(0); + TaskManager.getInstance().getStatusBar().setMaximumValue(OREManager.getInstance().getMaxExecutionTimeInSeconds()); timer = new Timer(); + timer.schedule(new TimerTask(){ - + int progress = 0; @Override - public void run() { + public void run() {progress += 1;setProgress(progress); if(!isCancelled() && la.isRunning()){ publish(la.getCurrentlyBestEvaluatedDescriptions(OREManager.getInstance().getMaxNrOfResults(), OREManager.getInstance().getThreshold(), true)); } } - }, 1000, 2000); + }, 1000, 1000); OREManager.getInstance().start(); List<? extends EvaluatedDescription> result = la.getCurrentlyBestEvaluatedDescriptions @@ -253,14 +259,12 @@ } catch (ExecutionException e) { e.printStackTrace(); } - getWizard().getDialog().setCursor(null); - getWizard().getStatusBar().showProgress(false); - getWizard().getStatusBar().setProgressTitle("Done"); + updateList(result); + TaskManager.getInstance().setTaskFinished(); + setProgress(0); learnPanel.getStartButton().setEnabled(true); learnPanel.getStopButton().setEnabled(false); - updateList(result); - TaskManager.getInstance().setTaskFinished(); - + } @Override @@ -281,10 +285,7 @@ } }; SwingUtilities.invokeLater(doUpdateList); - } - - } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/AutoLearnPanel.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -4,15 +4,20 @@ import java.util.List; import java.util.Set; +import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import org.dllearner.core.owl.NamedClass; import org.dllearner.learningproblems.EvaluatedDescriptionClass; +import org.dllearner.tools.ore.OREManager; import org.dllearner.tools.ore.ui.ClassesTable; -import org.dllearner.tools.ore.ui.ResultTable; +import org.dllearner.tools.ore.ui.EquivalentClassExpressionsTable; +import org.dllearner.tools.ore.ui.GraphicalCoveragePanel; public class AutoLearnPanel extends JPanel { @@ -23,11 +28,14 @@ private ClassesTable classesTable; - private JPanel subPanel; + private JPanel superPanel; private JPanel equivalentPanel; - private ResultTable equivalentResultsTable; - private ResultTable subResultsTable; + private EquivalentClassExpressionsTable equivalentClassResultsTable; + private EquivalentClassExpressionsTable superClassResultsTable; + + private GraphicalCoveragePanel equivalentClassCoveragePanel; + private GraphicalCoveragePanel superClassCoveragePanel; public AutoLearnPanel(){ createUI(); @@ -60,16 +68,26 @@ equivSubSplitPane.setOneTouchExpandable(true); equivSubSplitPane.setDividerLocation(0.5); - subPanel = new JPanel(); - subResultsTable = new ResultTable(); - subPanel.add(subResultsTable); - equivalentPanel = new JPanel(); - equivalentResultsTable = new ResultTable(); - equivalentPanel.add(equivalentResultsTable); + equivalentClassResultsTable = new EquivalentClassExpressionsTable(); + equivalentClassResultsTable.setName("equivalent"); + equivalentPanel.add(new JScrollPane(equivalentClassResultsTable)); + equivalentClassCoveragePanel = new GraphicalCoveragePanel(""); + equivalentPanel.add(equivalentClassCoveragePanel); + equivalentPanel.setBorder(BorderFactory.createTitledBorder("Equivalent class expressions")); + superPanel = new JPanel(); + superClassResultsTable = new EquivalentClassExpressionsTable(); + superClassResultsTable.setName("super"); + superPanel.add(new JScrollPane(superClassResultsTable)); + superClassCoveragePanel = new GraphicalCoveragePanel(""); + superPanel.add(superClassCoveragePanel); + superPanel.setBorder(BorderFactory.createTitledBorder("Superclass expressions")); + + addTableSelectionListeners(); + equivSubSplitPane.setTopComponent(equivalentPanel); - equivSubSplitPane.setBottomComponent(subPanel); + equivSubSplitPane.setBottomComponent(superPanel); resultPanel.add(equivSubSplitPane); return resultPanel; @@ -79,12 +97,50 @@ classesTable.addClasses(classes); } - public void fillSubClassExpressionsTable(List<EvaluatedDescriptionClass> resultList){ - subResultsTable.addResults(resultList); + public void fillSuperClassExpressionsTable(List<EvaluatedDescriptionClass> resultList){ + superClassResultsTable.addResults(resultList); } public void fillEquivalentClassExpressionsTable(List<EvaluatedDescriptionClass> resultList){ - equivalentResultsTable.addResults(resultList); + equivalentClassResultsTable.addResults(resultList); } + private void addTableSelectionListeners(){ + equivalentClassResultsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent e) { + + if (!e.getValueIsAdjusting() && equivalentClassResultsTable.getSelectedRow() >= 0){ + + EvaluatedDescriptionClass selectedClassExpression = equivalentClassResultsTable.getSelectedValue(); + OREManager.getInstance().setNewClassDescription(selectedClassExpression); + equivalentClassCoveragePanel.setNewClassDescription(selectedClassExpression); + } + } + + }); + + superClassResultsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + + @Override + public void valueChanged(ListSelectionEvent e) { + + if (!e.getValueIsAdjusting() && superClassResultsTable.getSelectedRow() >= 0){ + + EvaluatedDescriptionClass selectedClassExpression = superClassResultsTable.getSelectedValue(); + OREManager.getInstance().setNewClassDescription(selectedClassExpression); + superClassCoveragePanel.setNewClassDescription(selectedClassExpression); + } + } + }); + } + + public void updateEquivalentGraphicalCoveragePanel(EvaluatedDescriptionClass desc){ + equivalentClassCoveragePanel.setNewClassDescription(desc); + } + + public void updateSuperGraphicalCoveragePanel(EvaluatedDescriptionClass desc){ + superClassCoveragePanel.setNewClassDescription(desc); + } + } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -38,6 +38,7 @@ import javax.swing.event.ChangeListener; import javax.swing.event.ListSelectionListener; +import org.dllearner.tools.ore.OREManager; import org.dllearner.tools.ore.ui.ClassesTable; import org.dllearner.tools.ore.ui.HelpablePanel; import org.dllearner.tools.ore.ui.LearningOptionsPanel; @@ -174,10 +175,20 @@ public void reset(){ classesTable.clear(); minInstanceCountSpinner.setValue(new Integer(1)); + autoLearnButton.setSelected(true); + setAutoLearningPanel(true); } public boolean isAutoLearnMode(){ return autoLearnButton.isSelected(); } + + public void setLearningOptions(){ + OREManager.getInstance().setMaxExecutionTimeInSeconds(learningOptionsPanel.getMaxExecutionTime()); + OREManager.getInstance().setMaxNrOfResults(learningOptionsPanel.getNrOfConcepts()); + OREManager.getInstance().setNoisePercentage(learningOptionsPanel.getMinAccuracy()); + OREManager.getInstance().setMinInstanceCount(((Integer)(minInstanceCountSpinner.getValue())).intValue()); + + } } \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java 2009-09-29 08:26:40 UTC (rev 1868) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java 2009-09-29 15:59:38 UTC (rev 1869) @@ -212,6 +212,10 @@ return optionsPanel; } + public boolean isEquivalentClassesTypeSelected(){ + return equivalentClassButton.isSelected(); + } + public void reset(){ graphicPanel.clear(); resultTable.clear(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |