X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fgui%2FProjectInsertPage.java;h=c871261063040942599b4dcc1ac2a60acd13eead;hb=5c29aa2ec7fb5d4e362636d0e25c422668702f26;hp=1c7089ddb2d8f912f461590a73b0bd2c82998809;hpb=e44d6888ffaa3151a99b9bb7cb3c887d11feb596;p=jSite.git diff --git a/src/de/todesbaum/jsite/gui/ProjectInsertPage.java b/src/de/todesbaum/jsite/gui/ProjectInsertPage.java index 1c7089d..c871261 100644 --- a/src/de/todesbaum/jsite/gui/ProjectInsertPage.java +++ b/src/de/todesbaum/jsite/gui/ProjectInsertPage.java @@ -20,6 +20,7 @@ package de.todesbaum.jsite.gui; import java.awt.BorderLayout; +import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; @@ -50,36 +51,44 @@ import de.todesbaum.jsite.application.InsertListener; 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.swing.TWizard; import de.todesbaum.util.swing.TWizardPage; /** - * @author David Roden <droden@gmail.com> - * @version $Id$ + * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ public class ProjectInsertPage extends TWizardPage implements InsertListener, ClipboardOwner { - protected TWizard wizard; - protected ProjectInserter projectInserter; + private ProjectInserter projectInserter; - protected Action copyURIAction; - protected JTextField requestURITextField; - protected JLabel startTimeLabel; - protected JProgressBar progressBar; - protected long startTime; + private Action copyURIAction; + private JTextField requestURITextField; + private JLabel startTimeLabel; + private JProgressBar progressBar; + private long startTime = 0; - public ProjectInsertPage() { - super(); + public ProjectInsertPage(final TWizard wizard) { + super(wizard); createActions(); pageInit(); setHeading(I18n.getMessage("jsite.insert.heading")); setDescription(I18n.getMessage("jsite.insert.description")); + I18nContainer.getInstance().registerRunnable(new Runnable() { + + public void run() { + setHeading(I18n.getMessage("jsite.insert.heading")); + setDescription(I18n.getMessage("jsite.insert.description")); + } + }); projectInserter = new ProjectInserter(); projectInserter.addInsertListener(this); } - + private void createActions() { copyURIAction = new AbstractAction(I18n.getMessage("jsite.project.action.copy-uri")) { + + @SuppressWarnings("synthetic-access") public void actionPerformed(ActionEvent actionEvent) { actionCopyURI(); } @@ -87,6 +96,15 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl copyURIAction.putValue(Action.SHORT_DESCRIPTION, I18n.getMessage("jsite.project.action.copy-uri.tooltip")); copyURIAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_U); copyURIAction.setEnabled(false); + + I18nContainer.getInstance().registerRunnable(new Runnable() { + + @SuppressWarnings("synthetic-access") + public void run() { + copyURIAction.putValue(Action.NAME, I18n.getMessage("jsite.project.action.copy-uri")); + copyURIAction.putValue(Action.SHORT_DESCRIPTION, I18n.getMessage("jsite.project.action.copy-uri.tooltip")); + } + }); } private void pageInit() { @@ -106,15 +124,35 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl progressBar.setStringPainted(true); progressBar.setValue(0); - projectInsertPanel.add(new JLabel("" + I18n.getMessage("jsite.insert.project-information") + ""), new GridBagConstraints(0, 0, 2, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); - projectInsertPanel.add(new JLabel(I18n.getMessage("jsite.insert.request-uri") + ":"), new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 18, 0, 0), 0, 0)); + final JLabel projectInformationLabel = new JLabel("" + I18n.getMessage("jsite.insert.project-information") + ""); + projectInsertPanel.add(projectInformationLabel, new GridBagConstraints(0, 0, 2, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); + final JLabel requestURILabel = new JLabel(I18n.getMessage("jsite.insert.request-uri") + ":"); + projectInsertPanel.add(requestURILabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 18, 0, 0), 0, 0)); projectInsertPanel.add(requestURITextField, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 6, 0, 0), 0, 0)); - projectInsertPanel.add(new JLabel(I18n.getMessage("jsite.insert.start-time") + ":"), new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 18, 0, 0), 0, 0)); + final JLabel startTimeLeftLabel = new JLabel(I18n.getMessage("jsite.insert.start-time") + ":"); + projectInsertPanel.add(startTimeLeftLabel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 18, 0, 0), 0, 0)); projectInsertPanel.add(startTimeLabel, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 6, 0, 0), 0, 0)); - projectInsertPanel.add(new JLabel(I18n.getMessage("jsite.insert.progress") + ":"), new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 18, 0, 0), 0, 0)); + final JLabel progressLabel = new JLabel(I18n.getMessage("jsite.insert.progress") + ":"); + projectInsertPanel.add(progressLabel, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 18, 0, 0), 0, 0)); projectInsertPanel.add(progressBar, new GridBagConstraints(1, 3, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(6, 6, 0, 0), 0, 0)); projectInsertPanel.add(new JButton(copyURIAction), new GridBagConstraints(0, 4, 2, 1, 0.0, 0.0, GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(6, 18, 0, 0), 0, 0)); + I18nContainer.getInstance().registerRunnable(new Runnable() { + + @SuppressWarnings("synthetic-access") + public void run() { + projectInformationLabel.setText("" + I18n.getMessage("jsite.insert.project-information") + ""); + requestURILabel.setText(I18n.getMessage("jsite.insert.request-uri") + ":"); + startTimeLeftLabel.setText(I18n.getMessage("jsite.insert.start-time") + ":"); + if (startTime != 0) { + startTimeLabel.setText(DateFormat.getDateTimeInstance().format(new Date(startTime))); + } else { + startTimeLabel.setText(""); + } + progressLabel.setText(I18n.getMessage("jsite.insert.progress") + ":"); + } + }); + return projectInsertPanel; } @@ -123,12 +161,18 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl */ @Override public void pageAdded(TWizard wizard) { - this.wizard = wizard; - wizard.setPreviousEnabled(false); + this.wizard.setPreviousName(I18n.getMessage("jsite.wizard.previous")); + this.wizard.setPreviousEnabled(false); + this.wizard.setNextName(I18n.getMessage("jsite.wizard.next")); + this.wizard.setQuitName(I18n.getMessage("jsite.wizard.quit")); + } + + public void startInsert() { wizard.setNextEnabled(false); - wizard.setQuitEnabled(false); copyURIAction.setEnabled(false); progressBar.setValue(0); + progressBar.setString(I18n.getMessage("jsite.insert.starting")); + progressBar.setFont(progressBar.getFont().deriveFont(Font.PLAIN)); projectInserter.start(); } @@ -148,12 +192,13 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl projectInserter.setProject(project); SwingUtilities.invokeLater(new Runnable() { + @SuppressWarnings("synthetic-access") public void run() { - requestURITextField.setText(project.getFinalRequestURI(0)); + requestURITextField.setText(project.getFinalRequestURI(1)); } }); } - + public void setFreenetInterface(Freenet7Interface freenetInterface) { projectInserter.setFreenetInterface(freenetInterface); } @@ -169,17 +214,20 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl startTime = System.currentTimeMillis(); SwingUtilities.invokeLater(new Runnable() { + @SuppressWarnings("synthetic-access") public void run() { startTimeLabel.setText(DateFormat.getDateTimeInstance().format(new Date(startTime))); } }); } - + /** * {@inheritDoc} */ public void projectURIGenerated(Project project, final String uri) { SwingUtilities.invokeLater(new Runnable() { + + @SuppressWarnings("synthetic-access") public void run() { copyURIAction.setEnabled(true); requestURITextField.setText(uri); @@ -193,9 +241,19 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl public void projectInsertProgress(Project project, final int succeeded, final int failed, final int fatal, final int total, final boolean finalized) { SwingUtilities.invokeLater(new Runnable() { + @SuppressWarnings("synthetic-access") public void run() { progressBar.setMaximum(total); progressBar.setValue(succeeded + failed + fatal); + int progress = (succeeded + failed + fatal) * 100 / total; + StringBuilder progressString = new StringBuilder(); + progressString.append(progress).append("% ("); + progressString.append(succeeded + failed + fatal).append("/").append(total); + progressString.append(")"); + progressBar.setString(progressString.toString()); + if (finalized) { + progressBar.setFont(progressBar.getFont().deriveFont(Font.BOLD)); + } } }); } @@ -215,19 +273,21 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl } SwingUtilities.invokeLater(new Runnable() { + @SuppressWarnings("synthetic-access") public void run() { progressBar.setValue(progressBar.getMaximum()); + progressBar.setString(I18n.getMessage("jsite.insert.done")); wizard.setNextEnabled(true); wizard.setQuitEnabled(true); } }); } - + // // ACTIONS // - - protected void actionCopyURI() { + + private void actionCopyURI() { Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(new StringSelection(requestURITextField.getText()), this); } @@ -235,7 +295,7 @@ public class ProjectInsertPage extends TWizardPage implements InsertListener, Cl // // INTERFACE ClipboardOwner // - + /** * {@inheritDoc} */