All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.protege.editor.owl.ui.ontology.imports.wizard.page.LocalFilePage Maven / Gradle / Ivy

Go to download

OWL ontology editing infrastructure used by the Protege desktop application.

The newest version!
package org.protege.editor.owl.ui.ontology.imports.wizard.page;

import org.protege.editor.core.editorkit.EditorKitDescriptor;
import org.protege.editor.core.editorkit.RecentEditorKitManager;
import org.protege.editor.core.ui.util.ComponentFactory;
import org.protege.editor.core.ui.util.FilePathPanel;
import org.protege.editor.core.ui.util.UIUtil;
import org.protege.editor.owl.OWLEditorKit;
import org.protege.editor.owl.ui.UIHelper;
import org.protege.editor.owl.ui.ontology.imports.wizard.ImportInfo;
import org.protege.editor.owl.ui.ontology.imports.wizard.OntologyImportWizard;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*;
import java.io.File;
import java.net.URI;


/**
 * Author: Matthew Horridge
* The University Of Manchester
* Medical Informatics Group
* Date: 12-Jun-2006

* [email protected]
* www.cs.man.ac.uk/~horridgm

*/ public class LocalFilePage extends OntologyImportPage { private static final long serialVersionUID = 8587705447779952633L; public static final String ID = "LocalFilePage"; private FilePathPanel filePathPanel; public LocalFilePage(OWLEditorKit owlEditorKit) { super(ID, "Import from local file", owlEditorKit); } @SuppressWarnings("unchecked") protected void createUI(JComponent parent) { setInstructions("Please specify the path to a file that contains an ontology. You can use the browse " + "button to show a file chooser dialog."); filePathPanel = new FilePathPanel("Please select a file", UIHelper.OWL_EXTENSIONS); filePathPanel.addChangeListener(e -> { updateFinishEnabled(); }); filePathPanel.setBorder(ComponentFactory.createTitledBorder("Path")); JList recentList = createRecentList(); JPanel recentListHolder = new JPanel(new BorderLayout()); recentListHolder.setBorder(ComponentFactory.createTitledBorder("Recent locations")); recentListHolder.add(new JScrollPane(recentList), BorderLayout.CENTER); parent.setLayout(new BorderLayout(6, 6)); parent.add(filePathPanel, BorderLayout.NORTH); parent.add(recentListHolder, BorderLayout.CENTER); parent.add(createCustomizedImportsComponent(), BorderLayout.SOUTH); } @Override public void aboutToDisplayPanel() { updateFinishEnabled(); super.aboutToDisplayPanel(); } @Override public void aboutToHidePanel() { OntologyImportWizard wizard = getWizard(); wizard.setImportsAreFinal(false); wizard.clearImports(); ImportInfo parameters = new ImportInfo(); parameters.setPhysicalLocation(filePathPanel.getFile().toURI()); wizard.addImport(parameters); ((SelectImportLocationPage) getWizardModel().getPanel(SelectImportLocationPage.ID)).setBackPanelDescriptor(ID); ((ImportConfirmationPage) getWizardModel().getPanel(ImportConfirmationPage.ID)).setBackPanelDescriptor(ID); super.aboutToHidePanel(); } private void updateFinishEnabled() { File f = filePathPanel.getFile(); getWizard().setNextFinishButtonEnabled(f.exists() && !f.isDirectory()); } private JList createRecentList() { DefaultListModel model = new DefaultListModel(); RecentEditorKitManager man = RecentEditorKitManager.getInstance(); for (EditorKitDescriptor descriptor : man.getDescriptors()) { final URI uri = descriptor.getURI(OWLEditorKit.URI_KEY); if (uri.getScheme() != null && UIUtil.isLocalFile(uri)){ model.addElement(descriptor); } } final JList list = new JList(model); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.addListSelectionListener(event -> { String path = ((EditorKitDescriptor)list.getSelectedValue()).getLabel(); filePathPanel.setPath(path); }); return list; } public Object getBackPanelDescriptor() { return ImportTypePage.ID; } public Object getNextPanelDescriptor() { return AnticipateOntologyIdPage.ID; } public void displayingPanel() { getWizard().setNextFinishButtonEnabled(false); filePathPanel.requestFocus(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy