Closes #192
Esse commit está contido em:
+9
-1
@@ -6,6 +6,7 @@ import org.protege.editor.owl.OWLEditorKit;
|
||||
import org.protege.editor.owl.model.find.OWLEntityFinderPreferences;
|
||||
import org.protege.editor.owl.model.search.SearchResult;
|
||||
import org.protege.editor.owl.ui.search.SearchPanel;
|
||||
import org.protege.editor.owl.ui.search.SearchResultClickedListener;
|
||||
import org.semanticweb.owlapi.model.OWLEntity;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -85,9 +86,16 @@ public class EntityFinderField extends AugmentedJTextField {
|
||||
performFind();
|
||||
}
|
||||
});
|
||||
searchPanel.setSearchResultClickedListener(new SearchResultClickedListener() {
|
||||
@Override
|
||||
public void handleSearchResultClicked(SearchResult searchResult, MouseEvent e) {
|
||||
if(e.getClickCount() == 2) {
|
||||
selectEntity();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void selectEntity() {
|
||||
Optional<OWLEntity> selectedEntity = searchPanel.getSelectedEntity();
|
||||
if (selectedEntity.isPresent()) {
|
||||
|
||||
+4
@@ -62,6 +62,10 @@ public class SearchPanel extends JPanel {
|
||||
add(searchActionsPanel, BorderLayout.SOUTH);
|
||||
}
|
||||
|
||||
public void setSearchResultClickedListener(SearchResultClickedListener searchResultClickedListener) {
|
||||
searchResultsPanel.setSearchResultClickedListener(searchResultClickedListener);
|
||||
}
|
||||
|
||||
public void setSearchString(String searchString) {
|
||||
this.searchString = searchString;
|
||||
searchOptionsPanel.refresh();
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package org.protege.editor.owl.ui.search;
|
||||
|
||||
import org.protege.editor.owl.model.search.SearchResult;
|
||||
|
||||
import java.awt.event.MouseEvent;
|
||||
|
||||
/**
|
||||
* Matthew Horridge
|
||||
* Stanford Center for Biomedical Informatics Research
|
||||
* 31/03/15
|
||||
*/
|
||||
public interface SearchResultClickedListener {
|
||||
|
||||
void handleSearchResultClicked(SearchResult searchResult, MouseEvent e);
|
||||
}
|
||||
+18
-14
@@ -29,6 +29,8 @@ import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
/**
|
||||
* Author: Matthew Horridge<br>
|
||||
* Stanford University<br>
|
||||
@@ -55,6 +57,12 @@ public class SearchResultsPanel extends JPanel {
|
||||
|
||||
private SearchResultsTableModel model;
|
||||
|
||||
private SearchResultClickedListener searchResultClickedListener = new SearchResultClickedListener() {
|
||||
@Override
|
||||
public void handleSearchResultClicked(SearchResult searchResult, MouseEvent e) {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public SearchResultsPanel(OWLEditorKit editorKit) {
|
||||
this.editorKit = editorKit;
|
||||
@@ -82,7 +90,10 @@ public class SearchResultsPanel extends JPanel {
|
||||
handleScrollpaneViewportChanged();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setSearchResultClickedListener(SearchResultClickedListener l) {
|
||||
this.searchResultClickedListener = checkNotNull(l);
|
||||
}
|
||||
|
||||
private void setupColumnRenderers() {
|
||||
@@ -107,20 +118,13 @@ public class SearchResultsPanel extends JPanel {
|
||||
|
||||
private void handleMouseReleased(MouseEvent e) {
|
||||
if (e.getClickCount() == 2) {
|
||||
handleDoubleClickRelease(e);
|
||||
Optional<SearchResult> selectedSearchResult = getSelectedSearchResult();
|
||||
if (selectedSearchResult.isPresent()) {
|
||||
searchResultClickedListener.handleSearchResultClicked(selectedSearchResult.get(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void handleDoubleClickRelease(MouseEvent e) {
|
||||
Optional<OWLEntity> entity = getSelectedEntity();
|
||||
if (entity.isPresent()) {
|
||||
editorKit.getWorkspace().getOWLSelectionModel().setSelectedEntity(entity.get());
|
||||
editorKit.getWorkspace().displayOWLEntity(entity.get());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setSearchResults(SearchResultSet searchResultSet, int categorySizeLimit) {
|
||||
this.searchResultSet = searchResultSet;
|
||||
setData(searchResultSet.getSearchResults());
|
||||
@@ -142,12 +146,12 @@ public class SearchResultsPanel extends JPanel {
|
||||
}
|
||||
|
||||
|
||||
public SearchResult getSelectedSearchResult() {
|
||||
public Optional<SearchResult> getSelectedSearchResult() {
|
||||
int selRow = resultsTable.getSelectedRow();
|
||||
if (selRow == -1) {
|
||||
return null;
|
||||
return Optional.absent();
|
||||
}
|
||||
return model.getSearchResult(selRow);
|
||||
return Optional.of(model.getSearchResult(selRow));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário