📄 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.NONE); 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.NONE); 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.NONE); 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.NONE); 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.NONE); 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.NONE); 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.NONE); 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.PUSH); 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.NONE); 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.NONE); 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.NONE); 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.NONE); 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.NONE); 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.NONE); 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.PUSH); 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.PUSH); 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.PUSH); 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.PUSH); 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.PUSH); 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.PUSH); 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.NONE); 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 + -