private void removeSelection(boolean pAsk) { if (pAsk && JOptionPaneHelper.showQuestionConfirmBox( this, "Alle markierten Einträge und ihre untergeordneten Einträge löschen?", "Löschen", "Nein", "Ja") == JOptionPane.NO_OPTION) { return; } int cnt = 0; for (Village v : getSelectedElements()) { treeData.remove(v); cnt++; } buildTree(); showSuccess(((cnt == 1) ? "Dorf" : cnt + " Dörfer") + " gelöscht"); }
private void exportAsHTML() { List<Village> selection = getSelectedElements(); if (selection.isEmpty()) { showInfo("Keine Dörfer ausgewählt"); return; } // do HTML export String dir = GlobalOptions.getProperty("screen.dir"); if (dir == null) { dir = "."; } JFileChooser chooser = null; try { // handle vista problem chooser = new JFileChooser(dir); } catch (Exception e) { JOptionPaneHelper.showErrorBox( this, "Konnte Dateiauswahldialog nicht öffnen.\nMöglicherweise verwendest du Windows Vista. Ist dies der Fall, beende DS Workbench, klicke mit der rechten Maustaste auf DSWorkbench.exe,\n" + "wähle 'Eigenschaften' und deaktiviere dort unter 'Kompatibilität' den Windows XP Kompatibilitätsmodus.", "Fehler"); return; } chooser.setDialogTitle("Datei auswählen"); chooser.setFileFilter( new javax.swing.filechooser.FileFilter() { @Override public boolean accept(File f) { if ((f != null) && (f.isDirectory() || f.getName().endsWith(".html"))) { return true; } return false; } @Override public String getDescription() { return "*.html"; } }); // open dialog chooser.setSelectedFile(new File(dir + "/Dorfliste.html")); int ret = chooser.showSaveDialog(this); if (ret == JFileChooser.APPROVE_OPTION) { try { // check extension File f = chooser.getSelectedFile(); String file = f.getCanonicalPath(); if (!file.endsWith(".html")) { file += ".html"; } // check overwrite File target = new File(file); if (target.exists()) { if (JOptionPaneHelper.showQuestionConfirmBox( this, "Bestehende Datei überschreiben?", "Überschreiben", "Nein", "Ja") == JOptionPane.NO_OPTION) { // do not overwrite return; } } // do export SelectionHTMLExporter.doExport(target, selection); GlobalOptions.addProperty("screen.dir", target.getParent()); showSuccess("Auswahl erfolgreich gespeichert"); if (JOptionPaneHelper.showQuestionConfirmBox( this, "Willst du die erstellte Datei jetzt im Browser betrachten?", "Information", "Nein", "Ja") == JOptionPane.YES_OPTION) { BrowserCommandSender.openPage(target.toURI().toURL().toString()); } } catch (Exception inner) { logger.error("Failed to write selection to HTML", inner); showError("Fehler beim Speichern"); } } }
private void copyBBToExternalClipboardEvent() { try { List<Village> selection = getSelectedElements(); if (selection.isEmpty()) { showInfo("Keine Elemente ausgewählt"); return; } boolean extended = (JOptionPaneHelper.showQuestionConfirmBox( this, "Erweiterte BB-Codes verwenden (nur für Forum und Notizen geeignet)?", "Erweiterter BB-Code", "Nein", "Ja") == JOptionPane.YES_OPTION); StringBuilder buffer = new StringBuilder(); if (extended) { buffer.append("[u][size=12]Dorfliste[/size][/u]\n\n"); } else { buffer.append("[u]Dorfliste[/u]\n\n"); } buffer.append(new VillageListFormatter().formatElements(selection, extended)); if (extended) { buffer.append("\n[size=8]Erstellt am "); buffer.append( new SimpleDateFormat("dd.MM.yy 'um' HH:mm:ss") .format(Calendar.getInstance().getTime())); buffer.append(" mit [url=\"http://www.dsworkbench.de/index.php?id=23\"]DS Workbench "); buffer.append(Constants.VERSION).append(Constants.VERSION_ADDITION + "[/url][/size]\n"); } else { buffer.append("\nErstellt am "); buffer.append( new SimpleDateFormat("dd.MM.yy 'um' HH:mm:ss") .format(Calendar.getInstance().getTime())); buffer.append(" mit [url=\"http://www.dsworkbench.de/index.php?id=23\"]DS Workbench "); buffer.append(Constants.VERSION).append(Constants.VERSION_ADDITION + "[/url]\n"); } String b = buffer.toString(); StringTokenizer t = new StringTokenizer(b, "["); int cnt = t.countTokens(); if (cnt > 1000) { if (JOptionPaneHelper.showQuestionConfirmBox( this, "Die ausgewählten Dörfer benötigen mehr als 1000 BB-Codes\n" + "und können daher im Spiel (Forum/IGM/Notizen) nicht auf einmal dargestellt werden.\nTrotzdem exportieren?", "Zu viele BB-Codes", "Nein", "Ja") == JOptionPane.NO_OPTION) { return; } } Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(b), null); showSuccess("Daten in Zwischenablage kopiert"); } catch (Exception e) { logger.error("Failed to copy data to clipboard", e); showError("Fehler beim Kopieren in die Zwischenablage"); } }