📄 addressbook.java
字号:
}
/**
* Creates all the items located in the File submenu and
* associate all the menu items with their appropriate
* functions.
*
* @param menuBar Menu
* the <code>Menu</code> that file contain
* the File submenu.
*/
private void createFileMenu(Menu menuBar) {
//File menu.
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resAddressBook.getString("File_menu_title"));
Menu menu = new Menu(shell, SWT.DROP_DOWN);
item.setMenu(menu);
/**
* Adds a listener to handle enabling and disabling
* some items in the Edit submenu.
*/
menu.addMenuListener(new MenuAdapter() {
public void menuShown(MenuEvent e) {
Menu menu = (Menu)e.widget;
MenuItem[] items = menu.getItems();
items[1].setEnabled(table.getSelectionCount() != 0); // edit contact
items[5].setEnabled((file != null) && isModified); // save
items[6].setEnabled(table.getItemCount() != 0); // save as
}
});
//File -> New Contact
MenuItem subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("New_contact"));
subItem.setAccelerator(SWT.MOD1 + 'N');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
newEntry();
}
});
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("Edit_contact"));
subItem.setAccelerator(SWT.MOD1 + 'E');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TableItem[] items = table.getSelection();
if (items.length == 0) return;
editEntry(items[0]);
}
});
new MenuItem(menu, SWT.SEPARATOR);
//File -> New Address Book
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("New_address_book"));
subItem.setAccelerator(SWT.MOD1 + 'B');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (closeAddressBook()) {
newAddressBook();
}
}
});
//File -> Open
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("Open_address_book"));
subItem.setAccelerator(SWT.MOD1 + 'O');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (closeAddressBook()) {
openAddressBook();
}
}
});
//File -> Save.
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("Save_address_book"));
subItem.setAccelerator(SWT.MOD1 + 'S');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
save();
}
});
//File -> Save As.
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("Save_book_as"));
subItem.setAccelerator(SWT.MOD1 + 'A');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
saveAs();
}
});
new MenuItem(menu, SWT.SEPARATOR);
//File -> Exit.
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("Exit"));
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
shell.close();
}
});
}
/**
* Creates all the items located in the Edit submenu and
* associate all the menu items with their appropriate
* functions.
*
* @param menuBar Menu
* the <code>Menu</code> that file contain
* the Edit submenu.
*
* @see #createSortMenu()
*/
private MenuItem createEditMenu(Menu menuBar) {
//Edit menu.
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resAddressBook.getString("Edit_menu_title"));
Menu menu = new Menu(shell, SWT.DROP_DOWN);
item.setMenu(menu);
/**
* Add a listener to handle enabling and disabling
* some items in the Edit submenu.
*/
menu.addMenuListener(new MenuAdapter() {
public void menuShown(MenuEvent e) {
Menu menu = (Menu)e.widget;
MenuItem[] items = menu.getItems();
int count = table.getSelectionCount();
items[0].setEnabled(count != 0); // edit
items[1].setEnabled(count != 0); // copy
items[2].setEnabled(copyBuffer != null); // paste
items[3].setEnabled(count != 0); // delete
items[5].setEnabled(table.getItemCount() != 0); // sort
}
});
//Edit -> Edit
MenuItem subItem = new MenuItem(menu, SWT.CASCADE);
subItem.setText(resAddressBook.getString("Edit"));
subItem.setAccelerator(SWT.MOD1 + 'E');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TableItem[] items = table.getSelection();
if (items.length == 0) return;
editEntry(items[0]);
}
});
//Edit -> Copy
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("Copy"));
subItem.setAccelerator(SWT.MOD1 + 'C');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TableItem[] items = table.getSelection();
if (items.length == 0) return;
copyBuffer = new String[table.getColumnCount()];
for (int i = 0; i < copyBuffer.length; i++) {
copyBuffer[i] = items[0].getText(i);
}
}
});
//Edit -> Paste
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("Paste"));
subItem.setAccelerator(SWT.MOD1 + 'V');
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (copyBuffer == null) return;
TableItem item = new TableItem(table, SWT.NONE);
item.setText(copyBuffer);
isModified = true;
}
});
//Edit -> Delete
subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("Delete"));
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TableItem[] items = table.getSelection();
if (items.length == 0) return;
items[0].dispose();
isModified = true; }
});
new MenuItem(menu, SWT.SEPARATOR);
//Edit -> Sort(Cascade)
subItem = new MenuItem(menu, SWT.CASCADE);
subItem.setText(resAddressBook.getString("Sort"));
Menu submenu = createSortMenu();
subItem.setMenu(submenu);
return item;
}
/**
* Creates all the items located in the Sort cascading submenu and
* associate all the menu items with their appropriate
* functions.
*
* @return Menu
* The cascading menu with all the sort menu items on it.
*/
private Menu createSortMenu() {
Menu submenu = new Menu(shell, SWT.DROP_DOWN);
MenuItem subitem;
for(int i = 0; i < columnNames.length; i++) {
subitem = new MenuItem (submenu, SWT.NULL);
subitem.setText(columnNames [i]);
final int column = i;
subitem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
sort(column);
}
});
}
return submenu;
}
/**
* Creates all the items located in the Search submenu and
* associate all the menu items with their appropriate
* functions.
*
* @param menuBar Menu
* the <code>Menu</code> that file contain
* the Search submenu.
*/
private void createSearchMenu(Menu menuBar) {
//Search menu.
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resAddressBook.getString("Search_menu_title"));
Menu searchMenu = new Menu(shell, SWT.DROP_DOWN);
item.setMenu(searchMenu);
//Search -> Find...
item = new MenuItem(searchMenu, SWT.NULL);
item.setText(resAddressBook.getString("Find"));
item.setAccelerator(SWT.MOD1 + 'F');
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
searchDialog.setMatchCase(false);
searchDialog.setMatchWord(false);
searchDialog.setSearchDown(true);
searchDialog.setSearchString("");
searchDialog.setSelectedSearchArea(0);
searchDialog.open();
}
});
//Search -> Find Next
item = new MenuItem(searchMenu, SWT.NULL);
item.setText(resAddressBook.getString("Find_next"));
item.setAccelerator(SWT.F3);
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
searchDialog.open();
}
});
}
/**
* Creates all items located in the popup menu and associates
* all the menu items with their appropriate functions.
*
* @return Menu
* The created popup menu.
*/
private Menu createPopUpMenu() {
Menu popUpMenu = new Menu(shell, SWT.POP_UP);
/**
* Adds a listener to handle enabling and disabling
* some items in the Edit submenu.
*/
popUpMenu.addMenuListener(new MenuAdapter() {
public void menuShown(MenuEvent e) {
Menu menu = (Menu)e.widget;
MenuItem[] items = menu.getItems();
int count = table.getSelectionCount();
items[2].setEnabled(count != 0); // edit
items[3].setEnabled(count != 0); // copy
items[4].setEnabled(copyBuffer != null); // paste
items[5].setEnabled(count != 0); // delete
items[7].setEnabled(table.getItemCount() != 0); // find
}
});
//New
MenuItem item = new MenuItem(popUpMenu, SWT.CASCADE);
item.setText(resAddressBook.getString("Pop_up_new"));
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
newEntry();
}
});
new MenuItem(popUpMenu, SWT.SEPARATOR);
//Edit
item = new MenuItem(popUpMenu, SWT.CASCADE);
item.setText(resAddressBook.getString("Pop_up_edit"));
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TableItem[] items = table.getSelection();
if (items.length == 0) return;
editEntry(items[0]);
}
});
//Copy
item = new MenuItem(popUpMenu, SWT.CASCADE);
item.setText(resAddressBook.getString("Pop_up_copy"));
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TableItem[] items = table.getSelection();
if (items.length == 0) return;
copyBuffer = new String[table.getColumnCount()];
for (int i = 0; i < copyBuffer.length; i++) {
copyBuffer[i] = items[0].getText(i);
}
}
});
//Paste
item = new MenuItem(popUpMenu, SWT.CASCADE);
item.setText(resAddressBook.getString("Pop_up_paste"));
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (copyBuffer == null) return;
TableItem item = new TableItem(table, SWT.NONE);
item.setText(copyBuffer);
isModified = true;
}
});
//Delete
item = new MenuItem(popUpMenu, SWT.CASCADE);
item.setText(resAddressBook.getString("Pop_up_delete"));
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TableItem[] items = table.getSelection();
if (items.length == 0) return;
items[0].dispose();
isModified = true;
}
});
new MenuItem(popUpMenu, SWT.SEPARATOR);
//Find...
item = new MenuItem(popUpMenu, SWT.NULL);
item.setText(resAddressBook.getString("Pop_up_find"));
item.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
searchDialog.open();
}
});
return popUpMenu;
}
/**
* Creates all the items located in the Help submenu and
* associate all the menu items with their appropriate
* functions.
*
* @param menuBar Menu
* the <code>Menu</code> that file contain
* the Help submenu.
*/
private void createHelpMenu(Menu menuBar) {
//Help Menu
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resAddressBook.getString("Help_menu_title"));
Menu menu = new Menu(shell, SWT.DROP_DOWN);
item.setMenu(menu);
//Help -> About Text Editor
MenuItem subItem = new MenuItem(menu, SWT.NULL);
subItem.setText(resAddressBook.getString("About"));
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
MessageBox box = new MessageBox(shell, SWT.NONE);
box.setText(resAddressBook.getString("About_1") + shell.getText());
box.setMessage(shell.getText() + resAddressBook.getString("About_2"));
box.open();
}
});
}
/**
* To compare entries (rows) by the given column
*/
private class RowComparator implements Comparator {
private int column;
/**
* Constructs a RowComparator given the column index
* @param col The index (starting at zero) of the column
*/
public RowComparator(int col) {
column = col;
}
/**
* Compares two rows (type String[]) using the specified
* column entry.
* @param obj1 First row to compare
* @param obj2 Second row to compare
* @return negative if obj1 less than obj2, positive if
* obj1 greater than obj2, and zero if equal.
*/
public int compare(Object obj1, Object obj2) {
String[] row1 = (String[])obj1;
String[] row2 = (String[])obj2;
return row1[column].compareTo(row2[column]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -