📄 mbreakwindow.java
字号:
package net.jumperz.app.MDoorman.windows;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import java.io.*;
import java.util.*;
import java.util.regex.*;
import net.jumperz.app.MDoorman.*;
import net.jumperz.util.*;
public class MBreakWindow
extends MWindow
{
private static final String WINDOW_NAME = "Break";
public static final int WINDOW_STYLE = SWT.CLOSE | SWT.RESIZE | SWT.APPLICATION_MODAL;
private Button okButton, cancelButton, caseButton;
private Text nameText, patternText;
private Label caseLabel;
private int action;
private MBreak _break;
private Combo typeCombo;
// --------------------------------------------------------------------------------
public MBreakWindow()
{
super( WINDOW_NAME, new Shell( MDoorman.getInstance().mainShell, WINDOW_STYLE ) );
action = ACTION_ADD;
}
// --------------------------------------------------------------------------------
public MBreakWindow( MBreak _break )
{
super( WINDOW_NAME, new Shell( MDoorman.getInstance().mainShell, WINDOW_STYLE ) );
this._break = _break;
action = ACTION_EDIT;
nameText.setText( _break.getName() );
patternText.setText( _break.getPattern() );
typeCombo.select( _break.getType() );
caseButton.setSelection( _break.isIgnoreCase() );
}
// --------------------------------------------------------------------------------
public int getAction()
{
return action;
}
// --------------------------------------------------------------------------------
public void setAction( int i )
{
action = i;
}
// --------------------------------------------------------------------------------
protected void init2()
{
permanent = false;
windowValue = new int[]{ 200, 300, 100, 500 };
shell.addListener( SWT.Activate, this );
FormData d1 = new FormData();
d1.left = new FormAttachment( 0, LABEL1_LEFT );
d1.top = new FormAttachment( 0, LABEL1_TOP );
Label label1 = new Label( shell, SWT.NONE );
label1.setText( "Name :" );
label1.pack();
label1.setLayoutData( d1 );
FormData d4 = new FormData();
d4.left = new FormAttachment( 0, LABEL2_LEFT );
d4.top = new FormAttachment( 0, LABEL2_TOP );
Label label2 = new Label( shell, SWT.NONE );
label2.setText( "Pattern :" );
label2.pack();
label2.setLayoutData( d4 );
okButton = new Button( shell, SWT.PUSH );
okButton.setLayoutData( buttonFormData1 );
okButton.setText( "&OK" );
okButton.setEnabled( false );
okButton.addListener( SWT.Selection, this );
cancelButton = new Button( shell, SWT.PUSH );
cancelButton.setLayoutData( buttonFormData2 );
cancelButton.setText( "&Cancel" );
cancelButton.addListener( SWT.Selection, this );
nameText = new Text( shell, SWT.BORDER );
FormData d2 = new FormData();
d2.left = new FormAttachment( 0, 85 );
d2.right = new FormAttachment( 100, -50 );
d2.top = new FormAttachment( 0, 20 );
nameText.setLayoutData( d2 );
nameText.addListener( SWT.Modify, this );
patternText = new Text( shell, SWT.BORDER );
FormData d3 = new FormData();
d3.left = new FormAttachment( 0, 85 );
d3.right = new FormAttachment( 100, -30 );
d3.top = new FormAttachment( 0, 50 );
patternText.setLayoutData( d3 );
patternText.addListener( SWT.Modify, this );
caseButton = new Button( shell, SWT.CHECK );
FormData d5 = new FormData();
d5.left = new FormAttachment( 0, 90 );
d5.top = new FormAttachment( 0, 80 );
caseButton.setLayoutData( d5 );
caseLabel = new Label( shell, SWT.NONE );
caseLabel.setText( "Ignore case" );
FormData d6 = new FormData();
d6.left = new FormAttachment( 0, 110 );
d6.top = new FormAttachment( 0, 80 );
caseLabel.setLayoutData( d6 );
caseLabel.addListener( SWT.MouseDown, this );
shell.setDefaultButton( okButton );
typeCombo = new Combo( shell, SWT.READ_ONLY );
FormData d7 = new FormData();
d7.left = new FormAttachment( 0, 85 );
d7.top = new FormAttachment( 0, 110 );
typeCombo.setLayoutData( d7 );
typeCombo.setItems( TYPE_ARRAY );
typeCombo.select( 0 );
FormData d8 = new FormData();
d8.left = new FormAttachment( 0, LABEL3_LEFT );
d8.top = new FormAttachment( 0, 113 );
Label label3 = new Label( shell, SWT.NONE );
label3.setText( "Type :" );
label3.pack();
label3.setLayoutData( d8 );
}
// --------------------------------------------------------------------------------
protected void handleEvent2( Event event )
{
if( event.widget == caseLabel )
{
caseButton.setSelection( !caseButton.getSelection() );
}
else if( event.type == SWT.Modify )
{
onChange();
}
else if( event.widget == cancelButton )
{
onCancelButtonClick();
}
else if( event.widget == okButton )
{
onOkButtonClick();
}
else if( event.type == SWT.Activate )
{
onActivate();
}
}
// --------------------------------------------------------------------------------
private void onActivate()
{
nameText.setFocus();
}
// --------------------------------------------------------------------------------
private void onCancelButtonClick()
{
close();
}
// --------------------------------------------------------------------------------
private void onOkButtonClick()
{
String pattern = patternText.getText();
try
{
Pattern.compile( pattern );
}
catch( PatternSyntaxException e )
{
MDoorman.getInstance().notifyException( e );
return;
}
if( action == ACTION_ADD )
{
MBreak newBreak = new MBreak( true, nameText.getText(), patternText.getText(), typeCombo.getSelectionIndex(), caseButton.getSelection() );
doorman.optionWindow.breakList.add( newBreak );
}
else if( action == ACTION_EDIT )
{
_break.setName( nameText.getText() );
_break.setPattern( patternText.getText() );
_break.setType( typeCombo.getSelectionIndex() );
_break.setIgnoreCase( caseButton.getSelection() );
}
close();
}
// --------------------------------------------------------------------------------
protected void onClose2()
{
doorman.optionWindow.updateBreakTable();
doorman.optionWindow.updateGui();
}
// --------------------------------------------------------------------------------
private void onChange()
{
if( nameText.getText().length() > 0
&& patternText.getText().length() > 0
)
{
okButton.setEnabled( true );
}
else
{
okButton.setEnabled( false );
}
}
// --------------------------------------------------------------------------------
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -