termsdisplay.java
来自「Semantic Web Ontology Editor」· Java 代码 · 共 1,817 行 · 第 1/5 页
JAVA
1,817 行
lookupPanel.setLayout(new BorderLayout()); lookupPanel.add(lookupBtn, "West"); lookupPanel.add(lookupFld, "Center"); lookupPanel.add(searchAllChk, "East"); termTabPanel.add(termTabPane, "Center"); termTabPanel.add(lookupPanel, "South"); termPanel.add(termTabPanel, "Center"); // add termPanel to termListPanel and create add/edit buttons termListPanel = new JPanel(); termListPanel.setLayout(new BorderLayout()); JPanel tp = new JPanel(); tp.setLayout(new BorderLayout()); tp.add(termPanel, "Center"); showImportChk = new JCheckBox("Show Imports"); showImportChk.setFont(tahoma); showImportChk.addActionListener(this); showImportChk.setSelected(swoopModel.getShowImports()); showQNamesChk = new JCheckBox("QNames"); showQNamesChk.setFont(tahoma); showQNamesChk.addActionListener(this); showQNamesChk.setSelected(swoopModel.getShowQNames()); reasoners = new ArrayList(); // find all the classes that implements SwoopReasoner // interface and try to generate a reasoner PluginLoader ph = PluginLoader.getInstance(); List list = ph.getClasses(SwoopReasoner.class); if (!Swoop.isWebStart()) { for(int i = 0; i < list.size(); i++) { Class cls = (Class) list.get(i); if(cls.isInterface()) continue; try { System.out.println("Try creating reasoner " + cls.getName()); SwoopReasoner reasoner = (SwoopReasoner) cls.newInstance(); reasoners.add(reasoner); } catch (Throwable e) { e.printStackTrace(); continue; } } } else { // manually load reasoners for Webstart reasoners.add(new SwoopToldReasoner()); reasoners.add(new SwoopRDFSReasoner()); reasoners.add(new PelletReasoner()); } // add set of reasoners to swoopModel.reasonerMap for (int i=0; i<reasoners.size(); i++) { SwoopReasoner reas = (SwoopReasoner) reasoners.get(i); swoopModel.addReasonerMap(reas.getName(), reas); } // sort the reasoners alphabetically though place Told first Collections.sort(reasoners, new Comparator() { public int compare(Object o1, Object o2) { SwoopReasoner r1 = (SwoopReasoner) o1; SwoopReasoner r2 = (SwoopReasoner) o2; if (r1 instanceof SwoopToldReasoner) return -1; if (r2 instanceof SwoopToldReasoner) return 1; return r1.getName().compareTo(r2.getName()); } }); reasonerCombo = new JComboBox(); reasonerCombo.setFont(tahoma); for(int i = 0; i < reasoners.size(); i++) { SwoopReasoner reasoner = (SwoopReasoner) reasoners.get(i); reasonerCombo.addItem(reasoner.getName()); } reasonerCombo.addActionListener(this); JPanel topPanel = new JPanel(); topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.X_AXIS)); topPanel.add(showImportChk); topPanel.add(Box.createHorizontalGlue()); topPanel.add(showQNamesChk); topPanel.add(Box.createHorizontalGlue()); topPanel.add(reasonerCombo); tp.add(topPanel, "North"); termListPanel.add(tp, "Center"); SwoopIcons swoopIcons = new SwoopIcons(); addClassBtn = new JButton("Add", SwoopIcons.smallClassIcon); addClassBtn.setHorizontalTextPosition(AbstractButton.LEFT); addPropBtn = new JButton("Add", SwoopIcons.smallPropIcon); addPropBtn.setHorizontalTextPosition(AbstractButton.LEFT); addIndBtn = new JButton("Add", SwoopIcons.smallIndIcon); addIndBtn.setHorizontalTextPosition(AbstractButton.LEFT); addGCIBtn = new JButton("Add GCI"); addGCIBtn.setHorizontalTextPosition(AbstractButton.LEFT); remTermBtn = new JButton("Remove"); renameTermBtn = new JButton("Rename"); // add buttons to Entity Tool Bar addClassBtn.setFont(tahoma); addClassBtn.setEnabled(false); addClassBtn.addActionListener(this); addPropBtn.setFont(tahoma); addPropBtn.setEnabled(false); addPropBtn.addActionListener(this); addIndBtn.setFont(tahoma); addIndBtn.setEnabled(false); addIndBtn.addActionListener(this); addGCIBtn.setFont(tahoma); addGCIBtn.setEnabled(false); addGCIBtn.addActionListener(this); remTermBtn.setFont(tahoma); remTermBtn.setEnabled(false); remTermBtn.addActionListener(this); renameTermBtn.setFont(tahoma); renameTermBtn.setEnabled(false); renameTermBtn.addActionListener(this); JPanel termToolBar = new JPanel(); termToolBar.setLayout(new GridLayout(2,3)); termToolBar.add(addClassBtn); termToolBar.add(addPropBtn); termToolBar.add(addIndBtn); termListPanel.add(termToolBar, "North"); termToolBar.add(addGCIBtn); termToolBar.add(remTermBtn); termToolBar.add(renameTermBtn); // add components to splitPane splitPane.setLeftComponent(termListPanel); termDisplayPane = new JTabbedPane(); termDisplayPane.setFont(tahoma); termDisplayPane.getSelectedComponent(); // find all the other classes that implements entityRenderer // interface and try to generate a renderer for them if (!Swoop.isWebStart()) { list = ph.getClasses(SwoopEntityRenderer.class); for(int i = 0; i < list.size(); i++) { Class cls = (Class) list.get(i); if(cls.isInterface()) continue; SwoopEntityRenderer renderer = null; try { renderer = (SwoopEntityRenderer) cls.newInstance(); renderers.add(renderer); } catch (Throwable e) { e.printStackTrace(); continue; } } } else { // manually add renderers for webstart renderers.add(new ConciseFormatEntityRenderer()); renderers.add(new AbstractSyntaxEntityRenderer()); renderers.add(new RDFXMLEntityRenderer()); renderers.add(new TurtleEntityRenderer()); } // sort the renderers such that ConciseFormat is always first and the // rest is ordered alphabetically Collections.sort(renderers, new Comparator() { public int compare(Object o1, Object o2) { SwoopEntityRenderer r1 = (SwoopEntityRenderer) o1; SwoopEntityRenderer r2 = (SwoopEntityRenderer) o2; if(r1 instanceof ConciseFormatEntityRenderer) return -1; if(r2 instanceof ConciseFormatEntityRenderer) return 1; return r1.getName().compareTo(r2.getName()); } }); // add the editor for each renderer for(int i = 0; i < renderers.size(); i++) { SwoopEntityRenderer renderer = (SwoopEntityRenderer) renderers.get(i); Component component = renderer.getDisplayComponent( this ); termDisplayPane.addTab(renderer.getName(), new JScrollPane( component )); editors.add( component ); } termDisplayPane.addChangeListener(this); termDisplayEditPane = new JPanel(); termDisplayEditPane.setLayout(new BorderLayout()); // add warning label while editing in RDF/XML tab warningEditLbl = new JLabel("", JLabel.CENTER); warningEditLbl.setFont(tahoma); // add apply/undo changes buttons applyChangesBtn = new JButton("Apply Changes"); applyChangesBtn.addActionListener(this); applyChangesBtn.setFont(tahoma); undoChangesBtn = new JButton("Undo Changes"); undoChangesBtn.addActionListener(this); undoChangesBtn.setFont(tahoma); termEditButtonPane = new JPanel(); termEditButtonPane.setLayout(new BorderLayout()); JPanel buttonPane = new JPanel(); buttonPane.add(applyChangesBtn); buttonPane.add(undoChangesBtn); termEditButtonPane.add(warningEditLbl, "North"); termEditButtonPane.add(buttonPane, "Center"); termEditButtonPane.setVisible(swoopModel.getEditorEnabled()); // add term editable check box option termEditableChk = new JCheckBox("Editable"); termEditableChk.addActionListener(this); //termEditableChk.addChangeListener(this); // IMPORTANT: TURNING THIS ON CAUSES WEIRD (RANDOM) NOTIFICATION ERRORS termEditableChk.setFont(tahoma); termEditableChk.setToolTipText("Toggle Editable Mode"); termEditableChk.setSelected(swoopModel.getEditorEnabled()); // add enable debugging check boxes debugChk = new JCheckBoxMenuItem("Basic"); debugChk.addActionListener(this); debugChk.addVetoableChangeListener(new EnableDebugListener()); debugChk.setFont(tahoma); debugChk.setToolTipText("Basic Debugging Mode - Clash information with Class Expression highlighting"); debugChk.setSelected(swoopModel.getEnableDebugging()); debugGlassChk = new JCheckBoxMenuItem("Display Clash / SOS Axioms Inline"); debugGlassChk.addActionListener(this); debugGlassChk.addVetoableChangeListener(new EnableDebugListener()); debugGlassChk.setFont(tahoma); debugGlassChk.setToolTipText("Sets of Support Axioms for an Unsatisfiable Class"); debugGlassChk.setSelected(swoopModel.isDebugGlass()); debugBlackChk = new JCheckBoxMenuItem("Display Root / Derived"); debugBlackChk.addActionListener(this); debugBlackChk.addVetoableChangeListener(new EnableDebugListener()); debugBlackChk.setFont(tahoma); debugBlackChk.setToolTipText("Black Box Debugging Mode - Root and Derived Unsat. Classes"); debugBlackChk.setSelected(swoopModel.isDebugBlack()); // add show inherited check box showInheritedChk = new JCheckBox("Show Inherited"); showInheritedChk.addActionListener(this); showInheritedChk.setFont(tahoma); showInheritedChk.setToolTipText("Show Inherited Domains, Ranges and Individuals while rendering Entities"); showInheritedChk.setSelected(swoopModel.getShowInherited()); // add show icons check box showIconsChk = new JCheckBox("Show Icons"); showIconsChk.addActionListener(this); showIconsChk.setFont(tahoma); showIconsChk.setToolTipText("Show Icons for OWL Objects"); showIconsChk.setVisible(swoopModel.getShowIcons()); termDisplayEditPane.add(termDisplayPane, "Center"); splitPane.setRightComponent(termDisplayEditPane); centerPanel.add(splitPane); // add components to main panel setLayout(new BorderLayout()); add(topbtnPanel, "North"); add(centerPanel, "Center"); // set previously selected term index if (termIndex!=-1) { termList.setSelectedIndex(termIndex); } splitPane.setDividerLocation(280); } /* * Return current class and property trees */ public JTree[] getTrees() { return this.trees; } /* * Return ontology the current class tree displays (if any) */ public OWLOntology getClassTreeOfOntology() { return this.classTreeOfOntology; } /* * Return ontology the current property tree displays (if any) */ public OWLOntology getPropTreeOfOntology() { return this.propTreeOfOntology; } public SwoopModel getSwoopModel() { return this.swoopModel; } /** * Used to check if a URL clicked on in the entity pane * is a valid e-mail id or not * (need better regular expression matching here) * @param url * @return */ private boolean isEMailID(String url) { // *** hack to check if string is a valid e-mail address or not if (url.indexOf("@")>=0) { int pos = url.indexOf("@"); if (url.indexOf(".", pos)>=0) { if (url.toLowerCase().endsWith("com") || url.toLowerCase().endsWith("org") || url.toLowerCase().endsWith("edu") || url.toLowerCase().endsWith("net") || url.toLowerCase().endsWith("gov")) return true; } } return false; } /** * Add current selected entity to the SWOOP Resource Holder * The resource holder is Static - it saves a snapshot of the * current state of the entity as rendered in the entity pane. * Can be used for comparing changes at a later stage */ public void addEntityToResourceHolder() { if (swoopModel.selectedOWLObject==null) return; String renderText = ""; // prefix timestamp and ontology at start String timeStamp = swoopModel.getTimeStamp(); renderText = "<font face=\""+swoopModel.getFontFace()+"\" size="+swoopModel.getFontSize()+"><b>Time:</b> </i>"+timeStamp+"</i><br></font"; URI ontURI; try { ontURI = swoopModel.getSelectedOntology().getURI(); renderText += "<font face=\""+swoopModel.getFontFace()+"\" size="+swoopModel.getFontSize()+"><b>Ontology:</b> " + swoopModel.shortForm(ontURI) + "</font><br>"; } catch (OWLException e) { e.printStackTrace(); } // get current rendered text if (swoopModel.selectedOWLObject instanceof OWLOntology) { int rendererIndex = swoopHandler.ontDisplay.ontDescTab.getSelectedIndex(); JEditorPane editor = (JEditorPane) swoopHandler.ontDisplay.editors.get(rendererIndex); renderText += "<font face=\""+swoopModel.getFontFace()+"\" size="+swoopModel.getFontSize()+">"+editor.getText(); } else { int rendererIndex = termDisplayPane.getSelectedIndex(); SwoopEntityRenderer renderer = (SwoopEntityRenderer) renderers.get(rendererIndex); // take current text in displayed editorPane Component editor = (Component) editors.get(rendererIndex); if (editor instanceof JEditorPane) renderText += ((JEditorPane) editor).getText(); // System.out.println(renderText); } try { // add source, entity-uri and description as a string //TODO: maybe pass entity object itself or its RDF/XML serialization instead comparator.addEntity("Main SWOOP", swoopModel.selectedOWLObject.getURI(), renderText); } catch (OWLException e1) { e1.printStackTrace(); }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?