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

📄 shoeboxmarkerdialog.java

📁 编辑视频文件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                        rec.getParentMarker().equals(markerToChange)) {                    rec.setParentMarker(newMarker);                }            }            mr.setParentMarker(newParent);            mr.setStereoType(newStereoType);            mr.setCharset(newCharset);            mr.setParticipantMarker(newPartMarker);            mr.setExcluded(newExclude);            // switch off other markers, if needed            if (newPartMarker == true) {                mIter = getMarkers().iterator();                while (mIter.hasNext()) {                    MarkerRecord rec = (MarkerRecord) mIter.next();                    if (!rec.getMarker().equals(newMarker)) {                        rec.setParticipantMarker(false);                    }                }            }            updateUIForMarker(newMarker);        }    }    private void doDelete() {        String markerToDelete = (String) (currentMarkers.getSelectedItem());        MarkerRecord mr = null;        Iterator mIter = getMarkers().iterator();        while (mIter.hasNext()) {            mr = (MarkerRecord) mIter.next();            if (mr.getMarker().equals(markerToDelete)) {                break;            }        }        if (mr != null) {            getMarkers().remove(mr);            currentMarkers.removeItem(mr.getMarker());            // reset parent markers that refer to mr            mIter = getMarkers().iterator();            while (mIter.hasNext()) {                MarkerRecord rec = (MarkerRecord) mIter.next();                if ((rec.getParentMarker() != null) &&                        rec.getParentMarker().equals(mr.getMarker())) {                    rec.setParentMarker(null);                }            }        }        if (getMarkers().size() > 0) {            updateUIForMarker(((MarkerRecord) getMarkers().get(0)).getMarker());        }    }    /**     * Check for the condition of zero or more than one root markers; this can indicate an     * inconsistent set of markers. In special cases, such as original eaf files exported     * from ELAN, such situation might not be problematic, but most of the time it will be.     * Just warn.     */    private void close() {        if (getMarkers().size() > 0) {            int numRoots = 0;            MarkerRecord mr = null;            Iterator mIter = getMarkers().iterator();            while (mIter.hasNext()) {                mr = (MarkerRecord) mIter.next();                if (mr.getParentMarker() == null) {                    numRoots++;                }            }            if (numRoots != 1) {                JOptionPane.showMessageDialog(this,                    ElanLocale.getString(                        "ShoeboxMarkerDialog.Message.RootMarkers"),                    ElanLocale.getString("Message.Warning"),                    JOptionPane.WARNING_MESSAGE);            }        }        dispose();    }    /**     * DOCUMENT ME!     */    public void doLoad() {        String lastUsedDir = (String) Preferences.get("SbxMarkerDir", null);        if (lastUsedDir == null) {            lastUsedDir = Constants.ELAN_DATA_DIR;        }        JFileChooser chooser = new JFileChooser(lastUsedDir);        chooser.setDialogTitle(ElanLocale.getString(                "ShoeboxMarkerDialog.Title.Select"));        chooser.setFileFilter(ElanFileFilter.createFileFilter(                ElanFileFilter.SHOEBOX_MKR_TYPE));        chooser.setApproveButtonText(ElanLocale.getString(                "ImportDialog.Approve"));        chooser.setDialogType(JFileChooser.OPEN_DIALOG);        int option = chooser.showDialog(this, null);        if (option == JFileChooser.APPROVE_OPTION) {            File curDir = chooser.getCurrentDirectory();            if (curDir != null) {                Preferences.set("SbxMarkerDir", curDir.getAbsolutePath(), null);            }            File f = chooser.getSelectedFile();            if (f != null) {                String line = null;                getMarkers().clear();                currentMarkers.removeAllItems();                try {                    FileReader filereader = new FileReader(f);                    BufferedReader br = new BufferedReader(filereader);                    MarkerRecord newRecord = null;                    while ((line = br.readLine()) != null) {                        line = line.trim();                        String label = getLabelPart(line);                        String value = getValuePart(line);                        if (label.equals("marker")) {                            newRecord = new MarkerRecord();                            if (!value.equals("null")) {                                newRecord.setMarker(value);                            }                        } else if (label.equals("parent")) {                            if (!value.equals("null")) {                                newRecord.setParentMarker(value);                            }                        } else if (label.equals("stereotype")) {                            if (!value.equals("null")) {                                newRecord.setStereoType(value);                            }                        } else if (label.equals("charset")) {                            if (!value.equals("null")) {                                newRecord.setCharset(value);                            }                        } else if (label.equals("exclude")) {                            if (!value.equals("null")) {                                if (value.equals("true")) {                                    newRecord.setExcluded(true);                                } else {                                    newRecord.setExcluded(false);                                }                            }                        } else if (label.equals("participant")) {                            if (!value.equals("null")) {                                if (value.equals("true")) {                                    newRecord.setParticipantMarker(true);                                } else {                                    newRecord.setParticipantMarker(false);                                }                            }                            getMarkers().add(newRecord);                            currentMarkers.addItem(newRecord.getMarker());                        }                    }                } catch (Exception ex) {                    ex.printStackTrace();                }                if (getMarkers().size() > 0) {                    updateUIForMarker(((MarkerRecord) getMarkers().get(0)).getMarker());                }            }        }    }    private String getLabelPart(String theLine) {        String label = null;        int index = theLine.indexOf(':');        if (index > 0) {            label = theLine.substring(0, index);        }        return label;    }    private String getValuePart(String theLine) {        String value = null;        int index = theLine.indexOf(':');        if (index < (theLine.length() - 2)) {            value = theLine.substring(index + 1).trim();        }        return value;    }    /**     * DOCUMENT ME!     */    public void doStore() {        String saveDir = (String) Preferences.get("SbxMarkerDir", null);        if (saveDir == null) {            saveDir = Constants.ELAN_DATA_DIR;        }        JFileChooser chooser = new JFileChooser(saveDir);        chooser.setFileFilter(ElanFileFilter.createFileFilter(                ElanFileFilter.SHOEBOX_MKR_TYPE));        int option = chooser.showSaveDialog(frame);        if (option == JFileChooser.APPROVE_OPTION) {            File curDir = chooser.getCurrentDirectory();            if (curDir != null) {                Preferences.set("SbxMarkerDir", curDir.getAbsolutePath(), null);            }            File saveFile = chooser.getSelectedFile();            String fileName = saveFile.getAbsolutePath();            String lowerFileName = fileName.toLowerCase();            if (!lowerFileName.endsWith("mkr")) {                fileName += ".mkr";            }            final File newSaveFile = new File(fileName);            if (newSaveFile != null) {                if (newSaveFile.exists()) {                    int answer = JOptionPane.showConfirmDialog(null,                            ElanLocale.getString("Message.Overwrite"),                            ElanLocale.getString("SaveDialog.Message.Title"),                            JOptionPane.YES_NO_OPTION);                    if (answer == JOptionPane.NO_OPTION) {                        return;                    }                }                try {                    FileOutputStream out = new FileOutputStream(newSaveFile);                    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(                                out, "UTF-8"));                    Iterator markerIter = getMarkers().iterator();                    while (markerIter.hasNext()) {                        writer.write(((MarkerRecord) markerIter.next()).toString());                    }                    writer.close();                } catch (Exception ex) {                    ex.printStackTrace();                }            }        }    }    //listeners    public void actionPerformed(ActionEvent event) {        if (event.getSource() == addButton) {            String markerName = markerTextField.getText();            markerName.replace('\n', ' ');            markerName.trim();            if (markerName.startsWith("\\")) {                markerName = markerName.substring(1);            }            if (markerName.length() == 0) {                String errorMessage = ElanLocale.getString(                        "ShoeboxMarkerDialog.Message.MarkerName");                markerTextField.requestFocus();                JOptionPane.showMessageDialog(this, errorMessage,                    ElanLocale.getString("Message.Error"),                    JOptionPane.ERROR_MESSAGE);                return;            }            doAdd(markerName);        } else if (event.getSource() == deleteButton) {            doDelete();        } else if (event.getSource() == changeButton) {            doChange();        } else if (event.getSource() == cancelButton) {            close();        } else if (event.getSource() == loadButton) {            doLoad();        } else if (event.getSource() == storeButton) {            doStore();        }    }    /**     * DOCUMENT ME!     *     * @param e DOCUMENT ME!     */    public void itemStateChanged(ItemEvent e) {        if ((e.getSource() == currentMarkers) &&                (e.getStateChange() == ItemEvent.SELECTED)) {            String name = (String) currentMarkers.getSelectedItem();            if (name != null) {                updateUIForMarker(name);            }        }    }}

⌨️ 快捷键说明

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