зеркало из https://github.com/mozilla/pjs.git
202 строки
5.2 KiB
Java
202 строки
5.2 KiB
Java
/* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License
|
|
* Version 1.0 (the "License"); you may not use this file except in
|
|
* compliance with the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS"
|
|
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
|
* the License for the specific language governing rights and limitations
|
|
* under the License.
|
|
*
|
|
* The Original Code is the Grendel mail/news client.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape Communications
|
|
* Corporation. Portions created by Netscape are Copyright (C) 1997
|
|
* Netscape Communications Corporation. All Rights Reserved.
|
|
*
|
|
* Created: Will Scullin <scullin@netscape.com>, 17 Nov 1997.
|
|
*/
|
|
|
|
package grendel.ui;
|
|
|
|
import java.awt.Frame;
|
|
import java.text.MessageFormat;
|
|
import java.util.ResourceBundle;
|
|
import java.util.Vector;
|
|
|
|
import javax.mail.Flags;
|
|
import javax.mail.Folder;
|
|
import javax.mail.Message;
|
|
import javax.mail.MessagingException;
|
|
|
|
public class ProgressFactory {
|
|
static Frame fNewMailFrame = null;
|
|
|
|
public static synchronized Frame NewMailProgress() {
|
|
if (fNewMailFrame == null) {
|
|
fNewMailFrame = new NewMailProgress();
|
|
} else {
|
|
fNewMailFrame.toFront();
|
|
}
|
|
return fNewMailFrame;
|
|
}
|
|
|
|
public static Frame CopyMessagesProgress(Vector aMessages, Folder aDest) {
|
|
return new CopyMessageProgress(aMessages, aDest);
|
|
}
|
|
|
|
public static Frame MoveMessagesProgress(Vector aMessages, Folder aDest) {
|
|
return new MoveMessageProgress(aMessages, aDest);
|
|
}
|
|
|
|
public static Frame DeleteMessagesProgress(Vector aMessages) {
|
|
return new DeleteMessageProgress(aMessages);
|
|
}
|
|
}
|
|
|
|
class NewMailProgress extends ProgressFrame {
|
|
public NewMailProgress() {
|
|
super("newMailProgressLabel");
|
|
|
|
start();
|
|
}
|
|
|
|
public void progressLoop() {
|
|
// ### Stubbing out all maildrop stuff for now...
|
|
// Enumeration maildrops = MasterFactory.Get().getMailDrops();
|
|
// while (maildrops.hasMoreElements() && !isCanceled()) {
|
|
// MailDrop maildrop = (MailDrop) maildrops.nextElement();
|
|
// Object args[] = {};
|
|
// setStatus(MessageFormat.format(fLabels.getString("newMailStatus"),
|
|
// args));
|
|
// try {
|
|
// maildrop.fetchNewMail();
|
|
// } catch (IOException e) {
|
|
// System.err.println("NewMailAction: " + e);
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
|
|
//
|
|
// CopyMessageProgress class
|
|
//
|
|
|
|
class CopyMessageProgress extends ProgressFrame {
|
|
Vector fMessages;
|
|
Folder fDest;
|
|
|
|
CopyMessageProgress(Vector aMessages, Folder aDest) {
|
|
super("copyingMessageLabel");
|
|
|
|
fMessages = aMessages;
|
|
fDest = aDest;
|
|
|
|
setMax(aMessages.size());
|
|
|
|
start();
|
|
}
|
|
|
|
public void progressLoop() {
|
|
int idx = 0;
|
|
|
|
while (idx < fMessages.size() && !isCanceled()) {
|
|
Message message = (Message) fMessages.elementAt(idx);
|
|
Object args[] = {Util.GetSubject(message),
|
|
fDest.getName()};
|
|
setStatus(MessageFormat.format(fLabels.getString("copyingMessageStatus"),
|
|
args));
|
|
try {
|
|
Message mlist[] = { message };
|
|
fDest.appendMessages(mlist);
|
|
} catch (MessagingException e) {
|
|
System.err.println("CopyMessageProgress: " + e);
|
|
}
|
|
idx++;
|
|
setProgress(idx);
|
|
}
|
|
}
|
|
}
|
|
|
|
//
|
|
// MoveMessageProgress class
|
|
//
|
|
|
|
class MoveMessageProgress extends ProgressFrame {
|
|
Vector fMessages;
|
|
Folder fDest;
|
|
|
|
MoveMessageProgress(Vector aMessages, Folder aDest) {
|
|
super("movingMessageLabel");
|
|
|
|
fMessages = aMessages;
|
|
fDest = aDest;
|
|
|
|
setMax(aMessages.size());
|
|
|
|
start();
|
|
}
|
|
|
|
public void progressLoop() {
|
|
int idx = 0;
|
|
|
|
while (idx < fMessages.size() && !isCanceled()) {
|
|
Message message = (Message) fMessages.elementAt(idx);
|
|
Object args[] = {Util.GetSubject(message),
|
|
fDest.getName()};
|
|
setStatus(MessageFormat.format(fLabels.getString("movingMessageStatus"),
|
|
args));
|
|
try {
|
|
Message mlist[] = { message };
|
|
fDest.appendMessages(mlist);
|
|
message.setFlags(Flags.DeletedFlag, true);
|
|
} catch (MessagingException e) {
|
|
System.err.println("DeleteMessageProgress: " + e);
|
|
}
|
|
idx++;
|
|
setProgress(idx);
|
|
}
|
|
}
|
|
}
|
|
|
|
//
|
|
// DeleteMessageProgress class
|
|
//
|
|
|
|
class DeleteMessageProgress extends ProgressFrame {
|
|
Vector fMessages;
|
|
|
|
DeleteMessageProgress(Vector aMessages) {
|
|
super("deletingMessageLabel");
|
|
|
|
fMessages = aMessages;
|
|
setMax(aMessages.size());
|
|
|
|
start();
|
|
}
|
|
|
|
public void progressLoop() {
|
|
int idx = 0;
|
|
|
|
while (idx < fMessages.size() && !isCanceled()) {
|
|
Message message = (Message) fMessages.elementAt(idx);
|
|
Folder source = message.getFolder();
|
|
|
|
Object args[] = {Util.GetSubject(message)};
|
|
|
|
setStatus(MessageFormat.format(fLabels.getString("deletingMessageStatus"),
|
|
args));
|
|
// source.deleteMessage(message);
|
|
try {
|
|
Thread.sleep(500);
|
|
} catch (InterruptedException e) {
|
|
}
|
|
idx++;
|
|
setProgress(idx);
|
|
}
|
|
}
|
|
}
|
|
|