109 строки
4.0 KiB
Java
109 строки
4.0 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.
|
|
*/
|
|
|
|
package grendel;
|
|
|
|
import java.io.File;
|
|
|
|
import java.util.Properties;
|
|
|
|
import javax.mail.Folder;
|
|
import javax.mail.Message;
|
|
import javax.mail.MessagingException;
|
|
import javax.mail.Session;
|
|
|
|
import calypso.util.Preferences;
|
|
import calypso.util.PreferencesFactory;
|
|
|
|
import grendel.storage.BerkeleyStore;
|
|
import grendel.storage.MessageExtra;
|
|
|
|
import grendel.ui.MessageDisplayManager;
|
|
import grendel.ui.MultiMessageDisplayManager;
|
|
import grendel.ui.UnifiedMessageDisplayManager;
|
|
import grendel.ui.DialogAuthenticator;
|
|
|
|
/**
|
|
* This launches the Grendel GUI.
|
|
*/
|
|
|
|
public class Main {
|
|
static MessageDisplayManager fManager;
|
|
|
|
public static void main(String argv[]) throws MessagingException {
|
|
Preferences prefs = PreferencesFactory.Get();
|
|
String pref = prefs.getString("mail.layout", "multi_pane");
|
|
Properties props = new Properties();
|
|
File mailDir;
|
|
// I'm borrowing pretty heavily from jwz's TestFolderViewer here,
|
|
// I may change this later, then again, I may not... (talisman)
|
|
|
|
if (prefs.getString("mail.directory", "") == "") {
|
|
// get the operating system in use and Do The Right Thing(tm)
|
|
if (System.getProperty("os.name").substring(0, 6).equals("Windows")) {
|
|
File userHome = new File(System.getProperty("user.dir"));
|
|
mailDir = new File(userHome, "grndlmail");
|
|
} else if (System.getProperty("os.name").equals("Mac OS")) {
|
|
File userHome = new File(System.getProperty("user.dir"));
|
|
mailDir = new File(userHome, "grndlmail");
|
|
// Need to find out for sure what OS/2 reports as "os.name"
|
|
// and add a sub for OS/2 (talisman)
|
|
} else if (System.getProperty("os.name").equals("OS/2")) {
|
|
File userHome = new File(System.getProperty("user.dir"));
|
|
mailDir = new File(userHome, "grndlmail");
|
|
} else { // if we're not Win or Mac, assume some kind of unix
|
|
File userHome = new File(System.getProperty("user.home"));
|
|
mailDir = new File(userHome, "grndlmail");
|
|
}
|
|
|
|
if (!mailDir.exists()) {
|
|
if (mailDir.mkdir()) {
|
|
//success; put the mail directory in the prefs (talisman)
|
|
prefs.putString("mail.directory", mailDir.getPath());
|
|
}
|
|
} else {
|
|
prefs.putString("mail.directory", mailDir.getPath());
|
|
}
|
|
}
|
|
props.put("mail.directory", prefs.getString("mail.directory", ""));
|
|
System.out.println(props.get("mail.directory"));
|
|
|
|
// JavaMail's smtp-transport needs to know where it has to deliver it's e-mails.
|
|
// I'm not sure this belongs here, but for now, it works.
|
|
props.put("mail.host", prefs.getString("mail.smtp.host", "localhost"));
|
|
|
|
Session session = Session.getDefaultInstance(props, new DialogAuthenticator());
|
|
System.out.println(session);
|
|
BerkeleyStore store = new BerkeleyStore(session);
|
|
System.out.println(store);
|
|
// Folder folder = store.getDefaultFolder().getFolder("Inbox");
|
|
Folder folder = store.getDefaultFolder();
|
|
|
|
if (pref.equals("multi_pane")) {
|
|
fManager = new UnifiedMessageDisplayManager();
|
|
} else {
|
|
fManager = new MultiMessageDisplayManager();
|
|
}
|
|
MessageDisplayManager.SetDefaultManager(fManager);
|
|
// fManager.displayMaster();
|
|
fManager.displayMaster(folder.getFolder("Inbox"));
|
|
}
|
|
}
|
|
|