Search in sources :

Example 1 with PreviewPreset

use of org.gephi.preview.api.PreviewPreset in project gephi by gephi.

the class PreviewUIControllerImpl method savePreset.

@Override
public void savePreset(String name) {
    if (model != null) {
        PreviewModel previewModel = previewController.getModel();
        Map<String, Object> map = new HashMap<>();
        for (PreviewProperty p : previewModel.getProperties().getProperties()) {
            map.put(p.getName(), p.getValue());
        }
        for (Entry<String, Object> p : previewModel.getProperties().getSimpleValues()) {
            map.put(p.getKey(), p.getValue());
        }
        PreviewPreset preset = new PreviewPreset(name, map);
        presetUtils.savePreset(preset);
        model.setCurrentPreset(preset);
    }
}
Also used : PreviewModel(org.gephi.preview.api.PreviewModel) HashMap(java.util.HashMap) PreviewProperty(org.gephi.preview.api.PreviewProperty) PreviewPreset(org.gephi.preview.api.PreviewPreset)

Example 2 with PreviewPreset

use of org.gephi.preview.api.PreviewPreset in project gephi by gephi.

the class PresetUtils method readXML.

private PreviewPreset readXML(Document document) {
    // For retrieving property class if it is not in the xml (old serialization)
    DefaultPreset defaultPreset = new DefaultPreset();
    Element presetE = document.getDocumentElement();
    Map<String, Object> propertiesMap = new HashMap<>();
    String presetName = presetE.getAttribute("name");
    NodeList propertyList = presetE.getElementsByTagName("previewproperty");
    for (int i = 0; i < propertyList.getLength(); i++) {
        Node n = propertyList.item(i);
        if (n.getNodeType() == Node.ELEMENT_NODE) {
            Element propertyE = (Element) n;
            String name = propertyE.getAttribute("name");
            String valueClassName = propertyE.hasAttribute(name) ? propertyE.getAttribute("class") : null;
            String stringValue = propertyE.getTextContent();
            Class valueClass = null;
            if (valueClassName != null) {
                try {
                    valueClass = Class.forName(valueClassName);
                } catch (ClassNotFoundException ex) {
                    Exceptions.printStackTrace(ex);
                }
            } else {
                Object defaultValue = defaultPreset.getProperties().get(name);
                if (defaultValue != null) {
                    valueClass = defaultValue.getClass();
                }
            }
            if (valueClass != null) {
                Object value = PreviewProperties.readValueFromText(stringValue, valueClass);
                if (value != null) {
                    propertiesMap.put(name, value);
                }
            }
        }
    }
    return new PreviewPreset(presetName, propertiesMap);
}
Also used : HashMap(java.util.HashMap) Element(org.w3c.dom.Element) NodeList(org.w3c.dom.NodeList) Node(org.w3c.dom.Node) DefaultPreset(org.gephi.preview.presets.DefaultPreset) FileObject(org.openide.filesystems.FileObject) PreviewPreset(org.gephi.preview.api.PreviewPreset)

Example 3 with PreviewPreset

use of org.gephi.preview.api.PreviewPreset in project gephi by gephi.

the class PreviewSettingsTopComponent method setup.

public void setup(PreviewUIModel previewModel) {
    propertySheet.setNodes(new Node[] { new PreviewNode(propertySheet) });
    PreviewUIController previewUIController = Lookup.getDefault().lookup(PreviewUIController.class);
    if (previewModel != null) {
        ratioSlider.setValue((int) (previewModel.getVisibilityRatio() * 100));
    }
    // Presets
    if (previewModel == null) {
        saveButton.setEnabled(false);
        labelPreset.setEnabled(false);
        presetComboBox.setEnabled(false);
        presetComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "---" }));
    } else {
        saveButton.setEnabled(true);
        labelPreset.setEnabled(true);
        presetComboBox.setEnabled(true);
        DefaultComboBoxModel comboBoxModel = new DefaultComboBoxModel();
        defaultPresetLimit = 0;
        for (PreviewPreset preset : previewUIController.getDefaultPresets()) {
            comboBoxModel.addElement(preset);
            defaultPresetLimit++;
        }
        PreviewPreset[] userPresets = previewUIController.getUserPresets();
        if (userPresets.length > 0) {
            comboBoxModel.addElement(NO_SELECTION);
            for (PreviewPreset preset : userPresets) {
                comboBoxModel.addElement(preset);
            }
        }
        presetComboBox.setSelectedItem(previewModel.getCurrentPreset());
        presetComboBox.setModel(comboBoxModel);
    }
    // Refresh tabs
    int tabCount = tabbedPane.getTabCount();
    for (int i = 2; i < tabCount; i++) {
        // Start at 2, not removing settings and renderer manager tabs
        tabbedPane.removeTabAt(i);
    }
    for (PreviewUI pui : Lookup.getDefault().lookupAll(PreviewUI.class)) {
        pui.unsetup();
    }
    if (previewModel != null) {
        PreviewController previewController = Lookup.getDefault().lookup(PreviewController.class);
        PreviewModel pModel = previewController.getModel();
        // Add new tabs
        for (PreviewUI pui : Lookup.getDefault().lookupAll(PreviewUI.class)) {
            pui.setup(pModel);
            JPanel pluginPanel = pui.getPanel();
            if (UIUtils.isAquaLookAndFeel()) {
                pluginPanel.setBackground(UIManager.getColor("NbExplorerView.background"));
            }
            if (pui.getIcon() != null) {
                tabbedPane.addTab(pui.getPanelTitle(), pui.getIcon(), pluginPanel);
            } else {
                tabbedPane.addTab(pui.getPanelTitle(), pluginPanel);
            }
        }
    }
}
Also used : JPanel(javax.swing.JPanel) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) PreviewUI(org.gephi.preview.spi.PreviewUI) PreviewController(org.gephi.preview.api.PreviewController) PreviewPreset(org.gephi.preview.api.PreviewPreset) PreviewModel(org.gephi.preview.api.PreviewModel) PreviewUIController(org.gephi.desktop.preview.api.PreviewUIController) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel)

