X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fgui%2FProjectInsertPage.java;h=08d63f673442dbe0b3bd69b893ce95aeaddcb234;hb=8bc7a8f2372639a9fbeea34f9cbee9697f34ba3f;hp=2e9286eca9f4e3f6bf5b0c9d0f8775026762f1b1;hpb=499b69a5e2b67b7e55adb5774b7e0268f5cb1943;p=jSite.git diff --git a/src/de/todesbaum/jsite/gui/ProjectInsertPage.java b/src/de/todesbaum/jsite/gui/ProjectInsertPage.java index 2e9286e..08d63f6 100644 --- a/src/de/todesbaum/jsite/gui/ProjectInsertPage.java +++ b/src/de/todesbaum/jsite/gui/ProjectInsertPage.java @@ -1,6 +1,5 @@ /* - * jSite - a tool for uploading websites into Freenet - * Copyright (C) 2006 David Roden + * jSite - ProjectInsertPage.java - Copyright © 2006–2012 David Roden * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -55,6 +54,9 @@ import de.todesbaum.jsite.application.Project; import de.todesbaum.jsite.application.ProjectInserter; import de.todesbaum.jsite.i18n.I18n; import de.todesbaum.jsite.i18n.I18nContainer; +import de.todesbaum.util.freenet.fcp2.ClientPutDir.ManifestPutter; +import de.todesbaum.util.freenet.fcp2.PriorityClass; +import de.todesbaum.util.io.StreamCopier.ProgressListener; import de.todesbaum.util.swing.TWizard; import de.todesbaum.util.swing.TWizardPage; @@ -109,6 +111,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl setDescription(I18n.getMessage("jsite.insert.description")); I18nContainer.getInstance().registerRunnable(new Runnable() { + @Override public void run() { setHeading(I18n.getMessage("jsite.insert.heading")); setDescription(I18n.getMessage("jsite.insert.description")); @@ -124,6 +127,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl private void createActions() { copyURIAction = new AbstractAction(I18n.getMessage("jsite.project.action.copy-uri")) { + @Override @SuppressWarnings("synthetic-access") public void actionPerformed(ActionEvent actionEvent) { actionCopyURI(); @@ -135,6 +139,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl I18nContainer.getInstance().registerRunnable(new Runnable() { + @Override @SuppressWarnings("synthetic-access") public void run() { copyURIAction.putValue(Action.NAME, I18n.getMessage("jsite.project.action.copy-uri")); @@ -183,6 +188,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl I18nContainer.getInstance().registerRunnable(new Runnable() { + @Override @SuppressWarnings("synthetic-access") public void run() { projectInformationLabel.setText("" + I18n.getMessage("jsite.insert.project-information") + ""); @@ -220,7 +226,29 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl progressBar.setValue(0); progressBar.setString(I18n.getMessage("jsite.insert.starting")); progressBar.setFont(progressBar.getFont().deriveFont(Font.PLAIN)); - projectInserter.start(); + projectInserter.start(new ProgressListener() { + + @Override + public void onProgress(final long copied, final long length) { + SwingUtilities.invokeLater(new Runnable() { + + /** + * {@inheritDoc} + */ + @Override + @SuppressWarnings("synthetic-access") + public void run() { + int divisor = 1; + while (((copied / divisor) > Integer.MAX_VALUE) || ((length / divisor) > Integer.MAX_VALUE)) { + divisor *= 10; + } + progressBar.setMaximum((int) (length / divisor)); + progressBar.setValue((int) (copied / divisor)); + progressBar.setString("Uploaded: " + copied + " / " + length); + } + }); + } + }); } /** @@ -253,6 +281,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl projectInserter.setProject(project); SwingUtilities.invokeLater(new Runnable() { + @Override @SuppressWarnings("synthetic-access") public void run() { requestURITextField.setText(project.getFinalRequestURI(1)); @@ -292,6 +321,38 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl return uriCopied; } + /** + * Sets whether to use the “early encode“ flag for the insert. + * + * @param useEarlyEncode + * {@code true} to set the “early encode” flag for the insert, + * {@code false} otherwise + */ + public void setUseEarlyEncode(boolean useEarlyEncode) { + projectInserter.setUseEarlyEncode(useEarlyEncode); + } + + /** + * Sets the insert priority. + * + * @param priority + * The insert priority + */ + public void setPriority(PriorityClass priority) { + projectInserter.setPriority(priority); + } + + /** + * Sets the manifest putter to use for the insert. + * + * @see ProjectInserter#setManifestPutter(ManifestPutter) + * @param manifestPutter + * The manifest putter + */ + public void setManifestPutter(ManifestPutter manifestPutter) { + projectInserter.setManifestPutter(manifestPutter); + } + // // INTERFACE InsertListener // @@ -299,10 +360,12 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl /** * {@inheritDoc} */ + @Override public void projectInsertStarted(final Project project) { SwingUtilities.invokeLater(new Runnable() { + @Override @SuppressWarnings("synthetic-access") public void run() { startTimeLabel.setText(DateFormat.getDateTimeInstance().format(new Date())); @@ -313,16 +376,28 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl /** * {@inheritDoc} */ + @Override public void projectUploadFinished(Project project) { startTime = System.currentTimeMillis(); + SwingUtilities.invokeLater(new Runnable() { + + @Override + @SuppressWarnings("synthetic-access") + public void run() { + progressBar.setString(I18n.getMessage("jsite.insert.starting")); + progressBar.setValue(0); + } + }); } /** * {@inheritDoc} */ + @Override public void projectURIGenerated(Project project, final String uri) { SwingUtilities.invokeLater(new Runnable() { + @Override @SuppressWarnings("synthetic-access") public void run() { copyURIAction.setEnabled(true); @@ -353,12 +428,17 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl /** * {@inheritDoc} */ + @Override public void projectInsertProgress(Project project, final int succeeded, final int failed, final int fatal, final int total, final boolean finalized) { insertedBlocks = succeeded; SwingUtilities.invokeLater(new Runnable() { + @Override @SuppressWarnings("synthetic-access") public void run() { + if (total == 0) { + return; + } progressBar.setMaximum(total); progressBar.setValue(succeeded + failed + fatal); int progress = (succeeded + failed + fatal) * 100 / total; @@ -379,6 +459,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl /** * {@inheritDoc} */ + @Override public void projectInsertFinished(Project project, boolean success, Throwable cause) { running = false; if (success) { @@ -400,6 +481,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl } SwingUtilities.invokeLater(new Runnable() { + @Override @SuppressWarnings("synthetic-access") public void run() { progressBar.setValue(progressBar.getMaximum()); @@ -434,7 +516,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl * The number of fractional digits * @return The formatted number */ - private String formatNumber(double number, int digits) { + private static String formatNumber(double number, int digits) { int multiplier = (int) Math.pow(10, digits); String formattedNumber = String.valueOf((int) (number * multiplier) / (double) multiplier); if (formattedNumber.indexOf('.') == -1) { @@ -462,6 +544,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl /** * {@inheritDoc} */ + @Override public void lostOwnership(Clipboard clipboard, Transferable contents) { /* ignore. */ }