@Override public void actionPerformed (@Nonnull final ActionEvent e) { try { UiUtils.browseURI(LINK, false); } catch (Exception ex) { DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't open link! You can try to open it manually:\n" + LINK.toASCIIString()); } } };
private void buttonImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonImportActionPerformed final File toOpen = DialogProviderManager.getInstance().getDialogProvider().msgOpenFileDialog(null, "note-editor", UiUtils.BUNDLE.getString("PlainTextEditor.buttonLoadActionPerformed.title"), null, true, TEXT_FILE_FILTER, "Open"); //NOI18N if (toOpen != null) { try { final String text = FileUtils.readFileToString(toOpen, "UTF-8"); //NOI18N this.editorPane.setText(text); } catch (Exception ex) { LOGGER.error("Error during text file loading", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, UiUtils.BUNDLE.getString("PlainTextEditor.buttonLoadActionPerformed.msgError")); } } }//GEN-LAST:event_buttonImportActionPerformed
@Nullable @Override public File createMindMapFile(@Nullable final File folder) { final JFileChooser chooser = new JFileChooser(folder); chooser.setDialogTitle("Create new Mind Map"); chooser.setFileFilter(MMDEditor.MMD_FILE_FILTER); chooser.setMultiSelectionEnabled(false); chooser.setApproveButtonText("Create"); File result = null; if (chooser.showSaveDialog(Main.getApplicationFrame()) == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); if (!file.getName().endsWith(".mmd")) { //NOI18N file = new File(file.getAbsolutePath() + ".mmd"); //NOI18N } if (file.exists()) { DialogProviderManager.getInstance().getDialogProvider().msgError(null, "File '" + file + "' already exists!"); } else { try { final MindMap mindMap = new MindMap(null, true); final String text = mindMap.write(new StringWriter()).toString(); SystemUtils.saveUTFText(file, text); result = file; } catch (IOException ex) { DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't save mind map into file '" + file.getName() + "'"); } } } return result; }
private void buttonBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonBrowseActionPerformed final String selectedText = this.editorPane.getSelectedText().trim(); try { UiUtils.browseURI(URI.create(selectedText), false); } catch (Exception ex) { LOGGER.error("Can't open link : " + selectedText); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't browse link : " + selectedText); } }//GEN-LAST:event_buttonBrowseActionPerformed
@Override public void actionPerformed(@Nonnull final ActionEvent e) { try { title.save(); } catch (IOException ex) { LOGGER.error("Can't save file", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't save document, may be it is read-only! See log!"); } } });
@Override public void actionPerformed(@Nonnull final ActionEvent e) { try { title.saveAs(); } catch (IOException ex) { LOGGER.error("Can't save file", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't save document, may be it is read-only! See log!"); } } });
@Nullable public static File checkFileAndExtension(@Nonnull final MindMapPanel panel, @Nullable final File file, @Nonnull final String dottedExtension) { if (file == null) { return null; } if (file.isDirectory()) { panel.getController().getDialogProvider(panel).msgError(null, String.format(Texts.getString("AbstractMindMapExporter.msgErrorItIsDirectory"), file.getAbsolutePath())); return null; } if (file.isFile()) { if (!panel.getController().getDialogProvider(panel).msgConfirmOkCancel(null, Texts.getString("AbstractMindMapExporter.titleSaveAs"), String.format(Texts.getString("AbstractMindMapExporter.msgAlreadyExistsWantToReplace"), file.getAbsolutePath()))) { return null; } } else if (!file.getName().toLowerCase(Locale.ENGLISH).endsWith(dottedExtension.toLowerCase(Locale.ENGLISH))) { if (panel.getController().getDialogProvider(panel).msgConfirmYesNo(null, Texts.getString("AbstractMindMapExporter.msgTitleAddExtension"), String.format(Texts.getString("AbstractMindMapExporter.msgAddExtensionQuestion"), dottedExtension))) { return new File(file.getParent(), file.getName() + dottedExtension); } } return file; }
private void menuNewProjectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuNewProjectActionPerformed final JFileChooser folderChooser = new JFileChooser(); folderChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); folderChooser.setDialogTitle("Create project folder"); folderChooser.setDialogType(JFileChooser.SAVE_DIALOG); folderChooser.setApproveButtonText("Create"); folderChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); if (folderChooser.showSaveDialog(Main.getApplicationFrame()) == JFileChooser.APPROVE_OPTION) { final File file = folderChooser.getSelectedFile(); if (file.isDirectory()) { if (file.list().length > 0) { DialogProviderManager.getInstance().getDialogProvider().msgError(null, "File '" + file.getName() + "' already exists and non-empty!"); } else { prepareAndOpenProjectFolder(file); } } else if (file.mkdirs()) { prepareAndOpenProjectFolder(file); } else { LOGGER.error("Can't create folder : " + file); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't create folder: " + file); } } }//GEN-LAST:event_menuNewProjectActionPerformed
private void buttonExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExportActionPerformed final File toSave = DialogProviderManager.getInstance().getDialogProvider().msgSaveFileDialog(null, "note-editor", UiUtils.BUNDLE.getString("PlainTextEditor.buttonSaveActionPerformed.saveTitle"), null, true, TEXT_FILE_FILTER, "Save"); //NOI18N if (toSave != null) { try { final String text = getText(); FileUtils.writeStringToFile(toSave, text, "UTF-8"); //NOI18N } catch (Exception ex) { LOGGER.error("Error during text file saving", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, UiUtils.BUNDLE.getString("PlainTextEditor.buttonSaveActionPerformed.msgError")); } } }//GEN-LAST:event_buttonExportActionPerformed
private void menuSaveAllActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuSaveAllActionPerformed for (final TabTitle t : this.tabPane) { try { t.save(); } catch (IOException ex) { LOGGER.error("Can't save file", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't save document, may be it is read-only! See log!"); } } }//GEN-LAST:event_menuSaveAllActionPerformed
@Nullable public static FileEditPanel.DataContainer editFilePath(@Nonnull final String title, @Nullable final File projectFolder, @Nullable final FileEditPanel.DataContainer data) { final FileEditPanel filePathEditor = new FileEditPanel(projectFolder, data); filePathEditor.doLayout(); filePathEditor.setPreferredSize(new Dimension(450, filePathEditor.getPreferredSize().height)); FileEditPanel.DataContainer result = null; if (DialogProviderManager.getInstance().getDialogProvider().msgOkCancel(null, title, filePathEditor)) { result = filePathEditor.getData(); if (!result.isValid()) { DialogProviderManager.getInstance().getDialogProvider().msgError(null, String.format(BUNDLE.getString("MMDGraphEditor.editFileLinkForTopic.errorCantFindFile"), result.getFilePathWithLine().getPath())); result = null; } } return result; }
@Nullable public static MMapURI editURI(@Nonnull final String title, @Nullable final MMapURI uri) { final UriEditPanel textEditor = new UriEditPanel(uri == null ? null : uri.asString(false, false)); textEditor.doLayout(); textEditor.setPreferredSize(new Dimension(450, textEditor.getPreferredSize().height)); if (DialogProviderManager.getInstance().getDialogProvider().msgOkCancel(null, title, textEditor)) { final String text = textEditor.getText(); if (text.isEmpty()) { return EMPTY_URI; } try { return new MMapURI(text.trim()); } catch (URISyntaxException ex) { DialogProviderManager.getInstance().getDialogProvider().msgError(null, String.format(BUNDLE.getString("NbUtils.errMsgIllegalURI"), text)); return null; } } else { return null; } }
@Override public void actionPerformed(@Nonnull final ActionEvent e) { try { if (processor == null) { panel.removeAllSelection(); final MindMap map = doImport(panel, dialogProvider, actionTopic, selectedTopics); if (map != null) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { panel.setModel(map, false); panel.updateView(true); final Topic root = map.getRoot(); if (root != null) { panel.focusTo(root); } } }); } } else { processor.doJob(theInstance, panel, dialogProvider, actionTopic, selectedTopics); } } catch (Exception ex) { LOGGER.error("Error during map import", ex); //NOI18N dialogProvider.msgError(null, Texts.getString("MMDGraphEditor.makePopUp.errMsgCantImport")); } } });
private void buttonImportFromFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonImportFromFileActionPerformed final File file = DialogProviderManager.getInstance().getDialogProvider().msgOpenFileDialog(this, "importProperties", "Import settings", null, true, new PropertiesFileFilter(), "Open"); if (file != null) { try { load(new PropertiesPreferences("SciaReto", FileUtils.readFileToString(file, "UTF-8"))); } catch (final Exception ex) { LOGGER.error("Can't import settings", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't import settings [" + ex.getMessage() + ']'); } } }//GEN-LAST:event_buttonImportFromFileActionPerformed
@Override @Nullable public MindMap doImport(@Nonnull final MindMapPanel panel, @Nonnull final DialogProvider dialogProvider, @Nullable final Topic actionTopic, @Nonnull @MustNotContainNull final Topic[] selectedTopics) throws Exception { final File file = this.selectFileForExtension(panel, Texts.getString("MMDImporters.Mindmup2MindMap.openDialogTitle"), "mup", "Mindmup files (.MUP)", Texts.getString("MMDImporters.ApproveImport")); if (file == null) { return null; } final JSONObject parsedJson; parsedJson = new JSONObject(FileUtils.readFileToString(file, "UTF-8")); MindMap resultedMap = null; final Number formatVersion = parsedJson.getNumber("formatVersion"); if (formatVersion == null) { dialogProvider.msgError(null, Texts.getString("MMDImporters.Mindmup2MindMap.Error.WrongFormat")); } else { resultedMap = new MindMap(null, true); resultedMap.setAttribute(MindMapPanel.ATTR_SHOW_JUMPS, "true"); final Topic mindMapRoot = Assertions.assertNotNull(resultedMap.getRoot()); final Map<Long, Topic> mapTopicId = new HashMap<Long, Topic>(); parseTopic(resultedMap, null, mindMapRoot, parsedJson, mapTopicId); if (!mindMapRoot.getExtras().containsKey(Extra.ExtraType.FILE)) { mindMapRoot.setExtra(new ExtraFile(new MMapURI(null, file, null))); } if (parsedJson.has("links")) { final JSONArray links = parsedJson.getJSONArray("links"); processLinks(resultedMap, links, mapTopicId); } } return resultedMap; }
private void buttonExportToFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExportToFileActionPerformed File file = DialogProviderManager.getInstance().getDialogProvider().msgSaveFileDialog(this, "exportProperties", "Export settings", null, true, new PropertiesFileFilter(), "Save"); if (file != null) { if (!file.getName().toLowerCase(Locale.ENGLISH).endsWith(".properties")) { //NOI18N final Boolean addExt = DialogProviderManager.getInstance().getDialogProvider().msgConfirmYesNoCancel(this, "Add extension", "Add '.properties' extension?"); if (addExt == null) { return; } if (addExt) { file = new File(file.getAbsolutePath() + ".properties"); //NOI18N } } if (file.exists() && !DialogProviderManager.getInstance().getDialogProvider().msgConfirmOkCancel(this, "Override file", String.format("File %s exists, to override it?", file.getName()))) { return; } final PropertiesPreferences prefs = new PropertiesPreferences("SciaReto editor settings"); final MindMapPanelConfig cfg = fillBySettings(new MindMapPanelConfig(), prefs); cfg.saveTo(prefs); try { FileUtils.write(file, prefs.toString(), "UTF-8"); } catch (final Exception ex) { LOGGER.error("Can't export settings", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(this, "Can't export settings [" + ex.getMessage() + ']'); //NOI18N } } }//GEN-LAST:event_buttonExportToFileActionPerformed
private void menuSaveAsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuSaveAsActionPerformed final int index = this.tabPane.getSelectedIndex(); if (index >= 0) { try { ((TabTitle) this.tabPane.getTabComponentAt(index)).saveAs(); } catch (IOException ex) { LOGGER.error("Can't save file", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't save document, may be it is read-only! See log!"); } } }//GEN-LAST:event_menuSaveAsActionPerformed
private void menuSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuSaveActionPerformed final int index = this.tabPane.getSelectedIndex(); if (index >= 0) { try { ((TabTitle) this.tabPane.getTabComponentAt(index)).save(); } catch (IOException ex) { LOGGER.error("Can't save file", ex); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't save document, may be it is read-only! See log!"); } } }//GEN-LAST:event_menuSaveActionPerformed
@Override public void actionPerformed(@Nonnull final ActionEvent e) { try { if (processor == null) { final JComponent options = makeOptions(); if (options != null && !dialogProvider.msgOkCancel(null, getName(panel, actionTopic, selectedTopics), options)) { return; } doExport(panel, options, null); } else { processor.doJob(theInstance, panel, dialogProvider, actionTopic, selectedTopics); } } catch (Exception ex) { LOGGER.error("Error during map export", ex); //NOI18N dialogProvider.msgError(null, Texts.getString("MMDGraphEditor.makePopUp.errMsgCantExport")); } } });
} else { LOGGER.error("Can't find folder : " + folder); //NOI18N DialogProviderManager.getInstance().getDialogProvider().msgError(null, "Can't find project folder!");