Example 4 with PreviewPreset

use of org.gephi.preview.api.PreviewPreset in project gephi by gephi.

the class PresetUtils method savePreset.

public void savePreset(PreviewPreset preset) {
    int exist = -1;
    for (int i = 0; i < presets.size(); i++) {
        PreviewPreset p = presets.get(i);
        if (p.getName().equals(preset.getName())) {
            exist = i;
            break;
        }
    }
    if (exist == -1) {
        addPreset(preset);
    } else {
        presets.set(exist, preset);
    }
    try {
        // Create file if dont exist
        FileObject folder = FileUtil.getConfigFile("previewpresets");
        if (folder == null) {
            folder = FileUtil.getConfigRoot().createFolder("previewpresets");
        }
        // Safe filename
        String filename = DigestUtils.sha1Hex(preset.getName());
        FileObject presetFile = folder.getFileObject(filename, "xml");
        if (presetFile == null) {
            presetFile = folder.createData(filename, "xml");
        }
        // Create doc
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = factory.newDocumentBuilder();
        final Document document = documentBuilder.newDocument();
        document.setXmlVersion("1.0");
        document.setXmlStandalone(true);
        // Write doc
        writeXML(document, preset);
        // Write XML file
        try (OutputStream outputStream = presetFile.getOutputStream()) {
            Source source = new DOMSource(document);
            Result result = new StreamResult(outputStream);
            Transformer transformer = TransformerFactory.newInstance().newTransformer();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
            transformer.transform(source, result);
        }
    } catch (Exception ex) {
        Exceptions.printStackTrace(ex);
    }
}
Also used : DOMSource(javax.xml.transform.dom.DOMSource) DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) Transformer(javax.xml.transform.Transformer) StreamResult(javax.xml.transform.stream.StreamResult) OutputStream(java.io.OutputStream) Document(org.w3c.dom.Document) PreviewPreset(org.gephi.preview.api.PreviewPreset) DOMSource(javax.xml.transform.dom.DOMSource) Source(javax.xml.transform.Source) StreamResult(javax.xml.transform.stream.StreamResult) Result(javax.xml.transform.Result) DocumentBuilder(javax.xml.parsers.DocumentBuilder) FileObject(org.openide.filesystems.FileObject)

Example 5 with PreviewPreset

use of org.gephi.preview.api.PreviewPreset in project gephi by gephi.

the class PresetUtils method loadPresets.

private void loadPresets() {
    FileObject folder = FileUtil.getConfigFile("previewpresets");
    if (folder != null) {
        for (FileObject child : folder.getChildren()) {
            if (child.isValid() && child.hasExt("xml")) {
                try (InputStream stream = child.getInputStream()) {
                    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                    DocumentBuilder builder = factory.newDocumentBuilder();
                    Document document = builder.parse(stream);
                    PreviewPreset preset = readXML(document);
                    addPreset(preset);
                } catch (Exception ex) {
                    Exceptions.printStackTrace(ex);
                }
            }
        }
    }
}
Also used : DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) DocumentBuilder(javax.xml.parsers.DocumentBuilder) InputStream(java.io.InputStream) FileObject(org.openide.filesystems.FileObject) Document(org.w3c.dom.Document) PreviewPreset(org.gephi.preview.api.PreviewPreset)

Aggregations

PreviewPreset (org.gephi.preview.api.PreviewPreset)6 FileObject (org.openide.filesystems.FileObject)3 HashMap (java.util.HashMap)2 DefaultComboBoxModel (javax.swing.DefaultComboBoxModel)2 DocumentBuilder (javax.xml.parsers.DocumentBuilder)2 DocumentBuilderFactory (javax.xml.parsers.DocumentBuilderFactory)2 PreviewUIController (org.gephi.desktop.preview.api.PreviewUIController)2 PreviewModel (org.gephi.preview.api.PreviewModel)2 Document (org.w3c.dom.Document)2 InputStream (java.io.InputStream)1 OutputStream (java.io.OutputStream)1 JPanel (javax.swing.JPanel)1 Result (javax.xml.transform.Result)1 Source (javax.xml.transform.Source)1 Transformer (javax.xml.transform.Transformer)1 DOMSource (javax.xml.transform.dom.DOMSource)1 StreamResult (javax.xml.transform.stream.StreamResult)1 PreviewController (org.gephi.preview.api.PreviewController)1 PreviewProperty (org.gephi.preview.api.PreviewProperty)1 DefaultPreset (org.gephi.preview.presets.DefaultPreset)1