⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imbeeapplicationpanel.java

📁 图像检索的代码b
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            importObjects();
        } else if (e.getActionCommand().equals("newObject")) {
            String[] options = {"SemanticTime", "SemanticPlace", "Object"};
            JComboBox cbox = new JComboBox(options);
            JOptionPane.showMessageDialog(this, cbox, "Select Type", JOptionPane.PLAIN_MESSAGE);
            NewDescriptorDialogInterface descDialog = null;
            if (cbox.getSelectedIndex() == 0) {
                descDialog = new NewTimeDialog(parent);
            } else if (cbox.getSelectedIndex() == 1) {
                descDialog = new NewPlaceDialog(parent);
            } else if (cbox.getSelectedIndex() == 2) {
                descDialog = new NewObjectDialog(parent);
            }
            JDialog dialog = ((JDialog) descDialog);
            dialog.setSize(460, 230);
            Dimension ss = Toolkit.getDefaultToolkit().getScreenSize();
            dialog.setLocation((ss.width - dialog.getWidth()) >> 1, (ss.height - dialog.getHeight()) >> 1);
            dialog.setVisible(true);

            if (descDialog.createXML() != null) {
                venueTableModel.addObject(descDialog.createXML());
                venueTableModel.sort();
                venueTableModel.fireTableDataChanged();
            }
        }

    }


    /**
     * Exportiert 黚ergebenes <code>org.jdom.Document</code> in eine Datei nachdem die Datei 黚er einen
     * <code>JFileChooser</code> ausgew鋒lt wurde. Geschrieben wird im Encoding UTF-8.
     *
     * @param data Dokument, das in eine Datei geschrieben wird.
     */
    private void exportXMLData(Document data) {
        try {
            XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
            String strData = outputter.outputString(data);
            JFileChooser jfc = new JFileChooser(".");
            int returnVal = jfc.showSaveDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                FileOutputStream fout = new FileOutputStream(jfc.getSelectedFile());
                OutputStreamWriter stream_out = new OutputStreamWriter(fout, "UTF-8");
                stream_out.write(strData);
                stream_out.flush();
                stream_out.close();
                debug("wrote mpeg-7 document in File: " + jfc.getSelectedFile());
            }
        } catch (IOException e) {
            debug("Error writing mpeg-7 document to file");
            e.printStackTrace();
        }
    }


    public Vector getAgents() {
        return agentTableModel.getAgents();
    }

    public Vector getEvents() {
        return eventTableModel.getEvents();
    }

    public Vector getVenues() {
        return venueTableModel.getObjects();
    }

    public Vector getPossibleObjects() {
        Vector ret = new Vector();
        ret.addAll(agentTableModel.getAgents());
        ret.addAll(eventTableModel.getEvents());
        ret.addAll(venueTableModel.getObjects());
        return ret;
    }

    public Document getSemanticsDocument() {
        return beePanel.createDocument();
    }

    public void importAgents() {
        File f = getFile(".", new Mpeg7FileFilter());
        if (f != null) {
            agentTableModel.addAllAgents(retrieveNodes(f, "AgentObjectType"));
            agentTableModel.addAllAgents(retrieveNodes(f, "fsw:FSWPlayerType"));
            agentTableModel.addAllAgents(retrieveNodes(f, "fsw:FSWCoachType"));
            agentTableModel.addAllAgents(retrieveNodes(f, "fsw:FSWRefereeType"));
            agentTableModel.detachAll();
            agentTableModel.sort();
            agentTableModel.fireTableDataChanged();
        }
    }

    public void importEvents() {
        File f = getFile(".", new Mpeg7FileFilter());
        if (f != null) {
            eventTableModel.addAllEvents(retrieveNodes(f, "EventType"));
            eventTableModel.detachAll();
            eventTableModel.sort();
            eventTableModel.fireTableDataChanged();
        }
    }

    public void importObjects() {
        File f = getFile(".", new Mpeg7FileFilter());
        if (f != null) {
            venueTableModel.addAllObjects(retrieveNodes(f, "SemanticPlaceType"));
            venueTableModel.addAllObjects(retrieveNodes(f, "ObjectType"));
            venueTableModel.addAllObjects(retrieveNodes(f, "SemanticTimeType"));
            venueTableModel.detachAll();
            venueTableModel.sort();
            venueTableModel.fireTableDataChanged();
        }
    }

    private Vector retrieveNodes(File f, String type) {
        Vector v = new Vector();
        SAXBuilder builder = new SAXBuilder();
        try {
            Document agents = builder.build(f);
            Namespace mpeg7 = agents.getRootElement().getNamespace();
            Namespace xsi = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
            java.util.List nodeList = agents.getRootElement().getChild("Description", mpeg7).getChild("Semantics", mpeg7).getChildren("SemanticBase", mpeg7);
            for (Iterator i = nodeList.iterator(); i.hasNext();) {
                Element e = (Element) i.next();
                if (e.getAttributeValue("type", xsi).equals(type))
                    v.add(e);
            }
        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return v;
    }

    private File getFile(String directory, javax.swing.filechooser.FileFilter filter) {
        File myFile = null;
        JFileChooser jfc = new JFileChooser(directory);
        jfc.setFileFilter(filter);
        if (jfc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
            myFile = jfc.getSelectedFile();
        }
        return myFile;
    }

    public void addAgents(Vector v) {
        agentTableModel.addAllAgents(v);
        agentTableModel.sort();
        agentTableModel.fireTableDataChanged();
    }

    public void addEvents(Vector v) {
        eventTableModel.addAllEvents(v);
        eventTableModel.sort();
        eventTableModel.fireTableDataChanged();
    }

    private JPopupMenu generateVenueMenu() {
        JPopupMenu menu = new JPopupMenu("Venues");
        Namespace mpeg7 = null;
        Vector venues = venueTableModel.getObjects();
        for (Iterator i = venues.iterator(); i.hasNext();) {
            Element e = (Element) i.next();
            String label = e.getChild("Label", e.getNamespace()).getChildTextTrim("Name", e.getNamespace());
            JMenuItem item = new JMenuItem(label);
            item.setActionCommand("addVenue-" + label);
            item.addActionListener(beePanel);
            menu.add(item);
        }
        return menu;
    }

    private void readBaseObjects() {
        try {
            Document d = xmlBuilder.build(BASE_OBJECT_FILE);

            if (d != null) {
                Element e = d.getRootElement();
                Namespace xsi = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
                Namespace mpeg7 = e.getNamespace();
                Namespace fsw = OCToolkit.getFSWNamespace();

                java.util.List latt = e.getAttributes();
                for (Iterator it = latt.iterator(); it.hasNext();) {
                    Attribute attribute = (Attribute) it.next();
                    if (attribute.getNamespacePrefix().equals("xsi"))
                        xsi = attribute.getNamespace();
                }
                if (!(e != null)) {
                    debug("Error loading agents from file: root element is NULL");
                }
                e = e.getChild("Description", mpeg7);
                e = e.getChild("Semantics", mpeg7);

                java.util.List l = e.getChildren();
                for (Iterator it = l.iterator(); it.hasNext();) {
                    Element tmpElement = (Element) it.next();
                    if (tmpElement.getName().equals("SemanticBase") && tmpElement.getAttributeValue("type", xsi) != null) {
                        if (tmpElement.getAttributeValue("type", xsi).equals("AgentObjectType") || tmpElement.getAttributeValue("type", xsi).equals("fsw:FSWRefereeType")) {
                            agentTableModel.addAgent(tmpElement);
                        } else if (tmpElement.getAttributeValue("type", xsi).equals("SemanticPlaceType") || tmpElement.getAttributeValue("type", xsi).equals("ObjectType") || tmpElement.getAttributeValue("type", xsi).equals("SemanticTimeType")) {
                            venueTableModel.addObject(tmpElement);
                        } else if (tmpElement.getAttributeValue("type", xsi).equals("EventType")) {
                            eventTableModel.addEvent(tmpElement);
                        }
                    } else {
//                        logger.debug(tmpElement + " has no matching attribute!");
                    }
                }
            } else {
                debug("Error loading agents from file: File not found");
            }
        } catch (Exception e1) {
            debug("Error loading agents from file: " + e1);
            e1.printStackTrace();
        }

    }

    public void saveCatalog() {
        try {
            Document d = xmlBuilder.build(BASE_OBJECT_FILE);

            Element semantics = d.getRootElement();
            Namespace xsi = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
            Namespace mpeg7 = semantics.getNamespace();

            semantics = semantics.getChild("Description", mpeg7).getChild("Semantics", mpeg7);
            semantics.removeContent();
            semantics.addContent(new Element("Label", mpeg7).addContent(new Element("Name", mpeg7).addContent("Semanitscher Katalog")));

            for (Iterator iterator = agentTableModel.getAgents().iterator(); iterator.hasNext();) {
                Element elem = (Element) iterator.next();
                if (elem.getParent() != null) elem = (Element) elem.clone();
                semantics.addContent(elem.detach());
            }
            for (Iterator iterator = eventTableModel.getEvents().iterator(); iterator.hasNext();) {
                Element elem = (Element) iterator.next();
                if (elem.getParent() != null) elem = (Element) elem.clone();
                semantics.addContent(elem.detach());
            }
            for (Iterator iterator = venueTableModel.getObjects().iterator(); iterator.hasNext();) {
                Element elem = (Element) iterator.next();
                if (elem.getParent() != null) elem = (Element) elem.clone();
                semantics.addContent(elem.detach());
            }

            FileOutputStream fos = new FileOutputStream(BASE_OBJECT_FILE);
            OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8");
            new XMLOutputter(Format.getPrettyFormat()).output(d, osw);
            osw.close();
            fos.close();
        } catch (JDOMException e) {
            debug("JDOMException saving catalogue: " + e.getMessage());
        } catch (IOException e) {
            debug("IOException saving catalogue: " + e.getMessage());
        }
    }


    private void debug(String message) {
        if (AnnotationFrame.DEBUG)
            System.out.println("[IMBeeApplikationPanel] " + message);
    }

    public String[] getRelations() {
        return relationsArray;
    }

    public void setSemantics(Element node) {
        Namespace xsi = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
        Namespace mpeg7 = node.getNamespace();
        java.util.List l = node.getChildren();
        for (Iterator it = l.iterator(); it.hasNext();) {
            Element tmpElement = (Element) it.next();
            if (tmpElement.getName().equals("SemanticBase") && tmpElement.getAttributeValue("type", xsi) != null) {
                if (tmpElement.getAttributeValue("type", xsi).equals("AgentObjectType") || tmpElement.getAttributeValue("type", xsi).equals("fsw:FSWRefereeType")) {
                    agentTableModel.addAgent(tmpElement);
                } else if (tmpElement.getAttributeValue("type", xsi).equals("SemanticPlaceType") ||
                        tmpElement.getAttributeValue("type", xsi).equals("ObjectType") ||
                        tmpElement.getAttributeValue("type", xsi).equals("SemanticTimeType")) {
                    venueTableModel.addObject(tmpElement);
                } else if (tmpElement.getAttributeValue("type", xsi).equals("EventType")) {
                    eventTableModel.addEvent(tmpElement);
                }
            }
        }
        beePanel.importNode(node);
        agentTableModel.detachAll();
        eventTableModel.detachAll();
        venueTableModel.detachAll();
        agentTableModel.sort();
        eventTableModel.sort();
        venueTableModel.sort();
        agentTableModel.fireTableDataChanged();
        eventTableModel.fireTableDataChanged();
        venueTableModel.fireTableDataChanged();
    }

    public void addVenues(Vector v) {
        venueTableModel.addAllObjects(v);
        venueTableModel.sort();
        venueTableModel.fireTableDataChanged();
    }

    public void reArrange() {
        rlSplitPane.setDividerLocation(0.75);
        tbSplitPane.setDividerLocation(0.7);
        agentEventSplit.setDividerLocation(0.6);
    }

    public String[] getSemanticAgentsNames() {
        return beePanel.getSemanticAgentsNames();
    }

    public String[] getSemanticEventsNames() {
        return beePanel.getSemanticEventsNames();
    }

    public String[] getSemanticPlacesNames() {
        return beePanel.getSemanticPlacesNames();
    }

    public String[] getSemanticTimesNames() {
        return beePanel.getSemanticTimesNames();

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -