📄 dixie.java
字号:
dixieProps = StringTools.loadProps( dixiePropsString );
setTitle( versionString );
setIconImage( Toolkit.getDefaultToolkit().getImage( iconName ) );
addWindowListener( this );
// Create the menu bar
menu = new MenuBar();
// Monitor menu **********************************************
subMenu = new Menu( getString( monitorProp ) );
menu.add( subMenu );
// Clear log
temp = new MenuItem( getString( clearLogProp ) );
temp.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
f.clearLog();
}
} ); // End of clear log anonymous class
subMenu.add( temp );
// Debug checkbox
debugBox = new CheckboxMenuItem( getString( debugProp ) );
debugBox.addItemListener( new ItemListener()
{
public void itemStateChanged( ItemEvent e )
{
boolean state = debugBox.getState();
mailTask.setDebug( state );
popTask.setDebug( state );
passTask.setDebug( state );
write( getString( debugProp )+" = "+state );
}
} ); // End of debug check box anonymous class
subMenu.add( debugBox );
// Monitor connect check box
monitorBox = new CheckboxMenuItem( getString( monitorConnectProp ) );
monitorBox.addItemListener( new ItemListener()
{
public void itemStateChanged( ItemEvent e )
{
boolean state = monitorBox.getState();
mailTask.setMonitorConnect( state );
popTask.setMonitorConnect( state );
passTask.setMonitorConnect( state );
write( getString( monitorConnectProp )+" = "+state );
}
} ); // End of monitor check box anonymous class
subMenu.add( monitorBox );
// Add Options Menu
subMenu = new Menu( getString( optionsProp ) );
// Show splash screen
temp = new MenuItem( getString( showSplashScreenProp ) );
temp.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
new Splash();
}
} );
subMenu.add( temp );
// Display status
temp = new MenuItem( getString( hideMainWindowProp ) );
temp.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
showMainWindow( false );
}
} );
subMenu.add( temp );
menu.add( subMenu );
this.setMenuBar( menu );
f = new MainDialog();
new Splash();
add( f );
pack();
center();
show();
Letters.load();
try
{
wout = new FileWriter( "mail.log", false );
}
catch( java.io.IOException e )
{
write("Could not open log file");
}
f.append( versionString + " - " + authorString + " - " +
homepageString );
/** Set user defined variables **/
configuration.OutgoingServer = dixieProps.getProperty( outgoingName, nullProperty );
configuration.ServedDomains = dixieProps.getProperty( servedDomainsName, nullProperty );
configuration.versionString = versionString;
configuration.homepageString = homepageString;
/** Start the servers **/
mailTask = new SmtpServer( this );
popTask = new Pop3Server( this );
passTask = new EpassServer( this );
wwwTask = new WWWServer( this );
}
/**
Writes data to the mail.log file
**/
public void write( String data )
{
if ( debugDixie )
{
f.append( (new Date()).toString() + " " + data );
}
try
{
wout.write( (new Date()).toString() + " " + data + "\n" );
wout.flush();
}
catch( java.io.IOException e )
{
f.append( (new Date()).toString() +
" Could not write to log file" );
}
}
public boolean getActive( int server )
{
boolean retval = false; // Anything else is stopped
switch ( server )
{
case DM_WWW:
retval = !wwwTask.stopped;
break;
case DM_SMTP:
retval = !mailTask.stopped;
break;
case DM_POP3:
retval = !popTask.stopped;
break;
case DM_PASS:
retval = !passTask.stopped;
break;
}
return retval;
}
public void setActive( int server, boolean active )
{
if ( active )
{
switch ( server )
{
case DM_WWW:
wwwTask.startServer();
break;
case DM_SMTP:
mailTask.startServer();
break;
case DM_POP3:
popTask.startServer();
break;
case DM_PASS:
passTask.startServer();
break;
}
}
else
{
switch ( server )
{
case DM_WWW:
wwwTask.stopServer();
break;
case DM_SMTP:
mailTask.stopServer();
break;
case DM_POP3:
popTask.stopServer();
break;
case DM_PASS:
passTask.stopServer();
break;
}
}
}
/**
Starts the Smtp, Pop3, WWW, and Password Servers.
Note that servers generally start automatically when created, so
the constructor should take care of this the first time.
**/
public void start()
{
mailTask.startServer();
popTask.startServer();
passTask.startServer();
wwwTask.startServer();
}
/**
Stops the Smtp, Pop3, and Password Servers
**/
public void stop()
{
write( "Stopping DixieMail Server..." );
mailTask.stopServer();
popTask.stopServer();
passTask.stopServer();
wwwTask.stopServer();
while ( !mailTask.stopped ||
!popTask.stopped ||
!passTask.stopped ||
!wwwTask.stopped )
{
try
{
Thread.sleep( 100 );
}
catch ( java.lang.InterruptedException e )
{
}
}
}
public void windowClosing( WindowEvent e )
{
stop();
this.setVisible( false );
System.exit(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -