diff options
Diffstat (limited to 'examples/org.eclipse.swt.examples/src/org/eclipse')
106 files changed, 0 insertions, 18049 deletions
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java deleted file mode 100755 index f73fa4e80e..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java +++ /dev/null @@ -1,873 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.addressbook; - - -/* Imports */ -import java.io.*; -import java.util.*; - -import org.eclipse.swt.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -/** - * AddressBookExample is an example that uses <code>org.eclipse.swt</code> - * libraries to implement a simple address book. This application has - * save, load, sorting, and searching functions common - * to basic address books. - */ -public class AddressBook { - - private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook"); - private Shell shell; - - private Table table; - private SearchDialog searchDialog; - - private File file; - private boolean isModified; - - private String[] copyBuffer; - - private int lastSortColumn= -1; - - private static final String DELIMITER = "\t"; - private static final String[] columnNames = {resAddressBook.getString("Last_name"), - resAddressBook.getString("First_name"), - resAddressBook.getString("Business_phone"), - resAddressBook.getString("Home_phone"), - resAddressBook.getString("Email"), - resAddressBook.getString("Fax")}; - -public static void main(String[] args) { - Display display = new Display(); - AddressBook application = new AddressBook(); - Shell shell = application.open(display); - while(!shell.isDisposed()){ - if(!display.readAndDispatch()) - display.sleep(); - } - display.dispose(); -} -public Shell open(Display display) { - shell = new Shell(display); - shell.setLayout(new FillLayout()); - shell.addShellListener(new ShellAdapter() { - public void shellClosed(ShellEvent e) { - e.doit = closeAddressBook(); - } - }); - - createMenuBar(); - - searchDialog = new SearchDialog(shell); - searchDialog.setSearchAreaNames(columnNames); - searchDialog.setSearchAreaLabel(resAddressBook.getString("Column")); - searchDialog.addFindListener(new FindListener () { - public boolean find() { - return findEntry(); - } - }); - - table = new Table(shell, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION); - table.setHeaderVisible(true); - table.setMenu(createPopUpMenu()); - table.addSelectionListener(new SelectionAdapter() { - public void widgetDefaultSelected(SelectionEvent e) { - TableItem[] items = table.getSelection(); - if (items.length > 0) editEntry(items[0]); - } - }); - for(int i = 0; i < columnNames.length; i++) { - TableColumn column = new TableColumn(table, SWT.NONE); - column.setText(columnNames[i]); - column.setWidth(150); - final int columnIndex = i; - column.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - sort(columnIndex); - } - }); - } - - newAddressBook(); - - shell.setSize(table.computeSize(SWT.DEFAULT, SWT.DEFAULT).x, 300); - shell.open(); - return shell; -} - -private boolean closeAddressBook() { - if(isModified) { - //ask user if they want to save current address book - MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO | SWT.CANCEL); - box.setText(shell.getText()); - box.setMessage(resAddressBook.getString("Close_save")); - - int choice = box.open(); - if(choice == SWT.CANCEL) { - return false; - } else if(choice == SWT.YES) { - if (!save()) return false; - } - } - - TableItem[] items = table.getItems(); - for (int i = 0; i < items.length; i ++) { - items[i].dispose(); - } - - return true; -} -/** - * Creates the menu at the top of the shell where most - * of the programs functionality is accessed. - * - * @return The <code>Menu</code> widget that was created - */ -private Menu createMenuBar() { - Menu menuBar = new Menu(shell, SWT.BAR); - shell.setMenuBar(menuBar); - - //create each header and subMenu for the menuBar - createFileMenu(menuBar); - createEditMenu(menuBar); - createSearchMenu(menuBar); - createHelpMenu(menuBar); - - return menuBar; -} - -/** - * Converts an encoded <code>String</code> to a String array representing a table entry. - */ -private String[] decodeLine(String line) { - if(line == null) return null; - - String[] parsedLine = new String[table.getColumnCount()]; - for(int i = 0; i < parsedLine.length - 1; i++) { - int index = line.indexOf(DELIMITER); - if (index > -1) { - parsedLine[i] = line.substring(0, index); - line = line.substring(index + DELIMITER.length(), line.length()); - } else { - return null; - } - } - - if (line.indexOf(DELIMITER) != -1) return null; - - parsedLine[parsedLine.length - 1] = line; - - return parsedLine; -} -private void displayError(String msg) { - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR); - box.setMessage(msg); - box.open(); -} -private void editEntry(TableItem item) { - DataEntryDialog dialog = new DataEntryDialog(shell); - dialog.setLabels(columnNames); - String[] values = new String[table.getColumnCount()]; - for (int i = 0; i < values.length; i++) { - values[i] = item.getText(i); - } - dialog.setValues(values); - values = dialog.open(); - if (values != null) { - item.setText(values); - isModified = true; - } -} -private String encodeLine(String[] tableItems) { - String line = ""; - for (int i = 0; i < tableItems.length - 1; i++) { - line += tableItems[i] + DELIMITER; - } - line += tableItems[tableItems.length - 1] + "\n"; - - return line; -} -private boolean findEntry() { - Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - - boolean matchCase = searchDialog.getMatchCase(); - boolean matchWord = searchDialog.getMatchWord(); - String searchString = searchDialog.getSearchString(); - int column = searchDialog.getSelectedSearchArea(); - - searchString = matchCase ? searchString : searchString.toLowerCase(); - - boolean found = false; - if (searchDialog.getSearchDown()) { - for(int i = table.getSelectionIndex() + 1; i < table.getItemCount(); i++) { - if (found = findMatch(searchString, table.getItem(i), column, matchWord, matchCase)){ - table.setSelection(i); - break; - } - } - } else { - for(int i = table.getSelectionIndex() - 1; i > -1; i--) { - if (found = findMatch(searchString, table.getItem(i), column, matchWord, matchCase)){ - table.setSelection(i); - break; - } - } - } - - shell.setCursor(null); - if (waitCursor != null) - waitCursor.dispose(); - - return found; -} -private boolean findMatch(String searchString, TableItem item, int column, boolean matchWord, boolean matchCase) { - - String tableText = matchCase ? item.getText(column) : item.getText(column).toLowerCase(); - if (matchWord) { - if (tableText != null && tableText.equals(searchString)) { - return true; - } - - } else { - if(tableText!= null && tableText.indexOf(searchString) != -1) { - return true; - } - } - return false; -} -private void newAddressBook() { - shell.setText(resAddressBook.getString("Title_bar") + resAddressBook.getString("New_title")); - file = null; - isModified = false; -} -private void newEntry() { - DataEntryDialog dialog = new DataEntryDialog(shell); - dialog.setLabels(columnNames); - String[] data = dialog.open(); - if (data != null) { - TableItem item = new TableItem(table, SWT.NONE); - item.setText(data); - isModified = true; - } -} - -private void openAddressBook() { - FileDialog fileDialog = new FileDialog(shell, SWT.OPEN); - - fileDialog.setFilterExtensions(new String[] {"*.adr;", "*.*"}); - fileDialog.setFilterNames(new String[] {resAddressBook.getString("Book_filter_name") + " (*.adr)", - resAddressBook.getString("All_filter_name") + " (*.*)"}); - String name = fileDialog.open(); - - if(name == null) return; - File file = new File(name); - if (!file.exists()) { - displayError(resAddressBook.getString("File")+file.getName()+" "+resAddressBook.getString("Does_not_exist")); - return; - } - - Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - - FileReader fileReader = null; - BufferedReader bufferedReader = null; - String[] data = new String[0]; - try { - fileReader = new FileReader(file.getAbsolutePath()); - bufferedReader = new BufferedReader(fileReader); - String nextLine = bufferedReader.readLine(); - while (nextLine != null){ - String[] newData = new String[data.length + 1]; - System.arraycopy(data, 0, newData, 0, data.length); - newData[data.length] = nextLine; - data = newData; - nextLine = bufferedReader.readLine(); - } - } catch(FileNotFoundException e) { - displayError(resAddressBook.getString("File_not_found") + "\n" + file.getName()); - return; - } catch (IOException e ) { - displayError(resAddressBook.getString("IO_error_read") + "\n" + file.getName()); - return; - } finally { - - shell.setCursor(null); - waitCursor.dispose(); - - if(fileReader != null) { - try { - fileReader.close(); - } catch(IOException e) { - displayError(resAddressBook.getString("IO_error_close") + "\n" + file.getName()); - return; - } - } - } - - String[][] tableInfo = new String[data.length][table.getColumnCount()]; - for (int i = 0; i < data.length; i++) { - tableInfo[i] = decodeLine(data[i]); - } - - Arrays.sort(tableInfo, new RowComparator(0)); - - for (int i = 0; i < tableInfo.length; i++) { - TableItem item = new TableItem(table, SWT.NONE); - item.setText(tableInfo[i]); - } - shell.setText(resAddressBook.getString("Title_bar")+fileDialog.getFileName()); - isModified = false; - this.file = file; -} -private boolean save() { - if(file == null) return saveAs(); - - Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - - TableItem[] items = table.getItems(); - String[] lines = new String[items.length]; - for(int i = 0; i < items.length; i++) { - String[] itemText = new String[table.getColumnCount()]; - for (int j = 0; j < itemText.length; j++) { - itemText[j] = items[i].getText(j); - } - lines[i] = encodeLine(itemText); - } - - FileWriter fileWriter = null; - try { - fileWriter = new FileWriter(file.getAbsolutePath(), false); - for (int i = 0; i < lines.length; i++) { - fileWriter.write(lines[i]); - } - } catch(FileNotFoundException e) { - displayError(resAddressBook.getString("File_not_found") + "\n" + file.getName()); - return false; - } catch(IOException e ) { - displayError(resAddressBook.getString("IO_error_write") + "\n" + file.getName()); - return false; - } finally { - shell.setCursor(null); - waitCursor.dispose(); - - if(fileWriter != null) { - try { - fileWriter.close(); - } catch(IOException e) { - displayError(resAddressBook.getString("IO_error_close") + "\n" + file.getName()); - return false; - } - } - } - - shell.setText(resAddressBook.getString("Title_bar")+file.getName()); - isModified = false; - return true; -} -private boolean saveAs() { - - FileDialog saveDialog = new FileDialog(shell, SWT.SAVE); - saveDialog.setFilterExtensions(new String[] {"*.adr;", "*.*"}); - saveDialog.setFilterNames(new String[] {"Address Books (*.adr)", "All Files "}); - - saveDialog.open(); - String name = saveDialog.getFileName(); - - if(name.equals("")) return false; - - if(name.indexOf(".adr") != name.length() - 4) { - name += ".adr"; - } - - File file = new File(saveDialog.getFilterPath(), name); - if(file.exists()) { - MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO); - box.setText(resAddressBook.getString("Save_as_title")); - box.setMessage(resAddressBook.getString("File") + file.getName()+" "+resAddressBook.getString("Query_overwrite")); - if(box.open() != SWT.YES) { - return false; - } - } - this.file = file; - return save(); -} -private void sort(int column) { - if(table.getItemCount() <= 1) return; - - TableItem[] items = table.getItems(); - String[][] data = new String[items.length][table.getColumnCount()]; - for(int i = 0; i < items.length; i++) { - for(int j = 0; j < table.getColumnCount(); j++) { - data[i][j] = items[i].getText(j); - } - } - - Arrays.sort(data, new RowComparator(column)); - - if (lastSortColumn != column) { - for (int i = 0; i < data.length; i++) { - items[i].setText(data[i]); - } - lastSortColumn = column; - } else { - // reverse order if the current column is selected again - int j = data.length -1; - for (int i = 0; i < data.length; i++) { - items[i].setText(data[j--]); - } - lastSortColumn = -1; - } - -} -/** - * 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]); - } -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java deleted file mode 100755 index 17b48660d7..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.addressbook; - - -/* Imports */ -import org.eclipse.swt.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -import java.util.ResourceBundle; - -/** - * DataEntryDialog class uses <code>org.eclipse.swt</code> - * libraries to implement a dialog that accepts basic personal information that - * is added to a <code>Table</code> widget or edits a <code>TableItem</code> entry - * to represent the entered data. - */ -public class DataEntryDialog { - - private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook"); - - Shell shell; - String[] values; - String[] labels; - -public DataEntryDialog(Shell parent) { - shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.PRIMARY_MODAL); - shell.setLayout(new GridLayout()); -} - -private void addTextListener(final Text text) { - text.addModifyListener(new ModifyListener() { - public void modifyText(ModifyEvent e){ - Integer index = (Integer)(text.getData("index")); - values[index.intValue()] = text.getText(); - } - }); -} -private void createControlButtons() { - Composite composite = new Composite(shell, SWT.NULL); - composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); - GridLayout layout = new GridLayout(); - layout.numColumns = 2; - composite.setLayout(layout); - - Button okButton = new Button(composite, SWT.PUSH); - okButton.setText(resAddressBook.getString("OK")); - okButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - shell.close(); - } - }); - - Button cancelButton = new Button(composite, SWT.PUSH); - cancelButton.setText(resAddressBook.getString("Cancel")); - cancelButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - values = null; - shell.close(); - } - }); - - shell.setDefaultButton(okButton); -} - -private void createTextWidgets() { - if (labels == null) return; - - Composite composite = new Composite(shell, SWT.NULL); - composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - GridLayout layout= new GridLayout(); - layout.numColumns = 2; - composite.setLayout(layout); - - if (values == null) - values = new String[labels.length]; - - for (int i = 0; i < labels.length; i++) { - Label label = new Label(composite, SWT.RIGHT); - label.setText(labels[i]); - Text text = new Text(composite, SWT.BORDER); - GridData gridData = new GridData(); - gridData.widthHint = 400; - text.setLayoutData(gridData); - if (values[i] != null) { - text.setText(values[i]); - } - text.setData("index", new Integer(i)); - addTextListener(text); - } -} - -public String[] getLabels() { - return labels; -} -public String getTitle() { - return shell.getText(); -} -/** - * Returns the contents of the <code>Text</code> widgets in the dialog in a - * <code>String</code> array. - * - * @return String[] - * The contents of the text widgets of the dialog. - * May return null if all text widgets are empty. - */ -public String[] getValues() { - return values; -} -/** - * Opens the dialog in the given state. Sets <code>Text</code> widget contents - * and dialog behaviour accordingly. - * - * @param dialogState int - * The state the dialog should be opened in. - */ -public String[] open() { - createTextWidgets(); - createControlButtons(); - shell.pack(); - shell.open(); - Display display = shell.getDisplay(); - while(!shell.isDisposed()){ - if(!display.readAndDispatch()) - display.sleep(); - } - - return getValues(); -} -public void setLabels(String[] labels) { - this.labels = labels; -} -public void setTitle(String title) { - shell.setText(title); -} -/** - * Sets the values of the <code>Text</code> widgets of the dialog to - * the values supplied in the parameter array. - * - * @param itemInfo String[] - * The values to which the dialog contents will be set. - */ -public void setValues(String[] itemInfo) { - if (labels == null) return; - - if (values == null) - values = new String[labels.length]; - - int numItems = Math.min(values.length, itemInfo.length); - for(int i = 0; i < numItems; i++) { - values[i] = itemInfo[i]; - } -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java deleted file mode 100755 index 12ad2d796d..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.addressbook; - - -public interface FindListener { - -public boolean find(); - -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java deleted file mode 100755 index 0c42630f17..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java +++ /dev/null @@ -1,202 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.addressbook; - - -/* Imports */ -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; -import java.util.ResourceBundle; - -/** - * SearchDialog is a simple class that uses <code>org.eclipse.swt</code> - * libraries to implement a basic search dialog. - */ -public class SearchDialog { - - private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook"); - - Shell shell; - Text searchText; - Combo searchArea; - Label searchAreaLabel; - Button matchCase; - Button matchWord; - Button findButton; - Button down; - FindListener findHandler; - -/** - * Class constructor that sets the parent shell and the table widget that - * the dialog will search. - * - * @param parent Shell - * The shell that is the parent of the dialog. - */ -public SearchDialog(Shell parent) { - shell = new Shell(parent, SWT.CLOSE | SWT.BORDER | SWT.TITLE); - GridLayout layout = new GridLayout(); - layout.numColumns = 2; - shell.setLayout(layout); - shell.setText(resAddressBook.getString("Search_dialog_title")); - shell.addShellListener(new ShellAdapter(){ - public void shellClosed(ShellEvent e) { - // don't dispose of the shell, just hide it for later use - e.doit = false; - shell.setVisible(false); - } - }); - - Label label = new Label(shell, SWT.LEFT); - label.setText(resAddressBook.getString("Dialog_find_what")); - searchText = new Text(shell, SWT.BORDER); - GridData gridData = new GridData(GridData.FILL_HORIZONTAL); - gridData.widthHint = 200; - searchText.setLayoutData(gridData); - searchText.addModifyListener(new ModifyListener() { - public void modifyText(ModifyEvent e) { - boolean enableFind = (searchText.getCharCount() != 0); - findButton.setEnabled(enableFind); - } - }); - - searchAreaLabel = new Label(shell, SWT.LEFT); - searchArea = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY); - gridData = new GridData(GridData.FILL_HORIZONTAL); - gridData.widthHint = 200; - searchArea.setLayoutData(gridData); - - matchCase = new Button(shell, SWT.CHECK); - matchCase.setText(resAddressBook.getString("Dialog_match_case")); - gridData = new GridData(); - gridData.horizontalSpan = 2; - matchCase.setLayoutData(gridData); - - matchWord = new Button(shell, SWT.CHECK); - matchWord.setText(resAddressBook.getString("Dialog_match_word")); - gridData = new GridData(); - gridData.horizontalSpan = 2; - matchWord.setLayoutData(gridData); - - Group direction = new Group(shell, SWT.NONE); - gridData = new GridData(); - gridData.horizontalSpan = 2; - direction.setLayoutData(gridData); - direction.setLayout (new FillLayout ()); - direction.setText(resAddressBook.getString("Dialog_direction")); - - Button up = new Button(direction, SWT.RADIO); - up.setText(resAddressBook.getString("Dialog_dir_up")); - up.setSelection(false); - - down = new Button(direction, SWT.RADIO); - down.setText(resAddressBook.getString("Dialog_dir_down")); - down.setSelection(true); - - Composite composite = new Composite(shell, SWT.NONE); - gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - gridData.horizontalSpan = 2; - composite.setLayoutData(gridData); - layout = new GridLayout(); - layout.numColumns = 2; - layout.makeColumnsEqualWidth = true; - composite.setLayout(layout); - - findButton = new Button(composite, SWT.PUSH); - findButton.setText(resAddressBook.getString("Dialog_find")); - findButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); - findButton.setEnabled(false); - findButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - if (!findHandler.find()){ - MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK | SWT.PRIMARY_MODAL); - box.setText(shell.getText()); - box.setMessage(resAddressBook.getString("Cannot_find") + "\"" + searchText.getText() + "\""); - box.open(); - } - } - }); - - Button cancelButton = new Button(composite, SWT.PUSH); - cancelButton.setText(resAddressBook.getString("Cancel")); - cancelButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - cancelButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - shell.setVisible(false); - } - }); - - shell.pack(); -} -public String getSearchAreaLabel(String label) { - return searchAreaLabel.getText(); -} - -public String[] getsearchAreaNames() { - return searchArea.getItems(); -} -public boolean getMatchCase() { - return matchCase.getSelection(); -} -public boolean getMatchWord() { - return matchWord.getSelection(); -} -public String getSearchString() { - return searchText.getText(); -} -public boolean getSearchDown(){ - return down.getSelection(); -} -public int getSelectedSearchArea() { - return searchArea.getSelectionIndex(); -} -public void open() { - if (shell.isVisible()) { - shell.setFocus(); - } else { - shell.open(); - } - searchText.setFocus(); -} -public void setSearchAreaNames(String[] names) { - for (int i = 0; i < names.length; i++) { - searchArea.add(names[i]); - } - searchArea.select(0); -} -public void setSearchAreaLabel(String label) { - searchAreaLabel.setText(label); -} -public void setMatchCase(boolean match) { - matchCase.setSelection(match); -} -public void setMatchWord(boolean match) { - matchWord.setSelection(match); -} -public void setSearchDown(boolean searchDown){ - down.setSelection(searchDown); -} -public void setSearchString(String searchString) { - searchText.setText(searchString); -} - -public void setSelectedSearchArea(int index) { - searchArea.select(index); -} -public void addFindListener(FindListener listener) { - this.findHandler = listener; -} -public void removeFindListener(FindListener listener) { - this.findHandler = null; -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/BrowserExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/BrowserExample.java deleted file mode 100644 index 3ab86486b4..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/BrowserExample.java +++ /dev/null @@ -1,318 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.browserexample; - -import org.eclipse.swt.*; -import org.eclipse.swt.browser.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -import java.text.*; -import java.util.*; - -public class BrowserExample { - static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_browser"); - int index; - boolean busy; - Image images[]; - Text location; - Browser browser; - static final String[] imageLocations = { - "eclipse01.bmp", "eclipse02.bmp", "eclipse03.bmp", "eclipse04.bmp", "eclipse05.bmp", - "eclipse06.bmp", "eclipse07.bmp", "eclipse08.bmp", "eclipse09.bmp", "eclipse10.bmp", - "eclipse11.bmp", "eclipse12.bmp",}; - -/** - * Creates an instance of a ControlExample embedded inside - * the supplied parent Composite. - * - * @param parent the container of the example - */ -public BrowserExample(Composite parent) { - initResources(); - final Display display = parent.getDisplay(); - FormLayout layout = new FormLayout(); - parent.setLayout(layout); - ToolBar toolbar = new ToolBar(parent, SWT.NONE); - final ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH); - itemBack.setText(getResourceString("Back")); - final ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH); - itemForward.setText(getResourceString("Forward")); - final ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH); - itemStop.setText(getResourceString("Stop")); - final ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH); - itemRefresh.setText(getResourceString("Refresh")); - final ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH); - itemGo.setText(getResourceString("Go")); - - location = new Text(parent, SWT.BORDER); - - final Canvas canvas = new Canvas(parent, SWT.NO_BACKGROUND); - final Rectangle rect = images[0].getBounds(); - canvas.addListener(SWT.Paint, new Listener() { - public void handleEvent(Event e) { - Point pt = canvas.getSize(); - e.gc.drawImage(images[index], 0, 0, rect.width, rect.height, 0, 0, pt.x, pt.y); - } - }); - canvas.addListener(SWT.MouseDown, new Listener() { - public void handleEvent(Event e) { - browser.setUrl(getResourceString("Startup")); - } - }); - - display.asyncExec(new Runnable() { - public void run() { - if (canvas.isDisposed()) return; - if (busy) { - index++; - if (index == images.length) index = 0; - canvas.redraw(); - } - display.timerExec(150, this); - } - }); - - final Label status = new Label(parent, SWT.NONE); - final ProgressBar progressBar = new ProgressBar(parent, SWT.NONE); - - FormData data = new FormData(); - data.top = new FormAttachment(0, 5); - toolbar.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(0, 0); - data.right = new FormAttachment(100, 0); - data.top = new FormAttachment(canvas, 5, SWT.DEFAULT); - data.bottom = new FormAttachment(status, -5, SWT.DEFAULT); - try { - browser = new Browser(parent, SWT.NONE); - browser.setLayoutData(data); - } catch (SWTError e) { - /* Browser widget could not be instantiated */ - Label label = new Label(parent, SWT.CENTER | SWT.WRAP); - label.setText(getResourceString("BrowserNotCreated")); - label.setLayoutData(data); - } - - data = new FormData(); - data.width = 24; - data.height = 24; - data.top = new FormAttachment(0, 5); - data.right = new FormAttachment(100, -5); - canvas.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(toolbar, 0, SWT.TOP); - data.left = new FormAttachment(toolbar, 5, SWT.RIGHT); - data.right = new FormAttachment(canvas, -5, SWT.DEFAULT); - location.setLayoutData(data); - - data = new FormData(); - data.left = new FormAttachment(0, 5); - data.right = new FormAttachment(progressBar, 0, SWT.DEFAULT); - data.bottom = new FormAttachment(100, -5); - status.setLayoutData(data); - - data = new FormData(); - data.right = new FormAttachment(100, -5); - data.bottom = new FormAttachment(100, -5); - progressBar.setLayoutData(data); - - if (browser != null) { - Listener listener = new Listener() { - public void handleEvent(Event event) { - ToolItem item = (ToolItem)event.widget; - if (item == itemBack) browser.back(); - else if (item == itemForward) browser.forward(); - else if (item == itemStop) browser.stop(); - else if (item == itemRefresh) browser.refresh(); - else if (item == itemGo) browser.setUrl(location.getText()); - } - }; - browser.addProgressListener(new ProgressListener() { - public void changed(ProgressEvent event) { - if (event.total == 0) return; - int ratio = event.current * 100 / event.total; - progressBar.setSelection(ratio); - busy = event.current != event.total; - if (!busy) { - index = 0; - canvas.redraw(); - } - } - public void completed(ProgressEvent event) { - progressBar.setSelection(0); - busy = false; - index = 0; - canvas.redraw(); - } - }); - browser.addStatusTextListener(new StatusTextListener() { - public void changed(StatusTextEvent event) { - status.setText(event.text); - } - }); - browser.addLocationListener(new LocationListener() { - public void changed(LocationEvent event) { - busy = true; - location.setText(event.location); - } - public void changing(LocationEvent event) { - } - }); - itemBack.addListener(SWT.Selection, listener); - itemForward.addListener(SWT.Selection, listener); - itemStop.addListener(SWT.Selection, listener); - itemRefresh.addListener(SWT.Selection, listener); - itemGo.addListener(SWT.Selection, listener); - location.addListener(SWT.DefaultSelection, new Listener() { - public void handleEvent(Event e) { - browser.setUrl(location.getText()); - } - }); - - initialize(display, browser); - browser.setUrl(getResourceString("Startup")); - } -} - -/** - * Gets a string from the resource bundle. - * We don't want to crash because of a missing String. - * Returns the key if not found. - */ -static String getResourceString(String key) { - try { - return resourceBundle.getString(key); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } -} - -/** - * Gets a string from the resource bundle and binds it - * with the given arguments. If the key is not found, - * return the key. - */ -static String getResourceString(String key, Object[] args) { - try { - return MessageFormat.format(getResourceString(key), args); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } -} - -static void initialize(final Display display, Browser browser) { - browser.addOpenWindowListener(new OpenWindowListener() { - public void open(WindowEvent event) { - Shell shell = new Shell(display); - shell.setLayout(new FillLayout()); - Browser browser = new Browser(shell, SWT.NONE); - initialize(display, browser); - event.browser = browser; - } - }); - browser.addVisibilityWindowListener(new VisibilityWindowListener() { - public void hide(WindowEvent event) { - } - public void show(WindowEvent event) { - Browser browser = (Browser)event.widget; - Shell shell = browser.getShell(); - if (event.location != null) shell.setLocation(event.location); - if (event.size != null) { - Point size = event.size; - shell.setSize(shell.computeSize(size.x, size.y)); - } - shell.open(); - } - }); - browser.addCloseWindowListener(new CloseWindowListener() { - public void close(WindowEvent event) { - Browser browser = (Browser)event.widget; - Shell shell = browser.getShell(); - shell.close(); - } - }); -} - -/** - * Disposes of all resources associated with a particular - * instance of the BrowserExample. - */ -public void dispose() { - freeResources(); -} - -/** - * Frees the resources - */ -void freeResources() { - if (images != null) { - for (int i = 0; i < images.length; ++i) { - final Image image = images[i]; - if (image != null) image.dispose(); - } - images = null; - } -} - -/** - * Grabs input focus. - */ -public void setFocus() { - location.setFocus(); -} - -/** - * Loads the resources - */ -void initResources() { - final Class clazz = this.getClass(); - if (resourceBundle != null) { - try { - if (images == null) { - images = new Image[imageLocations.length]; - for (int i = 0; i < imageLocations.length; ++i) { - ImageData source = new ImageData(clazz.getResourceAsStream(imageLocations[i])); - ImageData mask = source.getTransparencyMask(); - images[i] = new Image(null, source, mask); - } - } - return; - } catch (Throwable t) { - } - } - String error = (resourceBundle != null) ? getResourceString("error.CouldNotLoadResources") : "Unable to load resources"; - freeResources(); - throw new RuntimeException(error); -} - -public static void main(String [] args) { - Display display = new Display(); - Shell shell = new Shell(display); - shell.setLayout(new FillLayout()); - BrowserExample instance = new BrowserExample(shell); - shell.setText(getResourceString("window.title")); - shell.open(); - while (!shell.isDisposed()) { - if (!display.readAndDispatch()) - display.sleep(); - } - instance.dispose(); - display.dispose(); -} -}
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse01.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse01.bmp Binary files differdeleted file mode 100644 index 43116e6d8e..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse01.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse02.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse02.bmp Binary files differdeleted file mode 100644 index 8db04efb6b..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse02.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse03.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse03.bmp Binary files differdeleted file mode 100644 index 5fc7b1003c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse03.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse04.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse04.bmp Binary files differdeleted file mode 100644 index 2140654bb2..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse04.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse05.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse05.bmp Binary files differdeleted file mode 100644 index 7e45a99b5b..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse05.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse06.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse06.bmp Binary files differdeleted file mode 100644 index aaa888a67f..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse06.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse07.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse07.bmp Binary files differdeleted file mode 100644 index 50e22225ba..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse07.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse08.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse08.bmp Binary files differdeleted file mode 100644 index b1ac29dc96..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse08.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse09.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse09.bmp Binary files differdeleted file mode 100644 index 561f830ffc..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse09.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse10.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse10.bmp Binary files differdeleted file mode 100644 index 6ae79b2df8..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse10.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse11.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse11.bmp Binary files differdeleted file mode 100644 index a0c24a6815..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse11.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse12.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse12.bmp Binary files differdeleted file mode 100644 index 1cae71cf7e..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse12.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java deleted file mode 100644 index d7e9086fac..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java +++ /dev/null @@ -1,370 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.clipboard; - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.dnd.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -public class ClipboardExample { - - Clipboard clipboard; - Shell shell; - Text copyText; - Text pasteText; - Text copyRtfText; - Text pasteRtfText; - Table copyFileTable; - Table pasteFileTable; - Text text; - Combo combo; - StyledText styledText; - Label status; - static final int SIZE = 60; - -public static void main( String[] args) { - Display display = new Display(); - new ClipboardExample().open(display); - display.dispose(); -} -public void open(Display display) { - clipboard = new Clipboard(display); - shell = new Shell (display); - shell.setText("SWT Clipboard"); - shell.setLayout(new GridLayout(2, true)); - - Group copyGroup = new Group(shell, SWT.NONE); - copyGroup.setText("Copy From:"); - GridData data = new GridData(GridData.FILL_BOTH); - copyGroup.setLayoutData(data); - copyGroup.setLayout(new GridLayout(3, false)); - - Group pasteGroup = new Group(shell, SWT.NONE); - pasteGroup.setText("Paste To:"); - data = new GridData(GridData.FILL_BOTH); - pasteGroup.setLayoutData(data); - pasteGroup.setLayout(new GridLayout(3, false)); - - Group controlGroup = new Group(shell, SWT.NONE); - controlGroup.setText("Control API:"); - data = new GridData(GridData.FILL_BOTH); - data.horizontalSpan = 2; - controlGroup.setLayoutData(data); - controlGroup.setLayout(new GridLayout(5, false)); - - Group typesGroup = new Group(shell, SWT.NONE); - typesGroup.setText("Available Types"); - data = new GridData(GridData.FILL_BOTH); - data.horizontalSpan = 2; - typesGroup.setLayoutData(data); - typesGroup.setLayout(new GridLayout(2, false)); - - status = new Label(shell, SWT.BORDER); - data = new GridData(GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - data.heightHint = 60; - status.setLayoutData(data); - - createTextTransfer(copyGroup, pasteGroup); - createRTFTransfer(copyGroup, pasteGroup); - createFileTransfer(copyGroup, pasteGroup); - createMyTransfer(copyGroup, pasteGroup); - createControlTransfer(controlGroup); - createAvailableTypes(typesGroup); - - shell.pack(); - shell.open(); - while (!shell.isDisposed ()) { - if (!display.readAndDispatch ()) display.sleep (); - } - clipboard.dispose(); -} -void createTextTransfer(Composite copyParent, Composite pasteParent) { - - // TextTransfer - Label l = new Label(copyParent, SWT.NONE); - l.setText("TextTransfer:"); //$NON-NLS-1$ - copyText = new Text(copyParent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); - copyText.setText("some\nplain\ntext"); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.heightHint = data.widthHint = SIZE; - copyText.setLayoutData(data); - Button b = new Button(copyParent, SWT.PUSH); - b.setText("Copy"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - String data = copyText.getText(); - if (data.length() > 0) { - status.setText(""); - clipboard.setContents(new Object[] {data}, new Transfer[] {TextTransfer.getInstance()}); - } else { - status.setText("nothing to copy"); - } - } - }); - - l = new Label(pasteParent, SWT.NONE); - l.setText("TextTransfer:"); //$NON-NLS-1$ - pasteText = new Text(pasteParent, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); - data = new GridData(GridData.FILL_HORIZONTAL); - data.heightHint = data.widthHint = SIZE; - pasteText.setLayoutData(data); - b = new Button(pasteParent, SWT.PUSH); - b.setText("Paste"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - String data = (String)clipboard.getContents(TextTransfer.getInstance()); - if (data != null && data.length() > 0) { - status.setText(""); - pasteText.setText("begin paste>"+data+"<end paste"); - } else { - status.setText("nothing to paste"); - } - } - }); -} -void createRTFTransfer(Composite copyParent, Composite pasteParent){ - // RTF Transfer - Label l = new Label(copyParent, SWT.NONE); - l.setText("RTFTransfer:"); //$NON-NLS-1$ - copyRtfText = new Text(copyParent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); - copyRtfText.setText("some\nrtf\ntext"); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.heightHint = data.widthHint = SIZE; - copyRtfText.setLayoutData(data); - Button b = new Button(copyParent, SWT.PUSH); - b.setText("Copy"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - String data = copyRtfText.getText(); - if (data.length() > 0) { - status.setText(""); - data = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\uc1\\b\\i " + data + "}"; - clipboard.setContents(new Object[] {data}, new Transfer[] {RTFTransfer.getInstance()}); - } else { - status.setText("nothing to copy"); - } - } - }); - - l = new Label(pasteParent, SWT.NONE); - l.setText("RTFTransfer:"); //$NON-NLS-1$ - pasteRtfText = new Text(pasteParent, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); - data = new GridData(GridData.FILL_HORIZONTAL); - data.heightHint = data.widthHint = SIZE; - pasteRtfText.setLayoutData(data); - b = new Button(pasteParent, SWT.PUSH); - b.setText("Paste"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - String data = (String)clipboard.getContents(RTFTransfer.getInstance()); - if (data != null && data.length() > 0) { - status.setText(""); - pasteRtfText.setText("start paste>"+data+"<end paste"); - } else { - status.setText("nothing to paste"); - } - } - }); -} -void createFileTransfer(Composite copyParent, Composite pasteParent){ - //File Transfer - Label l = new Label(copyParent, SWT.NONE); - l.setText("FileTransfer:"); //$NON-NLS-1$ - - Composite c = new Composite(copyParent, SWT.NONE); - c.setLayout(new GridLayout(2, false)); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - c.setLayoutData(data); - - copyFileTable = new Table(c, SWT.MULTI | SWT.BORDER); - data = new GridData(GridData.FILL_HORIZONTAL); - data.heightHint = data.widthHint = SIZE; - data.horizontalSpan = 2; - copyFileTable.setLayoutData(data); - - Button b = new Button(c, SWT.PUSH); - b.setText("Select file(s)"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - FileDialog dialog = new FileDialog(shell, SWT.OPEN | SWT.MULTI); - String result = dialog.open(); - if (result != null && result.length() > 0){ - //copyFileTable.removeAll(); - String separator = System.getProperty("file.separator"); - String path = dialog.getFilterPath(); - String[] names = dialog.getFileNames(); - for (int i = 0; i < names.length; i++) { - TableItem item = new TableItem(copyFileTable, SWT.NONE); - item.setText(path+separator+names[i]); - } - } - } - }); - b = new Button(c, SWT.PUSH); - b.setText("Select directory"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - DirectoryDialog dialog = new DirectoryDialog(shell, SWT.OPEN); - String result = dialog.open(); - if (result != null && result.length() > 0){ - //copyFileTable.removeAll(); - TableItem item = new TableItem(copyFileTable, SWT.NONE); - item.setText(result); - } - } - }); - - b = new Button(copyParent, SWT.PUSH); - b.setText("Copy"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - TableItem[] items = copyFileTable.getItems(); - if (items.length > 0){ - status.setText(""); - String[] data = new String[items.length]; - for (int i = 0; i < data.length; i++) { - data[i] = items[i].getText(); - } - clipboard.setContents(new Object[] {data}, new Transfer[] {FileTransfer.getInstance()}); - } else { - status.setText("nothing to copy"); - } - } - }); - - l = new Label(pasteParent, SWT.NONE); - l.setText("FileTransfer:"); //$NON-NLS-1$ - pasteFileTable = new Table(pasteParent, SWT.MULTI | SWT.BORDER); - data = new GridData(GridData.FILL_HORIZONTAL); - data.heightHint = data.widthHint = SIZE; - pasteFileTable.setLayoutData(data); - b = new Button(pasteParent, SWT.PUSH); - b.setText("Paste"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - String[] data = (String[])clipboard.getContents(FileTransfer.getInstance()); - if (data != null && data.length > 0) { - status.setText(""); - pasteFileTable.removeAll(); - for (int i = 0; i < data.length; i++) { - TableItem item = new TableItem(pasteFileTable, SWT.NONE); - item.setText(data[i]); - } - } else { - status.setText("nothing to paste"); - } - } - }); -} -void createMyTransfer(Composite copyParent, Composite pasteParent){ - // MyType Transfer - // TODO -} -void createControlTransfer(Composite parent){ - Label l = new Label(parent, SWT.NONE); - l.setText("Text:"); - Button b = new Button(parent, SWT.PUSH); - b.setText("Cut"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - text.cut(); - } - }); - b = new Button(parent, SWT.PUSH); - b.setText("Copy"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - text.copy(); - } - }); - b = new Button(parent, SWT.PUSH); - b.setText("Paste"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - text.paste(); - } - }); - text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.heightHint = data.widthHint = SIZE; - text.setLayoutData(data); - - l = new Label(parent, SWT.NONE); - l.setText("Combo:"); - b = new Button(parent, SWT.PUSH); - b.setText("Cut"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - combo.cut(); - } - }); - b = new Button(parent, SWT.PUSH); - b.setText("Copy"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - combo.copy(); - } - }); - b = new Button(parent, SWT.PUSH); - b.setText("Paste"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - combo.paste(); - } - }); - combo = new Combo(parent, SWT.NONE); - combo.setItems(new String[] {"Item 1", "Item 2", "Item 3", "A longer Item"}); - - l = new Label(parent, SWT.NONE); - l.setText("StyledText:"); - l = new Label(parent, SWT.NONE); - l.setVisible(false); - b = new Button(parent, SWT.PUSH); - b.setText("Copy"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - styledText.copy(); - } - }); - b = new Button(parent, SWT.PUSH); - b.setText("Paste"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - styledText.paste(); - } - }); - styledText = new StyledText(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); - data = new GridData(GridData.FILL_HORIZONTAL); - data.heightHint = data.widthHint = SIZE; - styledText.setLayoutData(data); -} -void createAvailableTypes(Composite parent){ - final List list = new List(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); - GridData data = new GridData(GridData.FILL_BOTH); - data.heightHint = 100; - list.setLayoutData(data); - Button b = new Button(parent, SWT.PUSH); - b.setText("Get Available Types"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - list.removeAll(); - String[] names = clipboard.getAvailableTypeNames(); - for (int i = 0; i < names.length; i++) { - list.add(names[i]); - } - } - }); -} -}
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java deleted file mode 100644 index f1fb79a6bb..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java +++ /dev/null @@ -1,16 +0,0 @@ -/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.clipboard;
-
-public class MyType {
- String firstName;
- String lastName;
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java deleted file mode 100644 index 306a5de507..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java +++ /dev/null @@ -1,92 +0,0 @@ -/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.clipboard;
-
-import java.io.*;
-import org.eclipse.swt.dnd.*;
-
-public class MyTypeTransfer extends ByteArrayTransfer {
-
- private static final String MYTYPENAME = "name_list"; //$NON-NLS-1$
- private static final int MYTYPEID = registerType(MYTYPENAME);
- private static MyTypeTransfer _instance = new MyTypeTransfer();
-
-public static MyTypeTransfer getInstance () {
- return _instance;
-}
-public void javaToNative (Object object, TransferData transferData) {
- if (object == null || !(object instanceof MyType[])) return;
-
- if (isSupportedType(transferData)) {
- MyType[] myTypes = (MyType[]) object;
- try {
- // write data to a byte array and then ask super to convert to pMedium
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- DataOutputStream writeOut = new DataOutputStream(out);
- for (int i = 0, length = myTypes.length; i < length; i++){
- byte[] buffer = myTypes[i].firstName.getBytes();
- writeOut.writeInt(buffer.length);
- writeOut.write(buffer);
- buffer = myTypes[i].firstName.getBytes();
- writeOut.writeInt(buffer.length);
- writeOut.write(buffer);
- }
- byte[] buffer = out.toByteArray();
- writeOut.close();
-
- super.javaToNative(buffer, transferData);
-
- } catch (IOException e) {
- }
- }
-}
-public Object nativeToJava(TransferData transferData){
-
- if (isSupportedType(transferData)) {
-
- byte[] buffer = (byte[])super.nativeToJava(transferData);
- if (buffer == null) return null;
-
- MyType[] myData = new MyType[0];
- try {
- ByteArrayInputStream in = new ByteArrayInputStream(buffer);
- DataInputStream readIn = new DataInputStream(in);
- while(readIn.available() > 20) {
- MyType datum = new MyType();
- int size = readIn.readInt();
- byte[] name = new byte[size];
- readIn.read(name);
- datum.firstName = new String(name);
- size = readIn.readInt();
- name = new byte[size];
- readIn.read(name);
- datum.lastName = new String(name);
- MyType[] newMyData = new MyType[myData.length + 1];
- System.arraycopy(myData, 0, newMyData, 0, myData.length);
- newMyData[myData.length] = datum;
- myData = newMyData;
- }
- readIn.close();
- } catch (IOException ex) {
- return null;
- }
- return myData;
- }
-
- return null;
-}
-protected String[] getTypeNames(){
- return new String[]{MYTYPENAME};
-}
-protected int[] getTypeIds(){
- return new int[] {MYTYPEID};
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java deleted file mode 100755 index 271a9caca5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java +++ /dev/null @@ -1,89 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -/** - * <code>AlignableTab</code> is the abstract - * superclass of example controls that can be - * aligned. - */ -abstract class AlignableTab extends Tab { - - /* Alignment Controls */ - Button leftButton, rightButton, centerButton; - - /* Alignment Group */ - Group alignmentGroup; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - AlignableTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Control" group. - */ - void createControlGroup () { - super.createControlGroup (); - - /* Create the group */ - alignmentGroup = new Group (controlGroup, SWT.NONE); - alignmentGroup.setLayout (new GridLayout ()); - alignmentGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | - GridData.VERTICAL_ALIGN_FILL)); - alignmentGroup.setText (ControlExample.getResourceString("Alignment")); - - /* Create the controls */ - leftButton = new Button (alignmentGroup, SWT.RADIO); - leftButton.setText (ControlExample.getResourceString("Left")); - centerButton = new Button (alignmentGroup, SWT.RADIO); - centerButton.setText(ControlExample.getResourceString("Center")); - rightButton = new Button (alignmentGroup, SWT.RADIO); - rightButton.setText (ControlExample.getResourceString("Right")); - - /* Add the listeners */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected(SelectionEvent event) { - if (!((Button) event.widget).getSelection ()) return; - setExampleWidgetAlignment (); - }; - }; - leftButton.addSelectionListener (selectionListener); - centerButton.addSelectionListener (selectionListener); - rightButton.addSelectionListener (selectionListener); - } - - /** - * Sets the alignment of the "Example" widgets. - */ - abstract void setExampleWidgetAlignment (); - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - Control [] controls = getExampleWidgets (); - if (controls.length != 0) { - leftButton.setSelection ((controls [0].getStyle () & SWT.LEFT) != 0); - centerButton.setSelection ((controls [0].getStyle () & SWT.CENTER) != 0); - rightButton.setSelection ((controls [0].getStyle () & SWT.RIGHT) != 0); - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java deleted file mode 100755 index 7d35f3a83e..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java +++ /dev/null @@ -1,205 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -/** - * <code>ButtonTab</code> is the class that - * demonstrates SWT buttons. - */ -class ButtonTab extends AlignableTab { - - /* Example widgets and groups that contain them */ - Button button1, button2, button3, button4, button5, button6; - Group textButtonGroup, imageButtonGroup; - - /* Alignment widgets added to the "Control" group */ - Button upButton, downButton; - - /* Style widgets added to the "Style" group */ - Button pushButton, checkButton, radioButton, toggleButton, arrowButton, flatButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - ButtonTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Control" group. - */ - void createControlGroup () { - super.createControlGroup (); - - /* Create the controls */ - upButton = new Button (alignmentGroup, SWT.RADIO); - upButton.setText (ControlExample.getResourceString("Up")); - downButton = new Button (alignmentGroup, SWT.RADIO); - downButton.setText (ControlExample.getResourceString("Down")); - - /* Add the listeners */ - SelectionListener selectionListener = new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - if (!((Button) event.widget).getSelection()) return; - setExampleWidgetAlignment (); - }; - }; - upButton.addSelectionListener(selectionListener); - downButton.addSelectionListener(selectionListener); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for text buttons */ - textButtonGroup = new Group(exampleGroup, SWT.NONE); - GridLayout gridLayout = new GridLayout (); - textButtonGroup.setLayout(gridLayout); - gridLayout.numColumns = 3; - textButtonGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - textButtonGroup.setText (ControlExample.getResourceString("Text_Buttons")); - - /* Create a group for the image buttons */ - imageButtonGroup = new Group(exampleGroup, SWT.NONE); - gridLayout = new GridLayout(); - imageButtonGroup.setLayout(gridLayout); - gridLayout.numColumns = 3; - imageButtonGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - imageButtonGroup.setText (ControlExample.getResourceString("Image_Buttons")); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (pushButton.getSelection()) style |= SWT.PUSH; - if (checkButton.getSelection()) style |= SWT.CHECK; - if (radioButton.getSelection()) style |= SWT.RADIO; - if (toggleButton.getSelection()) style |= SWT.TOGGLE; - if (flatButton.getSelection()) style |= SWT.FLAT; - if (borderButton.getSelection()) style |= SWT.BORDER; - if (leftButton.getSelection()) style |= SWT.LEFT; - if (rightButton.getSelection()) style |= SWT.RIGHT; - if (arrowButton.getSelection()) { - style |= SWT.ARROW; - if (upButton.getSelection()) style |= SWT.UP; - if (downButton.getSelection()) style |= SWT.DOWN; - } else { - if (centerButton.getSelection()) style |= SWT.CENTER; - } - - /* Create the example widgets */ - button1 = new Button(textButtonGroup, style); - button1.setText(ControlExample.getResourceString("One")); - button2 = new Button(textButtonGroup, style); - button2.setText(ControlExample.getResourceString("Two")); - button3 = new Button(textButtonGroup, style); - button3.setText(ControlExample.getResourceString("Three")); - button4 = new Button(imageButtonGroup, style); - button4.setImage(instance.images[ControlExample.ciClosedFolder]); - button5 = new Button(imageButtonGroup, style); - button5.setImage(instance.images[ControlExample.ciOpenFolder]); - button6 = new Button(imageButtonGroup, style); - button6.setImage(instance.images[ControlExample.ciTarget]); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup (); - - /* Create the extra widgets */ - pushButton = new Button (styleGroup, SWT.RADIO); - pushButton.setText("SWT.PUSH"); - checkButton = new Button (styleGroup, SWT.RADIO); - checkButton.setText ("SWT.CHECK"); - radioButton = new Button (styleGroup, SWT.RADIO); - radioButton.setText ("SWT.RADIO"); - toggleButton = new Button (styleGroup, SWT.RADIO); - toggleButton.setText ("SWT.TOGGLE"); - arrowButton = new Button (styleGroup, SWT.RADIO); - arrowButton.setText ("SWT.ARROW"); - flatButton = new Button (styleGroup, SWT.CHECK); - flatButton.setText ("SWT.FLAT"); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {button1, button2, button3, button4, button5, button6}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Button"; - } - - /** - * Sets the alignment of the "Example" widgets. - */ - void setExampleWidgetAlignment () { - int alignment = 0; - if (leftButton.getSelection ()) alignment = SWT.LEFT; - if (centerButton.getSelection ()) alignment = SWT.CENTER; - if (rightButton.getSelection ()) alignment = SWT.RIGHT; - if (upButton.getSelection ()) alignment = SWT.UP; - if (downButton.getSelection ()) alignment = SWT.DOWN; - button1.setAlignment (alignment); - button2.setAlignment (alignment); - button3.setAlignment (alignment); - button4.setAlignment (alignment); - button5.setAlignment (alignment); - button6.setAlignment (alignment); - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - if (arrowButton.getSelection ()) { - upButton.setEnabled (true); - centerButton.setEnabled (false); - downButton.setEnabled (true); - } else { - upButton.setEnabled (false); - centerButton.setEnabled (true); - downButton.setEnabled (false); - } - upButton.setSelection ((button1.getStyle () & SWT.UP) != 0); - downButton.setSelection ((button1.getStyle () & SWT.DOWN) != 0); - pushButton.setSelection ((button1.getStyle () & SWT.PUSH) != 0); - checkButton.setSelection ((button1.getStyle () & SWT.CHECK) != 0); - radioButton.setSelection ((button1.getStyle () & SWT.RADIO) != 0); - toggleButton.setSelection ((button1.getStyle () & SWT.TOGGLE) != 0); - arrowButton.setSelection ((button1.getStyle () & SWT.ARROW) != 0); - flatButton.setSelection ((button1.getStyle () & SWT.FLAT) != 0); - borderButton.setSelection ((button1.getStyle () & SWT.BORDER) != 0); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java deleted file mode 100644 index ab35141bec..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.layout.*; - -class CComboTab extends Tab { - - /* Example widgets and groups that contain them */ - CCombo combo1; - Group comboGroup; - - /* Style widgets added to the "Style" group */ - Button flatButton, readOnlyButton; - - static String [] ListData = {ControlExample.getResourceString("ListData0_0"), - ControlExample.getResourceString("ListData0_1"), - ControlExample.getResourceString("ListData0_2"), - ControlExample.getResourceString("ListData0_3"), - ControlExample.getResourceString("ListData0_4"), - ControlExample.getResourceString("ListData0_5"), - ControlExample.getResourceString("ListData0_6"), - ControlExample.getResourceString("ListData0_7"), - ControlExample.getResourceString("ListData0_8")}; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - CComboTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the combo box */ - comboGroup = new Group (exampleGroup, SWT.NONE); - comboGroup.setLayout (new GridLayout ()); - comboGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - comboGroup.setText (ControlExample.getResourceString("Custom_Combo")); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (flatButton.getSelection ()) style |= SWT.FLAT; - if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY; - if (borderButton.getSelection ()) style |= SWT.BORDER; - - /* Create the example widgets */ - combo1 = new CCombo (comboGroup, style); - combo1.setItems (ListData); - if (ListData.length >= 3) { - combo1.setText(ListData [2]); - } - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup () { - super.createStyleGroup (); - - /* Create the extra widgets */ - readOnlyButton = new Button (styleGroup, SWT.CHECK); - readOnlyButton.setText ("SWT.READ_ONLY"); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - flatButton = new Button (styleGroup, SWT.CHECK); - flatButton.setText ("SWT.FLAT"); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {combo1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "CCombo"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - flatButton.setSelection ((combo1.getStyle () & SWT.FLAT) != 0); - readOnlyButton.setSelection ((combo1.getStyle () & SWT.READ_ONLY) != 0); - borderButton.setSelection ((combo1.getStyle () & SWT.BORDER) != 0); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java deleted file mode 100644 index 745b4b92b4..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java +++ /dev/null @@ -1,138 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class CLabelTab extends AlignableTab { - /* Example widgets and groups that contain them */ - CLabel label1, label2, label3; - Group textLabelGroup; - - /* Style widgets added to the "Style" group */ - Button shadowInButton, shadowOutButton, shadowNoneButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - CLabelTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the text labels */ - textLabelGroup = new Group(exampleGroup, SWT.NONE); - GridLayout gridLayout = new GridLayout (); - textLabelGroup.setLayout (gridLayout); - gridLayout.numColumns = 3; - textLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - textLabelGroup.setText (ControlExample.getResourceString("Custom_Labels")); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN; - if (shadowNoneButton.getSelection ()) style |= SWT.SHADOW_NONE; - if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT; - - /* Create the example widgets */ - label1 = new CLabel (textLabelGroup, style); - label1.setText(ControlExample.getResourceString("One")); - label1.setImage (instance.images[ControlExample.ciClosedFolder]); - label2 = new CLabel (textLabelGroup, style); - label2.setImage (instance.images[ControlExample.ciTarget]); - label3 = new CLabel (textLabelGroup, style); - label3.setText(ControlExample.getResourceString("Three")); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup (); - - /* Create the extra widgets */ - shadowNoneButton = new Button (styleGroup, SWT.RADIO); - shadowNoneButton.setText ("SWT.SHADOW_NONE"); - shadowInButton = new Button (styleGroup, SWT.RADIO); - shadowInButton.setText ("SWT.SHADOW_IN"); - shadowOutButton = new Button (styleGroup, SWT.RADIO); - shadowOutButton.setText ("SWT.SHADOW_OUT"); - - /* Add the listeners */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected(SelectionEvent event) { - if ((event.widget.getStyle() & SWT.RADIO) != 0) { - if (!((Button) event.widget).getSelection ()) return; - } - recreateExampleWidgets (); - }; - }; - shadowInButton.addSelectionListener (selectionListener); - shadowOutButton.addSelectionListener (selectionListener); - shadowNoneButton.addSelectionListener (selectionListener); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {label1, label2, label3}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "CLabel"; - } - - /** - * Sets the alignment of the "Example" widgets. - */ - void setExampleWidgetAlignment () { - int alignment = 0; - if (leftButton.getSelection ()) alignment = SWT.LEFT; - if (centerButton.getSelection ()) alignment = SWT.CENTER; - if (rightButton.getSelection ()) alignment = SWT.RIGHT; - label1.setAlignment (alignment); - label2.setAlignment (alignment); - label3.setAlignment (alignment); - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - leftButton.setSelection ((label1.getStyle () & SWT.LEFT) != 0); - centerButton.setSelection ((label1.getStyle () & SWT.CENTER) != 0); - rightButton.setSelection ((label1.getStyle () & SWT.RIGHT) != 0); - shadowInButton.setSelection ((label1.getStyle () & SWT.SHADOW_IN) != 0); - shadowOutButton.setSelection ((label1.getStyle () & SWT.SHADOW_OUT) != 0); - shadowNoneButton.setSelection ((label1.getStyle () & (SWT.SHADOW_IN | SWT.SHADOW_OUT)) == 0); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java deleted file mode 100644 index 7bdeed1709..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class CTabFolderTab extends Tab { - int lastSelectedTab = 0; - - /* Example widgets and groups that contain them */ - CTabFolder tabFolder1; - Group tabFolderGroup; - - /* Style widgets added to the "Style" group */ - Button topButton, bottomButton, flatButton; - - static String [] CTabItems1 = {ControlExample.getResourceString("CTabItem1_0"), - ControlExample.getResourceString("CTabItem1_1"), - ControlExample.getResourceString("CTabItem1_2")}; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - CTabFolderTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the CTabFolder */ - tabFolderGroup = new Group (exampleGroup, SWT.NONE); - tabFolderGroup.setLayout (new GridLayout ()); - tabFolderGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - tabFolderGroup.setText ("CTabFolder"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (topButton.getSelection ()) style |= SWT.TOP; - if (bottomButton.getSelection ()) style |= SWT.BOTTOM; - if (borderButton.getSelection ()) style |= SWT.BORDER; - if (flatButton.getSelection ()) style |= SWT.FLAT; - - /* Create the example widgets */ - tabFolder1 = new CTabFolder (tabFolderGroup, style); - for (int i = 0; i < CTabItems1.length; i++) { - CTabItem item = new CTabItem(tabFolder1, SWT.NONE); - item.setText(CTabItems1[i]); - Label label = new Label(tabFolder1, SWT.NONE); - label.setText(ControlExample.getResourceString("CTabItem_content") + ": " + i); - item.setControl(label); - } - tabFolder1.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event event) { - lastSelectedTab = tabFolder1.getSelectionIndex(); - } - }); - tabFolder1.setSelection(lastSelectedTab); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup (); - - /* Create the extra widgets */ - topButton = new Button (styleGroup, SWT.RADIO); - topButton.setText ("SWT.TOP"); - topButton.setSelection(true); - bottomButton = new Button (styleGroup, SWT.RADIO); - bottomButton.setText ("SWT.BOTTOM"); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - flatButton = new Button (styleGroup, SWT.CHECK); - flatButton.setText ("SWT.FLAT"); - flatButton.setEnabled(false); - - /* Add the listeners */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected(SelectionEvent event) { - if ((event.widget.getStyle() & SWT.RADIO) != 0) { - if (!((Button) event.widget).getSelection ()) return; - } - recreateExampleWidgets (); - }; - }; - topButton.addSelectionListener (selectionListener); - bottomButton.addSelectionListener (selectionListener); - borderButton.addSelectionListener (selectionListener); - flatButton.addSelectionListener (selectionListener); - borderButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - flatButton.setEnabled(borderButton.getSelection()); - } - }); - } - - /** - * Gets the list of custom event names. - * - * @return an array containing custom event names - */ - String [] getCustomEventNames () { - return new String [] {"CTabFolderEvent"}; - } - - /** - * Gets the "Example" widget children's items, if any. - * - * @return an array containing the example widget children's items - */ - Item [] getExampleWidgetItems () { - return tabFolder1.getItems(); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {tabFolder1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "CTabFolder"; - } - - /** - * Hooks the custom listener specified by eventName. - */ - void hookCustomListener (final String eventName) { - if (eventName == "CTabFolderEvent") { - tabFolder1.addCTabFolderListener (new CTabFolderAdapter () { - public void itemClosed (CTabFolderEvent event) { - log (eventName, event); - } - }); - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CanvasTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CanvasTab.java deleted file mode 100644 index afd79d0597..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CanvasTab.java +++ /dev/null @@ -1,306 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; - -class CanvasTab extends Tab { - static int colors [] = { - SWT.COLOR_RED, - SWT.COLOR_GREEN, - SWT.COLOR_BLUE, - SWT.COLOR_MAGENTA, - SWT.COLOR_YELLOW, - SWT.COLOR_CYAN, - SWT.COLOR_DARK_RED, - SWT.COLOR_DARK_GREEN, - SWT.COLOR_DARK_BLUE, - SWT.COLOR_DARK_MAGENTA, - SWT.COLOR_DARK_YELLOW, - SWT.COLOR_DARK_CYAN - }; - - /* Example widgets and groups that contain them */ - Canvas canvas; - Group canvasGroup; - - /* Style widgets added to the "Style" group */ - Button horizontalButton, verticalButton, noBackgroundButton, noFocusButton, noMergePaintsButton, noRedrawResizeButton; - - /* Other widgets added to the "Other" group */ - Button caretButton, fillDamageButton; - - int paintCount; - int cx, cy; - int maxX, maxY; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - CanvasTab(ControlExample instance) { - super(instance); - } - - /** - * Creates a bitmap image. - */ - Image createBitmapImage (Display display, String name) { - ImageData source = new ImageData(ControlExample.class.getResourceAsStream(name + ".bmp")); - ImageData mask = new ImageData(ControlExample.class.getResourceAsStream(name + "_mask.bmp")); - return new Image (display, source, mask); - } - - /** - * Creates the "Other" group. - */ - void createOtherGroup () { - super.createOtherGroup (); - - /* Create display controls specific to this example */ - caretButton = new Button (otherGroup, SWT.CHECK); - caretButton.setText (ControlExample.getResourceString("Caret")); - fillDamageButton = new Button (otherGroup, SWT.CHECK); - fillDamageButton.setText (ControlExample.getResourceString("FillDamage")); - - /* Add the listeners */ - caretButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setCaret (); - } - }); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the canvas widget */ - canvasGroup = new Group (exampleGroup, SWT.NONE); - canvasGroup.setLayout (new GridLayout ()); - canvasGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - canvasGroup.setText ("Canvas"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL; - if (verticalButton.getSelection ()) style |= SWT.V_SCROLL; - if (borderButton.getSelection ()) style |= SWT.BORDER; - if (noBackgroundButton.getSelection ()) style |= SWT.NO_BACKGROUND; - if (noFocusButton.getSelection ()) style |= SWT.NO_FOCUS; - if (noMergePaintsButton.getSelection ()) style |= SWT.NO_MERGE_PAINTS; - if (noRedrawResizeButton.getSelection ()) style |= SWT.NO_REDRAW_RESIZE; - - /* Create the example widgets */ - paintCount = 0; cx = 0; cy = 0; - canvas = new Canvas (canvasGroup, style); - canvas.addPaintListener(new PaintListener () { - public void paintControl(PaintEvent e) { - paintCount++; - GC gc = e.gc; - if (fillDamageButton.getSelection ()) { - Color color = e.display.getSystemColor (colors [paintCount % colors.length]); - gc.setBackground(color); - gc.fillRectangle(e.x, e.y, e.width, e.height); - } - Point size = canvas.getSize (); - gc.drawArc(cx + 1, cy + 1, size.x - 2, size.y - 2, 0, 360); - String counter = new Integer(paintCount).toString(); - Point extent = gc.stringExtent(counter); - gc.drawString(counter, cx + (size.x - extent.x) / 2, cy + (size.y - extent.y) / 2); - } - }); - canvas.addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent event) { - Point size = canvas.getSize (); - maxX = size.x * 3 / 2; maxY = size.y * 3 / 2; - resizeScrollBars (); - } - }); - ScrollBar bar = canvas.getHorizontalBar(); - if (bar != null) { - bar.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - scrollHorizontal ((ScrollBar)event.widget); - } - }); - } - bar = canvas.getVerticalBar(); - if (bar != null) { - bar.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - scrollVertical ((ScrollBar)event.widget); - } - }); - } - resizeScrollBars (); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup(); - - /* Create the extra widgets */ - horizontalButton = new Button (styleGroup, SWT.CHECK); - horizontalButton.setText ("SWT.H_SCROLL"); - horizontalButton.setSelection(true); - verticalButton = new Button (styleGroup, SWT.CHECK); - verticalButton.setText ("SWT.V_SCROLL"); - verticalButton.setSelection(true); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - noBackgroundButton = new Button (styleGroup, SWT.CHECK); - noBackgroundButton.setText ("SWT.NO_BACKGROUND"); - noFocusButton = new Button (styleGroup, SWT.CHECK); - noFocusButton.setText ("SWT.NO_FOCUS"); - noMergePaintsButton = new Button (styleGroup, SWT.CHECK); - noMergePaintsButton.setText ("SWT.NO_MERGE_PAINTS"); - noRedrawResizeButton = new Button (styleGroup, SWT.CHECK); - noRedrawResizeButton.setText ("SWT.NO_REDRAW_RESIZE"); - } - - /** - * Creates the tab folder page. - * - * @param tabFolder org.eclipse.swt.widgets.TabFolder - * @return the new page for the tab folder - */ - Composite createTabFolderPage (TabFolder tabFolder) { - super.createTabFolderPage (tabFolder); - - /* - * Add a resize listener to the tabFolderPage so that - * if the user types into the example widget to change - * its preferred size, and then resizes the shell, we - * recalculate the preferred size correctly. - */ - tabFolderPage.addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent e) { - setExampleWidgetSize (); - } - }); - - return tabFolderPage; - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {canvas}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Canvas"; - } - - /** - * Resizes the maximum and thumb of both scrollbars. - */ - void resizeScrollBars () { - Rectangle clientArea = canvas.getClientArea(); - ScrollBar bar = canvas.getHorizontalBar(); - if (bar != null) { - bar.setMaximum(maxX); - bar.setThumb(clientArea.width); - bar.setPageIncrement(clientArea.width); - } - bar = canvas.getVerticalBar(); - if (bar != null) { - bar.setMaximum(maxY); - bar.setThumb(clientArea.height); - bar.setPageIncrement(clientArea.height); - } - } - - /** - * Scrolls the canvas horizontally. - * - * @param scrollBar - */ - void scrollHorizontal (ScrollBar scrollBar) { - Rectangle bounds = canvas.getClientArea(); - int x = -scrollBar.getSelection(); - if (x + maxX < bounds.width) { - x = bounds.width - maxX; - } - canvas.scroll(x, cy, cx, cy, maxX, maxY, false); - cx = x; - } - - /** - * Scrolls the canvas vertically. - * - * @param scrollBar - */ - void scrollVertical (ScrollBar scrollBar) { - Rectangle bounds = canvas.getClientArea(); - int y = -scrollBar.getSelection(); - if (y + maxY < bounds.height) { - y = bounds.height - maxY; - } - canvas.scroll(cx, y, cx, cy, maxX, maxY, false); - cy = y; - } - - /** - * Sets or clears the caret in the "Example" widget. - */ - void setCaret () { - Caret oldCaret = canvas.getCaret (); - if (caretButton.getSelection ()) { - Caret newCaret = new Caret(canvas, SWT.NONE); - Font font = canvas.getFont(); - newCaret.setFont(font); - GC gc = new GC(canvas); - gc.setFont(font); - newCaret.setBounds(1, 1, 1, gc.getFontMetrics().getHeight()); - gc.dispose(); - canvas.setCaret (newCaret); - canvas.setFocus(); - } else { - canvas.setCaret (null); - } - if (oldCaret != null) oldCaret.dispose (); - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - horizontalButton.setSelection ((canvas.getStyle () & SWT.H_SCROLL) != 0); - verticalButton.setSelection ((canvas.getStyle () & SWT.V_SCROLL) != 0); - borderButton.setSelection ((canvas.getStyle () & SWT.BORDER) != 0); - noBackgroundButton.setSelection ((canvas.getStyle () & SWT.NO_BACKGROUND) != 0); - noFocusButton.setSelection ((canvas.getStyle () & SWT.NO_FOCUS) != 0); - noMergePaintsButton.setSelection ((canvas.getStyle () & SWT.NO_MERGE_PAINTS) != 0); - noRedrawResizeButton.setSelection ((canvas.getStyle () & SWT.NO_REDRAW_RESIZE) != 0); - setCaret (); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java deleted file mode 100755 index 0cff972d60..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; - -class ComboTab extends Tab { - - /* Example widgets and groups that contain them */ - Combo combo1; - Group comboGroup; - - /* Style widgets added to the "Style" group */ - Button dropDownButton, readOnlyButton, simpleButton; - - static String [] ListData = {ControlExample.getResourceString("ListData0_0"), - ControlExample.getResourceString("ListData0_1"), - ControlExample.getResourceString("ListData0_2"), - ControlExample.getResourceString("ListData0_3"), - ControlExample.getResourceString("ListData0_4"), - ControlExample.getResourceString("ListData0_5"), - ControlExample.getResourceString("ListData0_6"), - ControlExample.getResourceString("ListData0_7"), - ControlExample.getResourceString("ListData0_8")}; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - ComboTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the combo box */ - comboGroup = new Group (exampleGroup, SWT.NONE); - comboGroup.setLayout (new GridLayout ()); - comboGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - comboGroup.setText ("Combo"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (dropDownButton.getSelection ()) style |= SWT.DROP_DOWN; - if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY; - if (simpleButton.getSelection ()) style |= SWT.SIMPLE; - - /* Create the example widgets */ - combo1 = new Combo (comboGroup, style); - combo1.setItems (ListData); - if (ListData.length >= 3) { - combo1.setText(ListData [2]); - } - } - - /** - * Creates the tab folder page. - * - * @param tabFolder org.eclipse.swt.widgets.TabFolder - * @return the new page for the tab folder - */ - Composite createTabFolderPage (TabFolder tabFolder) { - super.createTabFolderPage (tabFolder); - - /* - * Add a resize listener to the tabFolderPage so that - * if the user types into the example widget to change - * its preferred size, and then resizes the shell, we - * recalculate the preferred size correctly. - */ - tabFolderPage.addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent e) { - setExampleWidgetSize (); - } - }); - - return tabFolderPage; - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup () { - super.createStyleGroup (); - - /* Create the extra widgets */ - dropDownButton = new Button (styleGroup, SWT.RADIO); - dropDownButton.setText ("SWT.DROP_DOWN"); - simpleButton = new Button (styleGroup, SWT.RADIO); - simpleButton.setText("SWT.SIMPLE"); - readOnlyButton = new Button (styleGroup, SWT.CHECK); - readOnlyButton.setText ("SWT.READ_ONLY"); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {combo1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Combo"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - dropDownButton.setSelection ((combo1.getStyle () & SWT.DROP_DOWN) != 0); - simpleButton.setSelection ((combo1.getStyle () & SWT.SIMPLE) != 0); - readOnlyButton.setSelection ((combo1.getStyle () & SWT.READ_ONLY) != 0); - readOnlyButton.setEnabled(!simpleButton.getSelection()); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java deleted file mode 100755 index 3201eac2f2..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java +++ /dev/null @@ -1,205 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -import java.text.*; -import java.util.*; - -public class ControlExample { - private static ResourceBundle resourceBundle = - ResourceBundle.getBundle("examples_control"); - private ShellTab shellTab; - private TabFolder tabFolder; - Image images[]; - - static final int ciClosedFolder = 0, ciOpenFolder = 1, ciTarget = 2; - static final String[] imageLocations = { - "closedFolder.gif", - "openFolder.gif", - "target.gif" }; - - /** - * Creates an instance of a ControlExample embedded inside - * the supplied parent Composite. - * - * @param parent the container of the example - */ - public ControlExample(Composite parent) { - initResources(); - tabFolder = new TabFolder (parent, SWT.NONE); - Tab [] tabs = createTabs(); - for (int i=0; i<tabs.length; i++) { - TabItem item = new TabItem (tabFolder, SWT.NONE); - item.setText (tabs [i].getTabText ()); - item.setControl (tabs [i].createTabFolderPage (tabFolder)); - item.setData (tabs [i]); - } - } - - /** - * Answers the set of example Tabs - */ - Tab[] createTabs() { - return new Tab [] { - new ButtonTab (this), - new CanvasTab (this), - new ComboTab (this), - new CoolBarTab (this), - new DialogTab (this), - new GroupTab (this), - new LabelTab (this), - new ListTab (this), - new ProgressBarTab (this), - new SashTab (this), - shellTab = new ShellTab(this), - new SliderTab (this), - new TabFolderTab (this), - new TableTab (this), - new TextTab (this), - new ToolBarTab (this), - new TreeTab (this), - }; - } - - /** - * Disposes of all resources associated with a particular - * instance of the ControlExample. - */ - public void dispose() { - /* - * Destroy any shells that may have been created - * by the Shells tab. When a shell is disposed, - * all child shells are also disposed. Therefore - * it is necessary to check for disposed shells - * in the shells list to avoid disposing a shell - * twice. - */ - if (shellTab != null) shellTab.closeAllShells (); - shellTab = null; - tabFolder = null; - freeResources(); - } - - /** - * Frees the resources - */ - void freeResources() { - if (images != null) { - for (int i = 0; i < images.length; ++i) { - final Image image = images[i]; - if (image != null) image.dispose(); - } - images = null; - } - } - - /** - * Gets a string from the resource bundle. - * We don't want to crash because of a missing String. - * Returns the key if not found. - */ - static String getResourceString(String key) { - try { - return resourceBundle.getString(key); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } - - /** - * Gets a string from the resource bundle and binds it - * with the given arguments. If the key is not found, - * return the key. - */ - static String getResourceString(String key, Object[] args) { - try { - return MessageFormat.format(getResourceString(key), args); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } - - /** - * Loads the resources - */ - void initResources() { - final Class clazz = ControlExample.class; - if (resourceBundle != null) { - try { - if (images == null) { - images = new Image[imageLocations.length]; - - for (int i = 0; i < imageLocations.length; ++i) { - ImageData source = new ImageData(clazz.getResourceAsStream( - imageLocations[i])); - ImageData mask = source.getTransparencyMask(); - images[i] = new Image(null, source, mask); - } - } - return; - } catch (Throwable t) { - } - } - String error = (resourceBundle != null) ? - getResourceString("error.CouldNotLoadResources") : - "Unable to load resources"; - freeResources(); - throw new RuntimeException(error); - } - - /** - * Invokes as a standalone program. - */ - public static void main(String[] args) { - Display display = new Display(); - Shell shell = new Shell(display); - shell.setLayout(new FillLayout()); - ControlExample instance = new ControlExample(shell); - shell.setText(getResourceString("window.title")); - setShellSize(display, shell); - shell.open(); - while (! shell.isDisposed()) { - if (! display.readAndDispatch()) display.sleep(); - } - instance.dispose(); - } - - /** - * Grabs input focus. - */ - public void setFocus() { - tabFolder.setFocus(); - } - - /** - * Sets the size of the shell to it's "packed" size, - * unless that makes it bigger than the display, - * in which case set it to 9/10 of display size. - */ - static void setShellSize (Display display, Shell shell) { - Rectangle bounds = display.getBounds(); - Point size = shell.computeSize (SWT.DEFAULT, SWT.DEFAULT); - if (size.x > bounds.width) size.x = bounds.width * 9 / 10; - if (size.y > bounds.height) size.y = bounds.height * 9 / 10; - shell.setSize (size); - } -} - diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java deleted file mode 100644 index 7a9180a19d..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java +++ /dev/null @@ -1,439 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -class CoolBarTab extends Tab { - Button dropDownButton, lockedButton; - - /* Example widgets and group that contains them */ - CoolBar coolBar; - CoolItem pushItem, dropDownItem, radioItem, checkItem; - Group coolBarGroup; - - Point[] sizes; - int[] wrapIndices; - int[] order; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - CoolBarTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Other" group. - */ - void createOtherGroup () { - super.createOtherGroup (); - - /* Create display controls specific to this example */ - lockedButton = new Button (otherGroup, SWT.CHECK); - lockedButton.setText (ControlExample.getResourceString("Locked")); - - /* Add the listeners */ - lockedButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetLocked (); - } - }); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - coolBarGroup = new Group (exampleGroup, SWT.NONE); - coolBarGroup.setLayout (new GridLayout ()); - coolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - coolBarGroup.setText ("CoolBar"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - int style = getDefaultStyle(), itemStyle = 0; - - /* Compute the widget style */ - int toolBarStyle = SWT.FLAT; - if (borderButton.getSelection()) style |= SWT.BORDER; - if (dropDownButton.getSelection()) itemStyle |= SWT.DROP_DOWN; - - /* - * Create the example widgets. - */ - coolBar = new CoolBar (coolBarGroup, style); - - /* create the push button toolbar */ - ToolBar toolBar = new ToolBar (coolBar, toolBarStyle); - ToolItem item = new ToolItem (toolBar, SWT.PUSH); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.PUSH"); - item = new ToolItem (toolBar, SWT.PUSH); - item.setImage (instance.images[ControlExample.ciOpenFolder]); - item.setToolTipText ("SWT.PUSH"); - item = new ToolItem (toolBar, SWT.PUSH); - item.setImage (instance.images[ControlExample.ciTarget]); - item.setToolTipText ("SWT.PUSH"); - item = new ToolItem (toolBar, SWT.SEPARATOR); - item = new ToolItem (toolBar, SWT.PUSH); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.PUSH"); - item = new ToolItem (toolBar, SWT.PUSH); - item.setImage (instance.images[ControlExample.ciOpenFolder]); - item.setToolTipText ("SWT.PUSH"); - pushItem = new CoolItem (coolBar, itemStyle); - pushItem.setControl (toolBar); - Point pushSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT); - pushSize = pushItem.computeSize(pushSize.x, pushSize.y); - pushItem.setSize(pushSize); - pushItem.setMinimumSize(item.getWidth(), pushSize.y); - pushItem.addSelectionListener (new CoolItemSelectionListener()); - - /* create the dropdown toolbar */ - toolBar = new ToolBar (coolBar, toolBarStyle); - item = new ToolItem (toolBar, SWT.DROP_DOWN); - item.setImage (instance.images[ControlExample.ciOpenFolder]); - item.setToolTipText ("SWT.DROP_DOWN"); - item.addSelectionListener (new DropDownSelectionListener()); - item = new ToolItem (toolBar, SWT.DROP_DOWN); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.DROP_DOWN"); - item.addSelectionListener (new DropDownSelectionListener()); - dropDownItem = new CoolItem (coolBar, itemStyle); - dropDownItem.setControl (toolBar); - Point dropSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT); - dropSize = dropDownItem.computeSize(dropSize.x, dropSize.y); - dropDownItem.setSize(dropSize); - dropDownItem.setMinimumSize(item.getWidth(), dropSize.y); - dropDownItem.addSelectionListener (new CoolItemSelectionListener()); - - /* create the radio button toolbar */ - toolBar = new ToolBar (coolBar, toolBarStyle); - item = new ToolItem (toolBar, SWT.RADIO); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.RADIO"); - item = new ToolItem (toolBar, SWT.RADIO); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.RADIO"); - item = new ToolItem (toolBar, SWT.RADIO); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.RADIO"); - radioItem = new CoolItem (coolBar, itemStyle); - radioItem.setControl (toolBar); - Point radioSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT); - radioSize = radioItem.computeSize(radioSize.x, radioSize.y); - radioItem.setSize(radioSize); - radioItem.setMinimumSize(item.getWidth(), radioSize.y); - radioItem.addSelectionListener (new CoolItemSelectionListener()); - - /* create the check button toolbar */ - toolBar = new ToolBar (coolBar, toolBarStyle); - item = new ToolItem (toolBar, SWT.CHECK); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.CHECK"); - item = new ToolItem (toolBar, SWT.CHECK); - item.setImage (instance.images[ControlExample.ciTarget]); - item.setToolTipText ("SWT.CHECK"); - item = new ToolItem (toolBar, SWT.CHECK); - item.setImage (instance.images[ControlExample.ciOpenFolder]); - item.setToolTipText ("SWT.CHECK"); - item = new ToolItem (toolBar, SWT.CHECK); - item.setImage (instance.images[ControlExample.ciTarget]); - item.setToolTipText ("SWT.CHECK"); - checkItem = new CoolItem (coolBar, itemStyle); - checkItem.setControl (toolBar); - Point checkSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT); - checkSize = checkItem.computeSize(checkSize.x, checkSize.y); - checkItem.setSize(checkSize); - checkItem.setMinimumSize(item.getWidth(), checkSize.y); - checkItem.addSelectionListener (new CoolItemSelectionListener()); - - /* if we have saved state, restore it */ - if (order != null) { - coolBar.setItemLayout(order, wrapIndices, sizes); - /* - * special case: because setItemLayout will restore the items - * to the sizes the user left them at, the preferred size may not - * be the same as the actual size. Thus we must explicitly set - * the preferred sizes. - */ - pushItem.setPreferredSize(pushSize); - dropDownItem.setPreferredSize(dropSize); - radioItem.setPreferredSize(radioSize); - checkItem.setPreferredSize(checkSize); - } - else { - coolBar.setWrapIndices(new int[] {1, 3}); - } - - /* add a listener to resize the group box to match the coolbar */ - coolBar.addListener(SWT.Resize, new Listener() { - public void handleEvent(Event event) { - exampleGroup.layout(); - } - }); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup(); - - /* Create the extra widget */ - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - Group itemGroup = new Group(styleGroup, SWT.NONE); - itemGroup.setLayout (new GridLayout ()); - itemGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - itemGroup.setText(ControlExample.getResourceString("Item_Styles")); - dropDownButton = new Button (itemGroup, SWT.CHECK); - dropDownButton.setText ("SWT.DROP_DOWN"); - dropDownButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - recreateExampleWidgets (); - } - }); - } - - /** - * Disposes the "Example" widgets. - */ - void disposeExampleWidgets () { - /* store the state of the toolbar if applicable */ - if (coolBar != null) { - sizes = coolBar.getItemSizes(); - wrapIndices = coolBar.getWrapIndices(); - order = coolBar.getItemOrder(); - } - super.disposeExampleWidgets(); - } - - /** - * Gets the "Example" widget children's items, if any. - * - * @return an array containing the example widget children's items - */ - Item [] getExampleWidgetItems () { - return coolBar.getItems(); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {coolBar}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "CoolBar"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - borderButton.setSelection ((coolBar.getStyle () & SWT.BORDER) != 0); - dropDownButton.setSelection ((coolBar.getItem(0).getStyle () & SWT.DROP_DOWN) != 0); - setWidgetLocked (); - } - - /** - * Sets the header visible state of the "Example" widgets. - */ - void setWidgetLocked () { - coolBar.setLocked (lockedButton.getSelection ()); - } - - /** - * Listens to widgetSelected() events on SWT.DROP_DOWN type ToolItems - * and opens/closes a menu when appropriate. - */ - class DropDownSelectionListener extends SelectionAdapter { - private Menu menu = null; - private boolean visible = false; - - public void widgetSelected(SelectionEvent event) { - // Create the menu if it has not already been created - if (menu == null) { - // Lazy create the menu. - Shell shell = tabFolderPage.getShell(); - menu = new Menu(shell); - for (int i = 0; i < 9; ++i) { - final String text = ControlExample.getResourceString("DropDownData_" + i); - if (text.length() != 0) { - MenuItem menuItem = new MenuItem(menu, SWT.NONE); - menuItem.setText(text); - /* - * Add a menu selection listener so that the menu is hidden - * when the user selects an item from the drop down menu. - */ - menuItem.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - setMenuVisible(false); - } - }); - } else { - new MenuItem(menu, SWT.SEPARATOR); - } - } - } - - /** - * A selection event will be fired when a drop down tool - * item is selected in the main area and in the drop - * down arrow. Examine the event detail to determine - * where the widget was selected. - */ - if (event.detail == SWT.ARROW) { - /* - * The drop down arrow was selected. - */ - if (visible) { - // Hide the menu to give the Arrow the appearance of being a toggle button. - setMenuVisible(false); - } else { - // Position the menu below and vertically aligned with the the drop down tool button. - final ToolItem toolItem = (ToolItem) event.widget; - final ToolBar toolBar = toolItem.getParent(); - - Rectangle toolItemBounds = toolItem.getBounds(); - Point point = toolBar.toDisplay(new Point(toolItemBounds.x, toolItemBounds.y)); - menu.setLocation(point.x, point.y + toolItemBounds.height); - setMenuVisible(true); - } - } else { - /* - * Main area of drop down tool item selected. - * An application would invoke the code to perform the action for the tool item. - */ - } - } - private void setMenuVisible(boolean visible) { - menu.setVisible(visible); - this.visible = visible; - } - } - - /** - * Listens to widgetSelected() events on SWT.DROP_DOWN type CoolItems - * and opens/closes a menu when appropriate. - */ - class CoolItemSelectionListener extends SelectionAdapter { - private Menu menu = null; - - public void widgetSelected(SelectionEvent event) { - /** - * A selection event will be fired when the cool item - * is selected by its gripper or if the drop down arrow - * (or 'chevron') is selected. Examine the event detail - * to determine where the widget was selected. - */ - if (event.detail == SWT.ARROW) { - /* If the popup menu is already up (i.e. user pressed arrow twice), - * then dispose it. - */ - if (menu != null) { - menu.dispose(); - menu = null; - return; - } - - /* Get the cool item and convert its bounds to display coordinates. */ - CoolItem coolItem = (CoolItem) event.widget; - Rectangle itemBounds = coolItem.getBounds (); - Point pt = coolBar.toDisplay(new Point (itemBounds.x, itemBounds.y)); - itemBounds.x = pt.x; - itemBounds.y = pt.y; - - /* Get the toolbar from the cool item. */ - ToolBar toolBar = (ToolBar) coolItem.getControl (); - ToolItem[] tools = toolBar.getItems (); - int toolCount = tools.length; - - /* Convert the bounds of each tool item to display coordinates, - * and determine which ones are past the bounds of the cool item. - */ - int i = 0; - while (i < toolCount) { - Rectangle toolBounds = tools[i].getBounds (); - pt = toolBar.toDisplay(new Point(toolBounds.x, toolBounds.y)); - toolBounds.x = pt.x; - toolBounds.y = pt.y; - Rectangle intersection = itemBounds.intersection (toolBounds); - if (!intersection.equals (toolBounds)) break; - i++; - } - - /* Create a pop-up menu with items for each of the hidden buttons. */ - menu = new Menu (coolBar); - for (int j = i; j < toolCount; j++) { - ToolItem tool = tools[j]; - Image image = tool.getImage(); - if (image == null) { - new MenuItem (menu, SWT.SEPARATOR); - } else { - if ((tool.getStyle() & SWT.DROP_DOWN) != 0) { - MenuItem menuItem = new MenuItem (menu, SWT.CASCADE); - menuItem.setImage(image); - Menu m = new Menu(menu); - menuItem.setMenu(m); - for (int k = 0; k < 9; ++k) { - String text = ControlExample.getResourceString("DropDownData_" + k); - if (text.length() != 0) { - MenuItem mi = new MenuItem(m, SWT.NONE); - mi.setText(text); - /* Application code to perform the action for the submenu item would go here. */ - } else { - new MenuItem(m, SWT.SEPARATOR); - } - } - } else { - MenuItem menuItem = new MenuItem (menu, SWT.NONE); - menuItem.setImage(image); - } - /* Application code to perform the action for the menu item would go here. */ - - } - } - - /* Display the pop-up menu at the lower left corner of the arrow button. - * Dispose the menu when the user is done with it. - */ - pt = coolBar.toDisplay(new Point(event.x, event.y)); - menu.setLocation (pt.x, pt.y); - menu.setVisible (true); - Display display = coolBar.getDisplay (); - while (menu != null && menu.isVisible ()) { - if (!display.readAndDispatch ()) display.sleep (); - } - if (menu != null) { - menu.dispose (); - menu = null; - } - } - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java deleted file mode 100644 index ecb047eb97..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - - -public class CustomControlExample extends ControlExample { - - /** - * Creates an instance of a CustomControlExample embedded - * inside the supplied parent Composite. - * - * @param parent the container of the example - */ - public CustomControlExample(Composite parent) { - super (parent); - } - - /** - * Answers the set of example Tabs - */ - Tab[] createTabs() { - return new Tab [] { - new CComboTab (this), - new CLabelTab (this), - new CTabFolderTab (this), - new SashFormTab (this), - new StyledTextTab (this), - new TableTreeTab (this), - }; - } - - /** - * Invokes as a standalone program. - */ - public static void main(String[] args) { - Display display = new Display(); - Shell shell = new Shell(display); - shell.setLayout(new FillLayout()); - CustomControlExample instance = new CustomControlExample(shell); - shell.setText(getResourceString("custom.window.title")); - setShellSize(display, shell); - shell.open(); - while (! shell.isDisposed()) { - if (! display.readAndDispatch()) display.sleep(); - } - instance.dispose(); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java deleted file mode 100755 index d0f4ea962f..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java +++ /dev/null @@ -1,469 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.printing.*; -import org.eclipse.swt.events.*; - -class DialogTab extends Tab { - /* Example widgets and groups that contain them */ - Group dialogStyleGroup, resultGroup; - Text textWidget; - - /* Style widgets added to the "Style" group */ - Combo dialogCombo; - Button okButton, cancelButton; - Button yesButton, noButton; - Button retryButton; - Button abortButton, ignoreButton; - Button iconErrorButton, iconInformationButton, iconQuestionButton; - Button iconWarningButton, iconWorkingButton; - Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton; - Button saveButton, openButton; - - static String [] FilterExtensions = {"*.txt", "*.bat", "*.doc"}; - static String [] FilterNames = {ControlExample.getResourceString("FilterName_0"), - ControlExample.getResourceString("FilterName_1"), - ControlExample.getResourceString("FilterName_2")}; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - DialogTab(ControlExample instance) { - super(instance); - } - - /** - * Handle a button style selection event. - * - * @param event the selection event - */ - void buttonStyleSelected(SelectionEvent event) { - /* - * Only certain combinations of button styles are - * supported for various dialogs. Make sure the - * control widget reflects only valid combinations. - */ - okButton.setEnabled ( - !(yesButton.getSelection () || noButton.getSelection () || - retryButton.getSelection () || abortButton.getSelection () || - ignoreButton.getSelection ())); - cancelButton.setEnabled ( - !(abortButton.getSelection () || ignoreButton.getSelection () || - (yesButton.getSelection () != noButton.getSelection ()))); - yesButton.setEnabled ( - !(okButton.getSelection () || retryButton.getSelection () || - abortButton.getSelection () || ignoreButton.getSelection () || - (cancelButton.getSelection () && !yesButton.getSelection () && !noButton.getSelection ()))); - noButton.setEnabled ( - !(okButton.getSelection () || retryButton.getSelection () || - abortButton.getSelection () || ignoreButton.getSelection () || - (cancelButton.getSelection () && !yesButton.getSelection () && !noButton.getSelection ()))); - retryButton.setEnabled ( - !(okButton.getSelection() || yesButton.getSelection() || noButton.getSelection ())); - abortButton.setEnabled ( - !(okButton.getSelection () || cancelButton.getSelection () || - yesButton.getSelection () || noButton.getSelection ())); - ignoreButton.setEnabled ( - !(okButton.getSelection () || cancelButton.getSelection () | - yesButton.getSelection () || noButton.getSelection ())); - } - - /** - * Handle the create button selection event. - * - * @param event org.eclipse.swt.events.SelectionEvent - */ - void createButtonSelected(SelectionEvent event) { - - /* Compute the appropriate dialog style */ - int style = getDefaultStyle(); - if (okButton.getEnabled () && okButton.getSelection ()) style |= SWT.OK; - if (cancelButton.getEnabled () && cancelButton.getSelection ()) style |= SWT.CANCEL; - if (yesButton.getEnabled () && yesButton.getSelection ()) style |= SWT.YES; - if (noButton.getEnabled () && noButton.getSelection ()) style |= SWT.NO; - if (retryButton.getEnabled () && retryButton.getSelection ()) style |= SWT.RETRY; - if (abortButton.getEnabled () && abortButton.getSelection ()) style |= SWT.ABORT; - if (ignoreButton.getEnabled () && ignoreButton.getSelection ()) style |= SWT.IGNORE; - if (iconErrorButton.getEnabled () && iconErrorButton.getSelection ()) style |= SWT.ICON_ERROR; - if (iconInformationButton.getEnabled () && iconInformationButton.getSelection ()) style |= SWT.ICON_INFORMATION; - if (iconQuestionButton.getEnabled () && iconQuestionButton.getSelection ()) style |= SWT.ICON_QUESTION; - if (iconWarningButton.getEnabled () && iconWarningButton.getSelection ()) style |= SWT.ICON_WARNING; - if (iconWorkingButton.getEnabled () && iconWorkingButton.getSelection ()) style |= SWT.ICON_WORKING; - if (primaryModalButton.getEnabled () && primaryModalButton.getSelection ()) style |= SWT.PRIMARY_MODAL; - if (applicationModalButton.getEnabled () && applicationModalButton.getSelection ()) style |= SWT.APPLICATION_MODAL; - if (systemModalButton.getEnabled () && systemModalButton.getSelection ()) style |= SWT.SYSTEM_MODAL; - if (saveButton.getEnabled () && saveButton.getSelection ()) style |= SWT.SAVE; - if (openButton.getEnabled () && openButton.getSelection ()) style |= SWT.OPEN; - - /* Open the appropriate dialog type */ - String name = dialogCombo.getText (); - Shell shell = tabFolderPage.getShell (); - - if (name.equals (ControlExample.getResourceString("ColorDialog"))) { - ColorDialog dialog = new ColorDialog (shell ,style); - dialog.setRGB (new RGB (100, 100, 100)); - dialog.setText (ControlExample.getResourceString("Title")); - RGB result = dialog.open (); - textWidget.append (ControlExample.getResourceString("ColorDialog") + Text.DELIMITER); - textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER); - return; - } - - if (name.equals (ControlExample.getResourceString("DirectoryDialog"))) { - DirectoryDialog dialog = new DirectoryDialog (shell, style); - dialog.setMessage (ControlExample.getResourceString("Example_string")); - dialog.setText (ControlExample.getResourceString("Title")); - String result = dialog.open (); - textWidget.append (ControlExample.getResourceString("DirectoryDialog") + Text.DELIMITER); - textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER); - return; - } - - if (name.equals (ControlExample.getResourceString("FileDialog"))) { - FileDialog dialog = new FileDialog (shell, style); - dialog.setFileName (ControlExample.getResourceString("readme_txt")); - dialog.setFilterNames (FilterNames); - dialog.setFilterExtensions (FilterExtensions); - dialog.setText (ControlExample.getResourceString("Title")); - String result = dialog.open(); - textWidget.append (ControlExample.getResourceString("FileDialog") + Text.DELIMITER); - textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER); - return; - } - - if (name.equals (ControlExample.getResourceString("FontDialog"))) { - FontDialog dialog = new FontDialog (shell, style); - dialog.setText (ControlExample.getResourceString("Title")); - FontData result = dialog.open (); - textWidget.append (ControlExample.getResourceString("FontDialog") + Text.DELIMITER); - textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER); - return; - } - - if (name.equals (ControlExample.getResourceString("PrintDialog"))) { - PrintDialog dialog = new PrintDialog (shell, style); - dialog.setText(ControlExample.getResourceString("Title")); - PrinterData result = dialog.open (); - textWidget.append (ControlExample.getResourceString("PrintDialog") + Text.DELIMITER); - textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER); - return; - } - - if (name.equals(ControlExample.getResourceString("MessageBox"))) { - MessageBox dialog = new MessageBox (shell, style); - dialog.setMessage (ControlExample.getResourceString("Example_string")); - dialog.setText (ControlExample.getResourceString("Title")); - int result = dialog.open (); - textWidget.append (ControlExample.getResourceString("MessageBox") + Text.DELIMITER); - /* - * The resulting integer depends on the original - * dialog style. Decode the result and display it. - */ - switch (result) { - case SWT.OK: - textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.OK"})); - break; - case SWT.YES: - textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.YES"})); - break; - case SWT.NO: - textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.NO"})); - break; - case SWT.CANCEL: - textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.CANCEL"})); - break; - case SWT.ABORT: - textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.ABORT"})); - break; - case SWT.RETRY: - textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.RETRY"})); - break; - case SWT.IGNORE: - textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.IGNORE"})); - break; - default: - textWidget.append(ControlExample.getResourceString("Result", new String [] {"" + result})); - break; - } - textWidget.append (Text.DELIMITER + Text.DELIMITER); - } - } - - /** - * Creates the "Control" group. - */ - void createControlGroup () { - /* - * Create the "Control" group. This is the group on the - * right half of each example tab. It consists of the - * style group, the display group and the size group. - */ - controlGroup = new Group (tabFolderPage, SWT.NONE); - GridLayout gridLayout= new GridLayout (); - controlGroup.setLayout(gridLayout); - gridLayout.numColumns = 2; - gridLayout.makeColumnsEqualWidth = true; - controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - controlGroup.setText (ControlExample.getResourceString("Parameters")); - - /* - * Create a group to hold the dialog style combo box and - * create dialog button. - */ - dialogStyleGroup = new Group (controlGroup, SWT.NONE); - dialogStyleGroup.setLayout (new GridLayout ()); - GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER); - gridData.horizontalSpan = 2; - dialogStyleGroup.setLayoutData (gridData); - dialogStyleGroup.setText (ControlExample.getResourceString("Dialog_Type")); - } - - /** - * Creates the "Control" widget children. - */ - void createControlWidgets () { - - /* Create the combo */ - String [] strings = { - ControlExample.getResourceString("ColorDialog"), - ControlExample.getResourceString("DirectoryDialog"), - ControlExample.getResourceString("FileDialog"), - ControlExample.getResourceString("FontDialog"), - ControlExample.getResourceString("PrintDialog"), - ControlExample.getResourceString("MessageBox"), - }; - dialogCombo = new Combo (dialogStyleGroup, SWT.READ_ONLY); - dialogCombo.setItems (strings); - dialogCombo.setText (strings [0]); - - /* Create the create dialog button */ - Button createButton = new Button(dialogStyleGroup, SWT.NONE); - createButton.setText (ControlExample.getResourceString("Create_Dialog")); - createButton.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); - - /* Create a group for the various dialog button style controls */ - Group buttonStyleGroup = new Group (controlGroup, SWT.NONE); - buttonStyleGroup.setLayout (new GridLayout ()); - buttonStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - buttonStyleGroup.setText (ControlExample.getResourceString("Button_Styles")); - - /* Create the button style buttons */ - okButton = new Button (buttonStyleGroup, SWT.CHECK); - okButton.setText ("SWT.OK"); - cancelButton = new Button (buttonStyleGroup, SWT.CHECK); - cancelButton.setText ("SWT.CANCEL"); - yesButton = new Button (buttonStyleGroup, SWT.CHECK); - yesButton.setText ("SWT.YES"); - noButton = new Button (buttonStyleGroup, SWT.CHECK); - noButton.setText ("SWT.NO"); - retryButton = new Button (buttonStyleGroup, SWT.CHECK); - retryButton.setText ("SWT.RETRY"); - abortButton = new Button (buttonStyleGroup, SWT.CHECK); - abortButton.setText ("SWT.ABORT"); - ignoreButton = new Button (buttonStyleGroup, SWT.CHECK); - ignoreButton.setText ("SWT.IGNORE"); - - /* Create a group for the icon style controls */ - Group iconStyleGroup = new Group (controlGroup, SWT.NONE); - iconStyleGroup.setLayout (new GridLayout ()); - iconStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - iconStyleGroup.setText (ControlExample.getResourceString("Icon_Styles")); - - /* Create the icon style buttons */ - iconErrorButton = new Button (iconStyleGroup, SWT.RADIO); - iconErrorButton.setText ("SWT.ICON_ERROR"); - iconInformationButton = new Button (iconStyleGroup, SWT.RADIO); - iconInformationButton.setText ("SWT.ICON_INFORMATION"); - iconQuestionButton = new Button (iconStyleGroup, SWT.RADIO); - iconQuestionButton.setText ("SWT.ICON_QUESTION"); - iconWarningButton = new Button (iconStyleGroup, SWT.RADIO); - iconWarningButton.setText ("SWT.ICON_WARNING"); - iconWorkingButton = new Button (iconStyleGroup, SWT.RADIO); - iconWorkingButton.setText ("SWT.ICON_WORKING"); - - /* Create a group for the modal style controls */ - Group modalStyleGroup = new Group (controlGroup, SWT.NONE); - modalStyleGroup.setLayout (new GridLayout ()); - modalStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - modalStyleGroup.setText (ControlExample.getResourceString("Modal_Styles")); - - /* Create the modal style buttons */ - modelessButton = new Button (modalStyleGroup, SWT.RADIO); - modelessButton.setText ("SWT.MODELESS"); - primaryModalButton = new Button (modalStyleGroup, SWT.RADIO); - primaryModalButton.setText ("SWT.PRIMARY_MODAL"); - applicationModalButton = new Button (modalStyleGroup, SWT.RADIO); - applicationModalButton.setText ("SWT.APPLICATION_MODAL"); - systemModalButton = new Button (modalStyleGroup, SWT.RADIO); - systemModalButton.setText ("SWT.SYSTEM_MODAL"); - - /* Create a group for the file dialog style controls */ - Group fileDialogStyleGroup = new Group (controlGroup, SWT.NONE); - fileDialogStyleGroup.setLayout (new GridLayout ()); - fileDialogStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - fileDialogStyleGroup.setText (ControlExample.getResourceString("File_Dialog_Styles")); - - /* Create the file dialog style buttons */ - saveButton = new Button (fileDialogStyleGroup, SWT.RADIO); - saveButton.setText ("SWT.SAVE"); - openButton = new Button(fileDialogStyleGroup, SWT.RADIO); - openButton.setText("SWT.OPEN"); - - /* Create the orientation group */ - if (RTL_SUPPORT_ENABLE) { - createOrientationGroup(); - } - - /* Add the listeners */ - dialogCombo.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - dialogSelected (event); - }; - }); - createButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - createButtonSelected (event); - }; - }); - SelectionListener buttonStyleListener = new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - buttonStyleSelected (event); - }; - }; - okButton.addSelectionListener (buttonStyleListener); - cancelButton.addSelectionListener (buttonStyleListener); - yesButton.addSelectionListener (buttonStyleListener); - noButton.addSelectionListener (buttonStyleListener); - retryButton.addSelectionListener (buttonStyleListener); - abortButton.addSelectionListener (buttonStyleListener); - ignoreButton.addSelectionListener (buttonStyleListener); - - /* Set default values for style buttons */ - okButton.setEnabled (false); - cancelButton.setEnabled (false); - yesButton.setEnabled (false); - noButton.setEnabled (false); - retryButton.setEnabled (false); - abortButton.setEnabled (false); - ignoreButton.setEnabled (false); - iconErrorButton.setEnabled (false); - iconInformationButton.setEnabled (false); - iconQuestionButton.setEnabled (false); - iconWarningButton.setEnabled (false); - iconWorkingButton.setEnabled (false); - saveButton.setEnabled (false); - openButton.setEnabled (false); - openButton.setSelection (true); - iconInformationButton.setSelection (true); - modelessButton.setSelection (true); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* - * Create a group for the text widget to display - * the results returned by the example dialogs. - */ - resultGroup = new Group (exampleGroup, SWT.NONE); - resultGroup.setLayout (new GridLayout ()); - resultGroup.setLayoutData (new GridData (GridData.FILL_BOTH)); - resultGroup.setText (ControlExample.getResourceString("Dialog_Result")); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - /* - * Create a multi lined, scrolled text widget for output. - */ - textWidget = new Text(resultGroup, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - GridData gridData = new GridData (GridData.FILL_BOTH); - textWidget.setLayoutData (gridData); - } - - /** - * The platform dialogs do not have SWT listeners. - */ - void createListenersGroup () { - } - - /** - * Handle a dialog type combo selection event. - * - * @param event the selection event - */ - void dialogSelected (SelectionEvent event) { - - /* Enable/Disable the buttons */ - String name = dialogCombo.getText (); - boolean isMessageBox = name.equals (ControlExample.getResourceString("MessageBox")); - boolean isFileDialog = name.equals (ControlExample.getResourceString("FileDialog")); - okButton.setEnabled (isMessageBox); - cancelButton.setEnabled (isMessageBox); - yesButton.setEnabled (isMessageBox); - noButton.setEnabled (isMessageBox); - retryButton.setEnabled (isMessageBox); - abortButton.setEnabled (isMessageBox); - ignoreButton.setEnabled (isMessageBox); - iconErrorButton.setEnabled (isMessageBox); - iconInformationButton.setEnabled (isMessageBox); - iconQuestionButton.setEnabled (isMessageBox); - iconWarningButton.setEnabled (isMessageBox); - iconWorkingButton.setEnabled (isMessageBox); - saveButton.setEnabled (isFileDialog); - openButton.setEnabled (isFileDialog); - - /* Unselect the buttons */ - if (!isMessageBox) { - okButton.setSelection (false); - cancelButton.setSelection (false); - yesButton.setSelection (false); - noButton.setSelection (false); - retryButton.setSelection (false); - abortButton.setSelection (false); - ignoreButton.setSelection (false); - } - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [0]; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Dialog"; - } - - /** - * Recreates the "Example" widgets. - */ - void recreateExampleWidgets () { - if (textWidget == null) { - super.recreateExampleWidgets (); - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/GroupTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/GroupTab.java deleted file mode 100644 index 7d1b496528..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/GroupTab.java +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class GroupTab extends Tab { - Button titleButton; - - /* Example widgets and groups that contain them */ - Group group1; - Group groupGroup; - - /* Style widgets added to the "Style" group */ - Button shadowEtchedInButton, shadowEtchedOutButton, shadowInButton, shadowOutButton, shadowNoneButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - GroupTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Other" group. - */ - void createOtherGroup () { - super.createOtherGroup (); - - /* Create display controls specific to this example */ - titleButton = new Button (otherGroup, SWT.CHECK); - titleButton.setText (ControlExample.getResourceString("Title_Text")); - - /* Add the listeners */ - titleButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setTitleText (); - } - }); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the Group */ - groupGroup = new Group (exampleGroup, SWT.NONE); - groupGroup.setLayout (new GridLayout ()); - groupGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - groupGroup.setText ("Group"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (shadowEtchedInButton.getSelection ()) style |= SWT.SHADOW_ETCHED_IN; - if (shadowEtchedOutButton.getSelection ()) style |= SWT.SHADOW_ETCHED_OUT; - if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN; - if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT; - if (shadowNoneButton.getSelection ()) style |= SWT.SHADOW_NONE; - if (borderButton.getSelection ()) style |= SWT.BORDER; - - /* Create the example widgets */ - group1 = new Group (groupGroup, style); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup (); - - /* Create the extra widgets */ - shadowEtchedInButton = new Button (styleGroup, SWT.RADIO); - shadowEtchedInButton.setText ("SWT.SHADOW_ETCHED_IN"); - shadowEtchedInButton.setSelection(true); - shadowEtchedOutButton = new Button (styleGroup, SWT.RADIO); - shadowEtchedOutButton.setText ("SWT.SHADOW_ETCHED_OUT"); - shadowInButton = new Button (styleGroup, SWT.RADIO); - shadowInButton.setText ("SWT.SHADOW_IN"); - shadowOutButton = new Button (styleGroup, SWT.RADIO); - shadowOutButton.setText ("SWT.SHADOW_OUT"); - shadowNoneButton = new Button (styleGroup, SWT.RADIO); - shadowNoneButton.setText ("SWT.SHADOW_NONE"); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - - /* Add the listeners */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected(SelectionEvent event) { - if (!((Button) event.widget).getSelection ()) return; - recreateExampleWidgets (); - }; - }; - shadowEtchedInButton.addSelectionListener (selectionListener); - shadowEtchedOutButton.addSelectionListener (selectionListener); - shadowInButton.addSelectionListener (selectionListener); - shadowOutButton.addSelectionListener (selectionListener); - shadowNoneButton.addSelectionListener (selectionListener); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {group1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Group"; - } - - /** - * Sets the title text of the "Example" widgets. - */ - void setTitleText () { - if (titleButton.getSelection ()) { - group1.setText (ControlExample.getResourceString("Title_Text")); - } else { - group1.setText (""); - } - setExampleWidgetSize (); - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - shadowEtchedInButton.setSelection ((group1.getStyle () & SWT.SHADOW_ETCHED_IN) != 0); - shadowEtchedOutButton.setSelection ((group1.getStyle () & SWT.SHADOW_ETCHED_OUT) != 0); - shadowInButton.setSelection ((group1.getStyle () & SWT.SHADOW_IN) != 0); - shadowOutButton.setSelection ((group1.getStyle () & SWT.SHADOW_OUT) != 0); - shadowNoneButton.setSelection ((group1.getStyle () & SWT.SHADOW_NONE) != 0); - borderButton.setSelection ((group1.getStyle () & SWT.BORDER) != 0); - setTitleText (); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java deleted file mode 100755 index 4d843446a6..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java +++ /dev/null @@ -1,190 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -class LabelTab extends AlignableTab { - /* Example widgets and groups that contain them */ - Label label1, label2, label3, label4, label5, label6; - Group textLabelGroup, imageLabelGroup; - - /* Style widgets added to the "Style" group */ - Button wrapButton, separatorButton, horizontalButton, verticalButton, shadowInButton, shadowOutButton, shadowNoneButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - LabelTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the text labels */ - textLabelGroup = new Group(exampleGroup, SWT.NONE); - GridLayout gridLayout = new GridLayout (); - textLabelGroup.setLayout (gridLayout); - gridLayout.numColumns = 3; - textLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - textLabelGroup.setText (ControlExample.getResourceString("Text_Labels")); - - /* Create a group for the image labels */ - imageLabelGroup = new Group (exampleGroup, SWT.SHADOW_NONE); - gridLayout = new GridLayout (); - imageLabelGroup.setLayout (gridLayout); - gridLayout.numColumns = 3; - imageLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - imageLabelGroup.setText (ControlExample.getResourceString("Image_Labels")); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (wrapButton.getSelection ()) style |= SWT.WRAP; - if (separatorButton.getSelection ()) style |= SWT.SEPARATOR; - if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL; - if (verticalButton.getSelection ()) style |= SWT.VERTICAL; - if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN; - if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT; - if (shadowNoneButton.getSelection ()) style |= SWT.SHADOW_NONE; - if (borderButton.getSelection ()) style |= SWT.BORDER; - if (leftButton.getSelection ()) style |= SWT.LEFT; - if (centerButton.getSelection ()) style |= SWT.CENTER; - if (rightButton.getSelection ()) style |= SWT.RIGHT; - - /* Create the example widgets */ - label1 = new Label (textLabelGroup, style); - label1.setText(ControlExample.getResourceString("One")); - label2 = new Label (textLabelGroup, style); - label2.setText(ControlExample.getResourceString("Two")); - label3 = new Label (textLabelGroup, style); - if (wrapButton.getSelection ()) { - label3.setText (ControlExample.getResourceString("Wrap_Text")); - } else { - label3.setText (ControlExample.getResourceString("Three")); - } - label4 = new Label (imageLabelGroup, style); - label4.setImage (instance.images[ControlExample.ciClosedFolder]); - label5 = new Label (imageLabelGroup, style); - label5.setImage (instance.images[ControlExample.ciOpenFolder]); - label6 = new Label(imageLabelGroup, style); - label6.setImage (instance.images[ControlExample.ciTarget]); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup (); - - /* Create the extra widgets */ - wrapButton = new Button (styleGroup, SWT.CHECK); - wrapButton.setText ("SWT.WRAP"); - separatorButton = new Button (styleGroup, SWT.CHECK); - separatorButton.setText ("SWT.SEPARATOR"); - horizontalButton = new Button (styleGroup, SWT.RADIO); - horizontalButton.setText ("SWT.HORIZONTAL"); - verticalButton = new Button (styleGroup, SWT.RADIO); - verticalButton.setText ("SWT.VERTICAL"); - Group styleSubGroup = new Group (styleGroup, SWT.NONE); - styleSubGroup.setLayout (new GridLayout ()); - shadowInButton = new Button (styleSubGroup, SWT.RADIO); - shadowInButton.setText ("SWT.SHADOW_IN"); - shadowOutButton = new Button (styleSubGroup, SWT.RADIO); - shadowOutButton.setText ("SWT.SHADOW_OUT"); - shadowNoneButton = new Button (styleSubGroup, SWT.RADIO); - shadowNoneButton.setText ("SWT.SHADOW_NONE"); - borderButton = new Button(styleGroup, SWT.CHECK); - borderButton.setText("SWT.BORDER"); - - /* Add the listeners */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected(SelectionEvent event) { - if ((event.widget.getStyle() & SWT.RADIO) != 0) { - if (!((Button) event.widget).getSelection ()) return; - } - recreateExampleWidgets (); - }; - }; - shadowInButton.addSelectionListener (selectionListener); - shadowOutButton.addSelectionListener (selectionListener); - shadowNoneButton.addSelectionListener (selectionListener); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {label1, label2, label3, label4, label5, label6}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Label"; - } - - /** - * Sets the alignment of the "Example" widgets. - */ - void setExampleWidgetAlignment () { - int alignment = 0; - if (leftButton.getSelection ()) alignment = SWT.LEFT; - if (centerButton.getSelection ()) alignment = SWT.CENTER; - if (rightButton.getSelection ()) alignment = SWT.RIGHT; - label1.setAlignment (alignment); - label2.setAlignment (alignment); - label3.setAlignment (alignment); - label4.setAlignment (alignment); - label5.setAlignment (alignment); - label6.setAlignment (alignment); - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - boolean isSeparator = (label1.getStyle () & SWT.SEPARATOR) != 0; - wrapButton.setSelection (!isSeparator && (label1.getStyle () & SWT.WRAP) != 0); - leftButton.setSelection (!isSeparator && (label1.getStyle () & SWT.LEFT) != 0); - centerButton.setSelection (!isSeparator && (label1.getStyle () & SWT.CENTER) != 0); - rightButton.setSelection (!isSeparator && (label1.getStyle () & SWT.RIGHT) != 0); - shadowInButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_IN) != 0); - shadowOutButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_OUT) != 0); - shadowNoneButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_NONE) != 0); - horizontalButton.setSelection (isSeparator && (label1.getStyle () & SWT.HORIZONTAL) != 0); - verticalButton.setSelection (isSeparator && (label1.getStyle () & SWT.VERTICAL) != 0); - wrapButton.setEnabled (!isSeparator); - leftButton.setEnabled (!isSeparator); - centerButton.setEnabled (!isSeparator); - rightButton.setEnabled (!isSeparator); - shadowInButton.setEnabled (isSeparator); - shadowOutButton.setEnabled (isSeparator); - shadowNoneButton.setEnabled (isSeparator); - horizontalButton.setEnabled (isSeparator); - verticalButton.setEnabled (isSeparator); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java deleted file mode 100755 index 57af4681c8..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; - -class ListTab extends ScrollableTab { - - /* Example widgets and groups that contain them */ - List list1; - Group listGroup; - - static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"), - ControlExample.getResourceString("ListData1_1"), - ControlExample.getResourceString("ListData1_2"), - ControlExample.getResourceString("ListData1_3"), - ControlExample.getResourceString("ListData1_4"), - ControlExample.getResourceString("ListData1_5"), - ControlExample.getResourceString("ListData1_6"), - ControlExample.getResourceString("ListData1_7"), - ControlExample.getResourceString("ListData1_8")}; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - ListTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the list */ - listGroup = new Group (exampleGroup, SWT.NONE); - listGroup.setLayout (new GridLayout ()); - listGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - listGroup.setText ("List"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (singleButton.getSelection ()) style |= SWT.SINGLE; - if (multiButton.getSelection ()) style |= SWT.MULTI; - if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL; - if (verticalButton.getSelection ()) style |= SWT.V_SCROLL; - if (borderButton.getSelection ()) style |= SWT.BORDER; - - /* Create the example widgets */ - list1 = new List (listGroup, style); - list1.setItems (ListData1); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {list1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "List"; - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java deleted file mode 100755 index 8e03f970e0..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java +++ /dev/null @@ -1,145 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; - -class ProgressBarTab extends RangeTab { - /* Example widgets and groups that contain them */ - ProgressBar progressBar1; - Group progressBarGroup; - - /* Style widgets added to the "Style" group */ - Button smoothButton; - Button indeterminateButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - ProgressBarTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup() { - super.createExampleGroup (); - - /* Create a group for the progress bar */ - progressBarGroup = new Group (exampleGroup, SWT.NONE); - progressBarGroup.setLayout (new GridLayout ()); - progressBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - progressBarGroup.setText ("ProgressBar"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL; - if (verticalButton.getSelection ()) style |= SWT.VERTICAL; - if (smoothButton.getSelection ()) style |= SWT.SMOOTH; - if (borderButton.getSelection ()) style |= SWT.BORDER; - if (indeterminateButton.getSelection ()) style |= SWT.INDETERMINATE; - - /* Create the example widgets */ - progressBar1 = new ProgressBar (progressBarGroup, style); - progressBar1.setMaximum (100); - progressBar1.setSelection (50); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup () { - super.createStyleGroup (); - - /* Create the extra widgets */ - smoothButton = new Button (styleGroup, SWT.CHECK); - smoothButton.setText ("SWT.SMOOTH"); - indeterminateButton = new Button (styleGroup, SWT.CHECK); - indeterminateButton.setText ("SWT.INDETERMINATE"); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {progressBar1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "ProgressBar"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - if (indeterminateButton.getSelection ()) { - selectionScale.setEnabled (false); - minimumScale.setEnabled (false); - maximumScale.setEnabled (false); - } else { - selectionScale.setEnabled (true); - minimumScale.setEnabled (true); - maximumScale.setEnabled (true); - } - maximumScale.setMaximum (progressBar1.getMaximum ()); - smoothButton.setSelection ((progressBar1.getStyle () & SWT.SMOOTH) != 0); - indeterminateButton.setSelection ((progressBar1.getStyle () & SWT.INDETERMINATE) != 0); - } - - /** - * Sets the maximum of the "Example" widgets. - */ - void setWidgetMaximum () { - progressBar1.setMaximum (maximumScale.getSelection ()); - updateScales (); - } - - /** - * Sets the minimim of the "Example" widgets. - */ - void setWidgetMinimum () { - progressBar1.setMinimum (minimumScale.getSelection ()); - updateScales (); - } - - /** - * Sets the selection of the "Example" widgets. - */ - void setWidgetSelection () { - progressBar1.setSelection (selectionScale.getSelection ()); - updateScales (); - } - - /** - * Update the scale widgets to reflect the actual value set - * on the "Example" widget. - */ - void updateScales () { - minimumScale.setSelection (progressBar1.getMinimum ()); - selectionScale.setSelection (progressBar1.getSelection ()); - maximumScale.setSelection (progressBar1.getMaximum ()); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java deleted file mode 100755 index 5662814d11..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java +++ /dev/null @@ -1,183 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -abstract class RangeTab extends Tab { - /* Style widgets added to the "Style" group */ - Button horizontalButton, verticalButton; - - /* Scale widgets added to the "Control" group */ - Scale minimumScale, selectionScale, maximumScale; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - RangeTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Control" widget children. - */ - void createControlWidgets () { - /* Create controls specific to this example */ - createMinimumGroup (); - createMaximumGroup (); - createSelectionGroup (); - } - - /** - * Create a group of widgets to control the maximum - * attribute of the example widget. - */ - void createMaximumGroup() { - - /* Create the group */ - Group maximumGroup = new Group (controlGroup, SWT.NONE); - maximumGroup.setLayout (new GridLayout ()); - maximumGroup.setText (ControlExample.getResourceString("Maximum")); - maximumGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - - /* Create a scale widget */ - maximumScale = new Scale (maximumGroup, SWT.NONE); - maximumScale.setMaximum (100); - maximumScale.setSelection (100); - maximumScale.setPageIncrement (10); - maximumScale.setIncrement (5); - - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 100; - maximumScale.setLayoutData (data); - - /* Add the listeners */ - maximumScale.addSelectionListener(new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetMaximum (); - }; - }); - } - - /** - * Create a group of widgets to control the minimum - * attribute of the example widget. - */ - void createMinimumGroup() { - - /* Create the group */ - Group minimumGroup = new Group (controlGroup, SWT.NONE); - minimumGroup.setLayout (new GridLayout ()); - minimumGroup.setText (ControlExample.getResourceString("Minimum")); - minimumGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - - /* Create a scale widget */ - minimumScale = new Scale (minimumGroup, SWT.NONE); - minimumScale.setMaximum (100); - minimumScale.setPageIncrement (10); - minimumScale.setIncrement (5); - - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 100; - minimumScale.setLayoutData (data); - - /* Add the listeners */ - minimumScale.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetMinimum (); - }; - }); - - } - - /** - * Create a group of widgets to control the selection - * attribute of the example widget. - */ - void createSelectionGroup() { - - /* Create the group */ - Group selectionGroup = new Group(controlGroup, SWT.NONE); - selectionGroup.setLayout(new GridLayout()); - GridData gridData = new GridData(GridData.FILL_HORIZONTAL); - selectionGroup.setLayoutData(gridData); - selectionGroup.setText(ControlExample.getResourceString("Selection")); - - /* Create a scale widget */ - selectionScale = new Scale (selectionGroup, SWT.NONE); - selectionScale.setMaximum (100); - selectionScale.setSelection (50); - selectionScale.setPageIncrement (10); - selectionScale.setIncrement (5); - - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 100; - selectionScale.setLayoutData (data); - - /* Add the listeners */ - selectionScale.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - setWidgetSelection (); - }; - }); - - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup () { - super.createStyleGroup (); - - /* Create the extra widgets */ - horizontalButton = new Button (styleGroup, SWT.RADIO); - horizontalButton.setText ("SWT.HORIZONTAL"); - verticalButton = new Button (styleGroup, SWT.RADIO); - verticalButton.setText ("SWT.VERTICAL"); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - setWidgetMinimum (); - setWidgetMaximum (); - setWidgetSelection (); - Control [] controls = getExampleWidgets (); - if (controls.length != 0){ - horizontalButton.setSelection ((controls [0].getStyle () & SWT.HORIZONTAL) != 0); - verticalButton.setSelection ((controls [0].getStyle () & SWT.VERTICAL) != 0); - borderButton.setSelection ((controls [0].getStyle () & SWT.BORDER) != 0); - } - } - - /** - * Sets the maximum of the "Example" widgets. - */ - abstract void setWidgetMaximum (); - - /** - * Sets the minimim of the "Example" widgets. - */ - abstract void setWidgetMinimum (); - - /** - * Sets the selection of the "Example" widgets. - */ - abstract void setWidgetSelection (); -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java deleted file mode 100644 index f28c7d28cf..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class SashFormTab extends Tab { - /* Example widgets and groups that contain them */ - SashForm fullForm, topForm; - List list1, list2, list3; - Text text; - - static String [] ListData0 = {ControlExample.getResourceString("ListData0_0"), - ControlExample.getResourceString("ListData0_1"), - ControlExample.getResourceString("ListData0_2"), - ControlExample.getResourceString("ListData0_3"), - ControlExample.getResourceString("ListData0_4"), - ControlExample.getResourceString("ListData0_5"), - ControlExample.getResourceString("ListData0_6"), - ControlExample.getResourceString("ListData0_7"), - ControlExample.getResourceString("ListData0_8")}; - - static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"), - ControlExample.getResourceString("ListData1_1"), - ControlExample.getResourceString("ListData1_2"), - ControlExample.getResourceString("ListData1_3"), - ControlExample.getResourceString("ListData1_4"), - ControlExample.getResourceString("ListData1_5"), - ControlExample.getResourceString("ListData1_6"), - ControlExample.getResourceString("ListData1_7"), - ControlExample.getResourceString("ListData1_8")}; - - /* Constants */ - static final int SASH_WIDTH = 3; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - SashFormTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the tab folder page. - */ - Composite createTabFolderPage (TabFolder tabFolder) { - tabFolderPage = new Composite(tabFolder, SWT.BORDER); - tabFolderPage.setLayout(new FillLayout()); - - fullForm = new SashForm (tabFolderPage, SWT.HORIZONTAL); - fullForm.setLayout(new FillLayout()); - topForm = new SashForm (fullForm, SWT.VERTICAL); - topForm.setLayout(new FillLayout()); - - list1 = new List (topForm, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); - list1.setItems (ListData0); - list2 = new List (topForm, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); - list2.setItems (ListData1); - text = new Text (fullForm, SWT.MULTI | SWT.BORDER); - text.setText (ControlExample.getResourceString("Multi_line")); - - fullForm.setWeights(new int[] {50, 50}); - topForm.setWeights(new int[] {50, 50}); - - return tabFolderPage; - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {fullForm, topForm}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "SashForm"; - } - - /** - * Recreates the "Example" widgets. - */ - void recreateExampleWidgets () { - // this tab does not use this framework mechanism - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java deleted file mode 100755 index 98bbc1fd22..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; - -class SashTab extends Tab { - /* Example widgets and groups that contain them */ - Sash hSash, vSash; - List list1, list2, list3; - Text text; - - static String [] ListData0 = {ControlExample.getResourceString("ListData0_0"), - ControlExample.getResourceString("ListData0_1"), - ControlExample.getResourceString("ListData0_2"), - ControlExample.getResourceString("ListData0_3"), - ControlExample.getResourceString("ListData0_4"), - ControlExample.getResourceString("ListData0_5"), - ControlExample.getResourceString("ListData0_6"), - ControlExample.getResourceString("ListData0_7"), - ControlExample.getResourceString("ListData0_8")}; - - static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"), - ControlExample.getResourceString("ListData1_1"), - ControlExample.getResourceString("ListData1_2"), - ControlExample.getResourceString("ListData1_3"), - ControlExample.getResourceString("ListData1_4"), - ControlExample.getResourceString("ListData1_5"), - ControlExample.getResourceString("ListData1_6"), - ControlExample.getResourceString("ListData1_7"), - ControlExample.getResourceString("ListData1_8")}; - - /* Constants */ - static final int SASH_WIDTH = 3; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - SashTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the tab folder page. - */ - Composite createTabFolderPage (TabFolder tabFolder) { - /* - * Create the page. This example does not use layouts. - */ - tabFolderPage = new Composite(tabFolder, SWT.BORDER); - - /* Create the list and text widgets */ - list1 = new List (tabFolderPage, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); - list1.setItems (ListData0); - list2 = new List (tabFolderPage, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); - list2.setItems (ListData1); - text = new Text (tabFolderPage, SWT.MULTI | SWT.BORDER); - text.setText (ControlExample.getResourceString("Multi_line")); - - /* Create the sashes */ - vSash = new Sash (tabFolderPage, SWT.VERTICAL); - hSash = new Sash (tabFolderPage, SWT.HORIZONTAL); - - /* Add the listeners */ - hSash.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - if (event.detail != SWT.DRAG) { - hSash.setBounds (event.x, event.y, event.width, event.height); - layout (); - } - } - }); - vSash.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - if (event.detail != SWT.DRAG) { - vSash.setBounds(event.x, event.y, event.width, event.height); - layout (); - } - } - }); - tabFolderPage.addControlListener (new ControlAdapter () { - public void controlResized (ControlEvent event) { - shellResized (); - } - }); - - /* - * Do not set the bounds of the lists, text and sashes here - * because this method is run before the widget is opened - * so we do not know how big the tabComposite is going to be. - * When the widget is opened a resize event will occur - * and the contained widgets can be sized accordingly. - */ - return tabFolderPage; - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {hSash, vSash}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Sash"; - } - - /** - * Layout the list and text widgets according to the new - * positions of the sashes..events.SelectionEvent - */ - void layout () { - - Rectangle tabCompositeBounds = tabFolderPage.getClientArea (); - Rectangle hSashBounds = hSash.getBounds (); - Rectangle vSashBounds = vSash.getBounds (); - - list1.setBounds (0, 0, vSashBounds.x, hSashBounds.y); - list2.setBounds (vSashBounds.x + vSashBounds.width, 0, tabCompositeBounds.width - (vSashBounds.x + vSashBounds.width), hSashBounds.y); - text.setBounds (0, hSashBounds.y + hSashBounds.height, tabCompositeBounds.width, tabCompositeBounds.height - (hSashBounds.y + hSashBounds.height)); - - /** - * If the horizontal sash has been moved then the vertical - * sash is either too long or too short and its size must - * be adjusted. - */ - vSashBounds.height = hSashBounds.y; - vSash.setBounds (vSashBounds); - } - - /** - * Recreates the "Example" widgets. - */ - void recreateExampleWidgets () { - // this tab does not use this framework mechanism - } - - /** - * Handle the shell resized event. - */ - void shellResized () { - - /* Get the client area for the shell */ - Rectangle tabFolderPageBounds = tabFolderPage.getClientArea (); - - /* - * Make list 1 half the width and half the height of the tab leaving room for the sash. - * Place list 1 in the top left quadrant of the tab. - */ - Rectangle list1Bounds = new Rectangle (0, 0, (tabFolderPageBounds.width - SASH_WIDTH) / 2, (tabFolderPageBounds.height - SASH_WIDTH) / 2); - list1.setBounds (list1Bounds); - - /* - * Make list 2 half the width and half the height of the tab leaving room for the sash. - * Place list 2 in the top right quadrant of the tab. - */ - list2.setBounds (list1Bounds.width + SASH_WIDTH, 0, tabFolderPageBounds.width - (list1Bounds.width + SASH_WIDTH), list1Bounds.height); - - /* - * Make the text area the full width and half the height of the tab leaving room for the sash. - * Place the text area in the bottom half of the tab. - */ - text.setBounds (0, list1Bounds.height + SASH_WIDTH, tabFolderPageBounds.width, tabFolderPageBounds.height - (list1Bounds.height + SASH_WIDTH)); - - /* Position the sashes */ - vSash.setBounds (list1Bounds.width, 0, SASH_WIDTH, list1Bounds.height); - hSash.setBounds (0, list1Bounds.height, tabFolderPageBounds.width, SASH_WIDTH); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java deleted file mode 100755 index dd0b4a24bd..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; - -abstract class ScrollableTab extends Tab { - /* Style widgets added to the "Style" group */ - Button singleButton, multiButton, horizontalButton, verticalButton, borderButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - ScrollableTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup () { - super.createStyleGroup (); - - /* Create the extra widgets */ - singleButton = new Button (styleGroup, SWT.RADIO); - singleButton.setText ("SWT.SINGLE"); - multiButton = new Button (styleGroup, SWT.RADIO); - multiButton.setText ("SWT.MULTI"); - horizontalButton = new Button (styleGroup, SWT.CHECK); - horizontalButton.setText ("SWT.H_SCROLL"); - horizontalButton.setSelection(true); - verticalButton = new Button (styleGroup, SWT.CHECK); - verticalButton.setText ("SWT.V_SCROLL"); - verticalButton.setSelection(true); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - Control [] controls = getExampleWidgets (); - if (controls.length != 0){ - singleButton.setSelection ((controls [0].getStyle () & SWT.SINGLE) != 0); - multiButton.setSelection ((controls [0].getStyle () & SWT.MULTI) != 0); - horizontalButton.setSelection ((controls [0].getStyle () & SWT.H_SCROLL) != 0); - verticalButton.setSelection ((controls [0].getStyle () & SWT.V_SCROLL) != 0); - borderButton.setSelection ((controls [0].getStyle () & SWT.BORDER) != 0); - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java deleted file mode 100755 index d566d1f364..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java +++ /dev/null @@ -1,292 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -class ShellTab extends Tab { - /* Style widgets added to the "Style" group */ - Button noParentButton, parentButton; - Button noTrimButton, closeButton, titleButton, minButton, maxButton, borderButton, resizeButton, onTopButton; - Button createButton, closeAllButton; - Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton; - Group parentStyleGroup, modalStyleGroup; - - /* Variables used to track the open shells */ - int shellCount = 0; - Shell [] shells = new Shell [4]; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - ShellTab(ControlExample instance) { - super(instance); - } - - /** - * Close all the example shells. - */ - void closeAllShells() { - for (int i = 0; i<shellCount; i++) { - if (shells[i] != null & !shells [i].isDisposed ()) { - shells [i].dispose(); - } - } - shellCount = 0; - } - - /** - * Handle the Create button selection event. - * - * @param event org.eclipse.swt.events.SelectionEvent - */ - public void createButtonSelected(SelectionEvent event) { - - /* - * Remember the example shells so they - * can be disposed by the user. - */ - if (shellCount >= shells.length) { - Shell [] newShells = new Shell [shells.length + 4]; - System.arraycopy (shells, 0, newShells, 0, shells.length); - shells = newShells; - } - - /* Compute the shell style */ - int style = SWT.NONE; - if (noTrimButton.getSelection()) style |= SWT.NO_TRIM; - if (closeButton.getSelection()) style |= SWT.CLOSE; - if (titleButton.getSelection()) style |= SWT.TITLE; - if (minButton.getSelection()) style |= SWT.MIN; - if (maxButton.getSelection()) style |= SWT.MAX; - if (borderButton.getSelection()) style |= SWT.BORDER; - if (resizeButton.getSelection()) style |= SWT.RESIZE; - if (onTopButton.getSelection()) style |= SWT.ON_TOP; - if (modelessButton.getSelection()) style |= SWT.MODELESS; - if (primaryModalButton.getSelection()) style |= SWT.PRIMARY_MODAL; - if (applicationModalButton.getSelection()) style |= SWT.APPLICATION_MODAL; - if (systemModalButton.getSelection()) style |= SWT.SYSTEM_MODAL; - - /* Create the shell with or without a parent */ - if (noParentButton.getSelection ()) { - shells [shellCount] = new Shell (style); - } else { - Shell shell = tabFolderPage.getShell (); - shells [shellCount] = new Shell (shell, style); - } - final Shell currentShell = shells [shellCount]; - Button button = new Button(currentShell, SWT.PUSH); - button.setBounds(20, 20, 120, 30); - Button closeButton = new Button(currentShell, SWT.PUSH); - closeButton.setBounds(160, 20, 120, 30); - closeButton.setText(ControlExample.getResourceString("Close")); - closeButton.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event event) { - currentShell.dispose(); - } - }); - - /* Set the size, title and open the shell */ - currentShell.setSize (300, 100); - currentShell.setText (ControlExample.getResourceString("Title") + shellCount); - hookListeners (currentShell); - currentShell.open (); - shellCount++; - } - - /** - * Creates the "Control" group. - */ - void createControlGroup () { - /* - * Create the "Control" group. This is the group on the - * left half of each example tab. It consists of the - * style group, the display group and the size group. - */ - controlGroup = new Group (tabFolderPage, SWT.NONE); - GridLayout gridLayout= new GridLayout (); - controlGroup.setLayout (gridLayout); - gridLayout.numColumns = 1; - gridLayout.makeColumnsEqualWidth = true; - controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - controlGroup.setText (ControlExample.getResourceString("Parameters")); - - /* Create individual groups inside the "Control" group */ - styleGroup = new Group (controlGroup, SWT.NONE); - gridLayout = new GridLayout (); - styleGroup.setLayout (gridLayout); - gridLayout.numColumns = 2; - gridLayout.makeColumnsEqualWidth = true; - styleGroup.setLayoutData (new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - styleGroup.setText (ControlExample.getResourceString("Styles")); - - /* Create a group for the parent style controls */ - parentStyleGroup = new Group (styleGroup, SWT.NONE); - parentStyleGroup.setLayout (new GridLayout ()); - GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - parentStyleGroup.setLayoutData (gridData); - parentStyleGroup.setText (ControlExample.getResourceString("Parent")); - } - - /** - * Creates the "Control" widget children. - */ - void createControlWidgets () { - - /* Create the parent style buttons */ - noParentButton = new Button (parentStyleGroup, SWT.RADIO); - noParentButton.setText (ControlExample.getResourceString("No_Parent")); - parentButton = new Button (parentStyleGroup, SWT.RADIO); - parentButton.setText (ControlExample.getResourceString("Parent")); - - /* Create a group for the decoration style controls */ - Group decorationStyleGroup = new Group(styleGroup, SWT.NONE); - decorationStyleGroup.setLayout (new GridLayout ()); - GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL); - gridData.verticalSpan = 2; - decorationStyleGroup.setLayoutData (gridData); - decorationStyleGroup.setText (ControlExample.getResourceString("Decoration_Styles")); - - /* Create the decoration style buttons */ - noTrimButton = new Button (decorationStyleGroup, SWT.CHECK); - noTrimButton.setText ("SWT.NO_TRIM"); - closeButton = new Button (decorationStyleGroup, SWT.CHECK); - closeButton.setText ("SWT.CLOSE"); - titleButton = new Button (decorationStyleGroup, SWT.CHECK); - titleButton.setText ("SWT.TITLE"); - minButton = new Button (decorationStyleGroup, SWT.CHECK); - minButton.setText ("SWT.MIN"); - maxButton = new Button (decorationStyleGroup, SWT.CHECK); - maxButton.setText ("SWT.MAX"); - borderButton = new Button (decorationStyleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - resizeButton = new Button (decorationStyleGroup, SWT.CHECK); - resizeButton.setText ("SWT.RESIZE"); - onTopButton = new Button (decorationStyleGroup, SWT.CHECK); - onTopButton.setText ("SWT.ON_TOP"); - - /* Create a group for the modal style controls */ - modalStyleGroup = new Group (styleGroup, SWT.NONE); - modalStyleGroup.setLayout (new GridLayout ()); - modalStyleGroup.setText (ControlExample.getResourceString("Modal_Styles")); - gridData = new GridData (); - gridData.verticalAlignment = GridData.FILL; - modalStyleGroup.setLayoutData(gridData); - - /* Create the modal style buttons */ - modelessButton = new Button (modalStyleGroup, SWT.RADIO); - modelessButton.setText ("SWT.MODELESS"); - primaryModalButton = new Button (modalStyleGroup, SWT.RADIO); - primaryModalButton.setText ("SWT.PRIMARY_MODAL"); - applicationModalButton = new Button (modalStyleGroup, SWT.RADIO); - applicationModalButton.setText ("SWT.APPLICATION_MODAL"); - systemModalButton = new Button (modalStyleGroup, SWT.RADIO); - systemModalButton.setText ("SWT.SYSTEM_MODAL"); - - /* Create the "create" and "closeAll" buttons */ - createButton = new Button (styleGroup, SWT.NONE); - gridData = new GridData (GridData.HORIZONTAL_ALIGN_END); - createButton.setLayoutData (gridData); - createButton.setText (ControlExample.getResourceString("Create_Shell")); - closeAllButton = new Button (styleGroup, SWT.NONE); - gridData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING); - closeAllButton.setText (ControlExample.getResourceString("Close_All_Shells")); - closeAllButton.setLayoutData (gridData); - - /* Add the listeners */ - createButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - createButtonSelected(e); - }; - }); - closeAllButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - closeAllShells (); - }; - }); - SelectionListener decorationButtonListener = new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - decorationButtonSelected(event); - }; - }; - noTrimButton.addSelectionListener (decorationButtonListener); - closeButton.addSelectionListener (decorationButtonListener); - titleButton.addSelectionListener (decorationButtonListener); - minButton.addSelectionListener (decorationButtonListener); - maxButton.addSelectionListener (decorationButtonListener); - borderButton.addSelectionListener (decorationButtonListener); - resizeButton.addSelectionListener (decorationButtonListener); - applicationModalButton.addSelectionListener (decorationButtonListener); - systemModalButton.addSelectionListener (decorationButtonListener); - - /* Set the default state */ - noParentButton.setSelection (true); - modelessButton.setSelection (true); - } - - /** - * Handle a decoration button selection event. - * - * @param event org.eclipse.swt.events.SelectionEvent - */ - public void decorationButtonSelected(SelectionEvent event) { - - /* Make sure if the modal style is SWT.APPLICATION_MODAL or - * SWT.SYSTEM_MODAL the style SWT.CLOSE is also selected. - * This is to make sure the user can close the shell. - */ - Button widget = (Button) event.widget; - if (widget == applicationModalButton || widget == systemModalButton) { - if (widget.getSelection()) { - closeButton.setSelection (true); - noTrimButton.setSelection (false); - } - return; - } - if (widget == closeButton) { - if (applicationModalButton.getSelection() || systemModalButton.getSelection()) { - closeButton.setSelection (true); - } - } - /* - * Make sure if the No Trim button is selected then - * all other decoration buttons are deselected. - */ - if (widget.getSelection() && widget != noTrimButton) { - noTrimButton.setSelection (false); - return; - } - if (widget.getSelection() && widget == noTrimButton) { - if (applicationModalButton.getSelection() || systemModalButton.getSelection()) { - noTrimButton.setSelection (false); - return; - } - closeButton.setSelection (false); - titleButton.setSelection (false); - minButton.setSelection (false); - maxButton.setSelection (false); - borderButton.setSelection (false); - resizeButton.setSelection (false); - return; - } - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Shell"; - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java deleted file mode 100755 index 00be184c4d..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -class SliderTab extends RangeTab { - /* Example widgets and groups that contain them */ - Scale scale1; - Slider slider1; - Group sliderGroup, scaleGroup; - - /* Scale widgets added to the "Control" group */ - Scale incrementScale, pageIncrementScale, thumbScale; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - SliderTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Control" widget children. - */ - void createControlWidgets () { - super.createControlWidgets (); - createThumbGroup (); - createIncrementGroup (); - createPageIncrementGroup (); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the slider */ - sliderGroup = new Group (exampleGroup, SWT.NONE); - sliderGroup.setLayout (new GridLayout ()); - sliderGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - sliderGroup.setText ("Slider"); - - /* Create a group for the scale */ - scaleGroup = new Group (exampleGroup, SWT.NONE); - scaleGroup.setLayout (new GridLayout ()); - scaleGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - scaleGroup.setText ("Scale"); - - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL; - if (verticalButton.getSelection ()) style |= SWT.VERTICAL; - if (borderButton.getSelection ()) style |= SWT.BORDER; - - /* Create the example widgets */ - scale1 = new Scale (scaleGroup, style); - scale1.setMaximum (100); - scale1.setSelection (50); - scale1.setIncrement (5); - scale1.setPageIncrement (10); - slider1 = new Slider(sliderGroup, style); - slider1.setMaximum (100); - slider1.setSelection (50); - slider1.setIncrement(5); - slider1.setPageIncrement (10); - slider1.setThumb (10); - } - - /** - * Create a group of widgets to control the increment - * attribute of the example widget. - */ - void createIncrementGroup() { - - /* Create the group */ - Group incrementGroup = new Group (controlGroup, SWT.NONE); - incrementGroup.setLayout (new GridLayout ()); - incrementGroup.setText (ControlExample.getResourceString("Increment")); - incrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - - /* Create the scale widget */ - incrementScale = new Scale (incrementGroup, SWT.NONE); - incrementScale.setMaximum (100); - incrementScale.setSelection (5); - incrementScale.setPageIncrement (10); - incrementScale.setIncrement (5); - - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 100; - incrementScale.setLayoutData (data); - - /* Add the listeners */ - incrementScale.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - setWidgetIncrement (); - }; - }); - } - - /** - * Create a group of widgets to control the page increment - * attribute of the example widget. - */ - void createPageIncrementGroup() { - - /* Create the group */ - Group pageIncrementGroup = new Group (controlGroup, SWT.NONE); - pageIncrementGroup.setLayout (new GridLayout ()); - pageIncrementGroup.setText (ControlExample.getResourceString("Page_Increment")); - pageIncrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - - /* Create the scale widget */ - pageIncrementScale = new Scale (pageIncrementGroup, SWT.NONE); - pageIncrementScale.setMaximum (100); - pageIncrementScale.setSelection (10); - pageIncrementScale.setPageIncrement (10); - pageIncrementScale.setIncrement (5); - - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 100; - pageIncrementScale.setLayoutData (data); - - /* Add the listeners */ - pageIncrementScale.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetPageIncrement (); - } - }); - } - - /** - * Create a group of widgets to control the thumb - * attribute of the example widget. - */ - void createThumbGroup() { - - /* Create the group */ - Group thumbGroup = new Group (controlGroup, SWT.NONE); - thumbGroup.setLayout (new GridLayout ()); - thumbGroup.setText (ControlExample.getResourceString("Thumb")); - thumbGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - - /* Create the scale widget */ - thumbScale = new Scale (thumbGroup, SWT.NONE); - thumbScale.setMaximum (100); - thumbScale.setSelection (10); - thumbScale.setPageIncrement (10); - thumbScale.setIncrement (5); - - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 100; - thumbScale.setLayoutData (data); - - /* Add the listeners */ - thumbScale.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetThumb (); - }; - }); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {scale1, slider1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Slider/Scale"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - setWidgetIncrement (); - setWidgetPageIncrement (); - setWidgetThumb (); - } - - /** - * Sets the increment of the "Example" widgets. - */ - void setWidgetIncrement () { - slider1.setIncrement (incrementScale.getSelection ()); - scale1.setIncrement (incrementScale.getSelection ()); - } - - /** - * Sets the minimim of the "Example" widgets. - */ - void setWidgetMaximum () { - slider1.setMaximum (maximumScale.getSelection ()); - scale1.setMaximum (maximumScale.getSelection ()); - } - - /** - * Sets the minimim of the "Example" widgets. - */ - void setWidgetMinimum () { - slider1.setMinimum (minimumScale.getSelection ()); - scale1.setMinimum (minimumScale.getSelection ()); - } - - /** - * Sets the page increment of the "Example" widgets. - */ - void setWidgetPageIncrement () { - slider1.setPageIncrement (pageIncrementScale.getSelection ()); - scale1.setPageIncrement (pageIncrementScale.getSelection ()); - } - - /** - * Sets the selection of the "Example" widgets. - */ - void setWidgetSelection () { - slider1.setSelection (selectionScale.getSelection ()); - scale1.setSelection (selectionScale.getSelection ()); - } - - /** - * Sets the thumb of the "Example" widgets. - */ - void setWidgetThumb () { - slider1.setThumb (thumbScale.getSelection ()); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java deleted file mode 100644 index 233c336d15..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java +++ /dev/null @@ -1,244 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.custom.*; - -class StyledTextTab extends ScrollableTab { - /* Example widgets and groups that contain them */ - StyledText styledText; - Group styledTextGroup, styledTextStyleGroup; - - /* Style widgets added to the "Style" group */ - Button wrapButton, readOnlyButton, fullSelectionButton; - - /* Buttons for adding StyleRanges to StyledText */ - Button boldButton, redButton, yellowButton; - Image boldImage, redImage, yellowImage; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - StyledTextTab(ControlExample instance) { - super(instance); - } - - /** - * Creates a bitmap image. - */ - Image createBitmapImage (Display display, String name) { - ImageData source = new ImageData(ControlExample.class.getResourceAsStream(name + ".bmp")); - ImageData mask = new ImageData(ControlExample.class.getResourceAsStream(name + "_mask.bmp")); - return new Image (display, source, mask); - } - - /** - * Creates the "Control" widget children. - */ - void createControlWidgets () { - super.createControlWidgets (); - - /* Add a group for modifying the StyledText widget */ - createStyledTextStyleGroup (); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the styled text widget */ - styledTextGroup = new Group (exampleGroup, SWT.NONE); - styledTextGroup.setLayout (new GridLayout ()); - styledTextGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - styledTextGroup.setText ("StyledText"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (singleButton.getSelection ()) style |= SWT.SINGLE; - if (multiButton.getSelection ()) style |= SWT.MULTI; - if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL; - if (verticalButton.getSelection ()) style |= SWT.V_SCROLL; - if (wrapButton.getSelection ()) style |= SWT.WRAP; - if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY; - if (borderButton.getSelection ()) style |= SWT.BORDER; - if (fullSelectionButton.getSelection ()) style |= SWT.FULL_SELECTION; - - /* Create the example widgets */ - styledText = new StyledText (styledTextGroup, style); - styledText.setText (ControlExample.getResourceString("Example_string")); - styledText.append ("\n"); - styledText.append (ControlExample.getResourceString("One_Two_Three")); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup(); - - /* Create the extra widgets */ - wrapButton = new Button (styleGroup, SWT.CHECK); - wrapButton.setText ("SWT.WRAP"); - readOnlyButton = new Button (styleGroup, SWT.CHECK); - readOnlyButton.setText ("SWT.READ_ONLY"); - fullSelectionButton = new Button (styleGroup, SWT.CHECK); - fullSelectionButton.setText ("SWT.FULL_SELECTION"); - } - - /** - * Creates the "StyledText Style" group. - */ - void createStyledTextStyleGroup () { - final Display display = controlGroup.getDisplay (); - styledTextStyleGroup = new Group (controlGroup, SWT.NONE); - styledTextStyleGroup.setText (ControlExample.getResourceString ("StyledText_Styles")); - styledTextStyleGroup.setLayout (new GridLayout(2, false)); - styledTextStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL)); - - /* Get images */ - boldImage = createBitmapImage (display, "bold"); - redImage = createBitmapImage (display, "red"); - yellowImage = createBitmapImage (display, "yellow"); - - /* Create controls to modify the StyledText */ - Label label = new Label (styledTextStyleGroup, SWT.NONE); - label.setText (ControlExample.getResourceString ("StyledText_Style_Instructions")); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - label.setLayoutData(data); - new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Bold")); - boldButton = new Button (styledTextStyleGroup, SWT.PUSH); - boldButton.setImage (boldImage); - boldButton.addSelectionListener(new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Point sel = styledText.getSelectionRange(); - if ((sel == null) || (sel.y == 0)) return; - StyleRange style; - for (int i = sel.x; i<sel.x+sel.y; i++) { - StyleRange range = styledText.getStyleRangeAtOffset(i); - if (range == null) {style = new StyleRange(i, 1, null, null, SWT.BOLD);} - else {style = new StyleRange(i, 1, range.foreground, range.background, SWT.BOLD);}; - styledText.setStyleRange(style); - } - styledText.setSelectionRange(sel.x + sel.y, 0); - } - }); - new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Foreground_Style")); - redButton = new Button (styledTextStyleGroup, SWT.PUSH); - redButton.setImage (redImage); - new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Background_Style")); - yellowButton = new Button (styledTextStyleGroup, SWT.PUSH); - yellowButton.setImage (yellowImage); - SelectionListener colorListener = new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Point sel = styledText.getSelectionRange(); - if ((sel == null) || (sel.y == 0)) return; - Color fg, bg; - if (e.widget == redButton) { - fg = display.getSystemColor (SWT.COLOR_RED); - bg = null; - } else if (e.widget == yellowButton) { - fg = null; - bg = display.getSystemColor (SWT.COLOR_YELLOW); - } else { - fg = bg = null; - } - StyleRange style; - for (int i = sel.x; i<sel.x+sel.y; i++) { - StyleRange range = styledText.getStyleRangeAtOffset(i); - if (range == null) { - style = new StyleRange(i, 1, fg, bg, SWT.NORMAL); - } - else { - if (range.foreground != null) fg = range.foreground; - if (range.background != null) bg = range.background; - style = new StyleRange(i, 1, fg, bg, range.fontStyle); - }; - styledText.setStyleRange(style); - } - styledText.setSelectionRange(sel.x + sel.y, 0); - }; - }; - redButton.addSelectionListener(colorListener); - yellowButton.addSelectionListener(colorListener); - yellowButton.addDisposeListener(new DisposeListener () { - public void widgetDisposed (DisposeEvent e) { - boldImage.dispose(); - redImage.dispose(); - yellowImage.dispose(); - } - }); - } - - /** - * Creates the tab folder page. - * - * @param tabFolder org.eclipse.swt.widgets.TabFolder - * @return the new page for the tab folder - */ - Composite createTabFolderPage (TabFolder tabFolder) { - super.createTabFolderPage (tabFolder); - - /* - * Add a resize listener to the tabFolderPage so that - * if the user types into the example widget to change - * its preferred size, and then resizes the shell, we - * recalculate the preferred size correctly. - */ - tabFolderPage.addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent e) { - setExampleWidgetSize (); - } - }); - - return tabFolderPage; - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {styledText}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "StyledText"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - wrapButton.setSelection ((styledText.getStyle () & SWT.WRAP) != 0); - readOnlyButton.setSelection ((styledText.getStyle () & SWT.READ_ONLY) != 0); - fullSelectionButton.setSelection ((styledText.getStyle () & SWT.FULL_SELECTION) != 0); - horizontalButton.setEnabled ((styledText.getStyle () & SWT.MULTI) != 0); - verticalButton.setEnabled ((styledText.getStyle () & SWT.MULTI) != 0); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java deleted file mode 100755 index b733a704fe..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java +++ /dev/null @@ -1,937 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -/** - * <code>Tab</code> is the abstract superclass of every page - * in the example's tab folder. Each page in the tab folder - * describes a control. - * - * A Tab itself is not a control but instead provides a - * hierarchy with which to share code that is common to - * every page in the folder. - * - * A typical page in a Tab contains a two column composite. - * The left column contains the "Example" group. The right - * column contains "Control" group. The "Control" group - * contains controls that allow the user to interact with - * the example control. The "Control" group typically - * contains a "Style", "Other" and "Size" group. Subclasses - * can override these defaults to augment a group or stop - * a group from being created. - */ -abstract class Tab { - /* Common control buttons */ - Button borderButton, enabledButton, visibleButton; - Button preferredButton, tooSmallButton, smallButton, largeButton, fillButton; - - /* Common groups and composites */ - Composite tabFolderPage; - Group exampleGroup, controlGroup, listenersGroup, otherGroup, sizeGroup, styleGroup, colorGroup; - - /* Controlling instance */ - final ControlExample instance; - - /* Sizing constants for the "Size" group */ - static final int TOO_SMALL_SIZE = 10; - static final int SMALL_SIZE = 50; - static final int LARGE_SIZE = 100; - - /* Right-to-left support */ - static final boolean RTL_SUPPORT_ENABLE = false; - Group orientationGroup; - Button rtlButton, ltrButton, defaultOrietationButton; - - /* Controls and resources for the "Colors" group */ - Button foregroundButton, backgroundButton, fontButton; - Image foregroundImage, backgroundImage; - Color foregroundColor, backgroundColor; - Font font; - - /* Event logging variables and controls */ - Text eventConsole; - boolean logging = false; - boolean [] eventsFilter; - - static final String [] EVENT_NAMES = { - "KeyDown", "KeyUp", - "MouseDown", "MouseUp", "MouseMove", "MouseEnter", "MouseExit", "MouseDoubleClick", - "Paint", "Move", "Resize", "Dispose", - "Selection", "DefaultSelection", - "FocusIn", "FocusOut", - "Expand", "Collapse", - "Iconify", "Deiconify", "Close", - "Show", "Hide", - "Modify", "Verify", - "Activate", "Deactivate", - "Help", "DragDetect", "Arm", "Traverse", "MouseHover", - "HardKeyDown", "HardKeyUp", - "MenuDetect" - }; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - Tab(ControlExample instance) { - this.instance = instance; - } - - /** - * Creates the "Control" group. The "Control" group - * is typically the right hand column in the tab. - */ - void createControlGroup () { - - /* - * Create the "Control" group. This is the group on the - * right half of each example tab. It consists of the - * "Style" group, the "Other" group and the "Size" group. - */ - controlGroup = new Group (tabFolderPage, SWT.NONE); - controlGroup.setLayout (new GridLayout (2, true)); - controlGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - controlGroup.setText (ControlExample.getResourceString("Parameters")); - - /* Create individual groups inside the "Control" group */ - createStyleGroup (); - createOtherGroup (); - createSizeGroup (); - createColorGroup (); - if (RTL_SUPPORT_ENABLE) { - createOrientationGroup (); - } - - /* - * For each Button child in the style group, add a selection - * listener that will recreate the example controls. If the - * style group button is a RADIO button, ensure that the radio - * button is selected before recreating the example controls. - * When the user selects a RADIO button, the current RADIO - * button in the group is deselected and the new RADIO button - * is selected automatically. The listeners are notified for - * both these operations but typically only do work when a RADIO - * button is selected. - */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - if ((event.widget.getStyle () & SWT.RADIO) != 0) { - if (!((Button) event.widget).getSelection ()) return; - } - recreateExampleWidgets (); - }; - }; - Control [] children = styleGroup.getChildren (); - for (int i=0; i<children.length; i++) { - if (children [i] instanceof Button) { - Button button = (Button) children [i]; - button.addSelectionListener (selectionListener); - } - } - if (RTL_SUPPORT_ENABLE) { - rtlButton.addSelectionListener (selectionListener); - ltrButton.addSelectionListener (selectionListener); - defaultOrietationButton.addSelectionListener (selectionListener); - } - } - - /** - * Creates the "Control" widget children. - * Subclasses override this method to augment - * the standard controls created in the "Style", - * "Other" and "Size" groups. - */ - void createControlWidgets () { - } - - /** - * Creates the "Colors" group. This is typically - * a child of the "Control" group. Subclasses override - * this method to customize and set system colors. - */ - void createColorGroup () { - /* Create the group */ - colorGroup = new Group(controlGroup, SWT.NONE); - colorGroup.setLayout (new GridLayout (2, false)); - colorGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - colorGroup.setText (ControlExample.getResourceString ("Colors")); - new Label (colorGroup, SWT.NONE).setText (ControlExample.getResourceString ("Foreground_Color")); - foregroundButton = new Button (colorGroup, SWT.PUSH); - new Label (colorGroup, SWT.NONE).setText (ControlExample.getResourceString ("Background_Color")); - backgroundButton = new Button (colorGroup, SWT.PUSH); - fontButton = new Button (colorGroup, SWT.PUSH); - fontButton.setText(ControlExample.getResourceString("Font")); - fontButton.setLayoutData(new GridData (GridData.HORIZONTAL_ALIGN_FILL)); - Button defaultsButton = new Button (colorGroup, SWT.PUSH); - defaultsButton.setText(ControlExample.getResourceString("Defaults")); - - Shell shell = controlGroup.getShell (); - final ColorDialog foregroundDialog = new ColorDialog (shell); - final ColorDialog backgroundDialog = new ColorDialog (shell); - final FontDialog fontDialog = new FontDialog (shell); - - /* Create images to display current colors */ - int imageSize = 12; - Display display = shell.getDisplay (); - foregroundImage = new Image (display, imageSize, imageSize); - backgroundImage = new Image (display, imageSize, imageSize); - - /* Add listeners to set the colors and font */ - foregroundButton.setImage(foregroundImage); // sets the size of the button - foregroundButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - Color oldColor = foregroundColor; - if (oldColor == null) { - Control [] controls = getExampleWidgets (); - if (controls.length > 0) oldColor = controls [0].getForeground (); - } - if (oldColor != null) foregroundDialog.setRGB(oldColor.getRGB()); // seed dialog with current color - RGB rgb = foregroundDialog.open(); - if (rgb == null) return; - oldColor = foregroundColor; // save old foreground color to dispose when done - foregroundColor = new Color (event.display, rgb); - setExampleWidgetForeground (); - if (oldColor != null) oldColor.dispose (); - } - }); - backgroundButton.setImage(backgroundImage); // sets the size of the button - backgroundButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - Color oldColor = backgroundColor; - if (oldColor == null) { - Control [] controls = getExampleWidgets (); - if (controls.length > 0) oldColor = controls [0].getBackground (); // seed dialog with current color - } - if (oldColor != null) backgroundDialog.setRGB(oldColor.getRGB()); - RGB rgb = backgroundDialog.open(); - if (rgb == null) return; - oldColor = backgroundColor; // save old background color to dispose when done - backgroundColor = new Color (event.display, rgb); - setExampleWidgetBackground (); - if (oldColor != null) oldColor.dispose (); - } - }); - fontButton.addSelectionListener(new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - Font oldFont = font; - if (oldFont == null) { - Control [] controls = getExampleWidgets (); - if (controls.length > 0) oldFont = controls [0].getFont (); - } - if (oldFont != null) fontDialog.setFontList(oldFont.getFontData()); // seed dialog with current font - FontData fontData = fontDialog.open (); - if (fontData == null) return; - oldFont = font; // dispose old font when done - font = new Font (event.display, fontData); - setExampleWidgetFont (); - setExampleWidgetSize (); - if (oldFont != null) oldFont.dispose (); - } - }); - defaultsButton.addSelectionListener(new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetColorsAndFonts (); - } - }); - shell.addDisposeListener(new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - if (foregroundImage != null) foregroundImage.dispose(); - if (backgroundImage != null) backgroundImage.dispose(); - if (foregroundColor != null) foregroundColor.dispose(); - if (backgroundColor != null) backgroundColor.dispose(); - if (font != null) font.dispose(); - foregroundColor = null; - backgroundColor = null; - font = null; - } - }); - } - - /** - * Creates the "Other" group. This is typically - * a child of the "Control" group. - */ - void createOtherGroup () { - /* Create the group */ - otherGroup = new Group (controlGroup, SWT.NONE); - otherGroup.setLayout (new GridLayout ()); - otherGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - otherGroup.setText (ControlExample.getResourceString("Other")); - - /* Create the controls */ - enabledButton = new Button(otherGroup, SWT.CHECK); - enabledButton.setText(ControlExample.getResourceString("Enabled")); - visibleButton = new Button(otherGroup, SWT.CHECK); - visibleButton.setText(ControlExample.getResourceString("Visible")); - - /* Add the listeners */ - enabledButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setExampleWidgetEnabled (); - } - }); - visibleButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setExampleWidgetVisibility (); - } - }); - - /* Set the default state */ - enabledButton.setSelection(true); - visibleButton.setSelection(true); - } - - /** - * Create the event console popup menu. - */ - void createEventConsolePopup () { - Menu popup = new Menu (eventConsole.getShell (), SWT.POP_UP); - eventConsole.setMenu (popup); - - MenuItem cut = new MenuItem (popup, SWT.PUSH); - cut.setText (ControlExample.getResourceString("MenuItem_Cut")); - cut.addListener (SWT.Selection, new Listener () { - public void handleEvent (Event event) { - eventConsole.cut (); - } - }); - MenuItem copy = new MenuItem (popup, SWT.PUSH); - copy.setText (ControlExample.getResourceString("MenuItem_Copy")); - copy.addListener (SWT.Selection, new Listener () { - public void handleEvent (Event event) { - eventConsole.copy (); - } - }); - MenuItem paste = new MenuItem (popup, SWT.PUSH); - paste.setText (ControlExample.getResourceString("MenuItem_Paste")); - paste.addListener (SWT.Selection, new Listener () { - public void handleEvent (Event event) { - eventConsole.paste (); - } - }); - new MenuItem (popup, SWT.SEPARATOR); - MenuItem selectAll = new MenuItem (popup, SWT.PUSH); - selectAll.setText(ControlExample.getResourceString("MenuItem_SelectAll")); - selectAll.addListener (SWT.Selection, new Listener () { - public void handleEvent (Event event) { - eventConsole.selectAll (); - } - }); - } - - /** - * Creates the "Example" group. The "Example" group - * is typically the left hand column in the tab. - */ - void createExampleGroup () { - exampleGroup = new Group (tabFolderPage, SWT.NONE); - GridLayout gridLayout = new GridLayout (); - exampleGroup.setLayout (gridLayout); - exampleGroup.setLayoutData (new GridData (GridData.FILL_BOTH)); - } - - /** - * Creates the "Example" widget children of the "Example" group. - * Subclasses override this method to create the particular - * example control. - */ - void createExampleWidgets () { - /* Do nothing */ - } - - /** - * Creates and opens the "Listener selection" dialog. - */ - void createListenerSelectionDialog () { - final Shell dialog = new Shell (tabFolderPage.getShell (), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); - dialog.setText (ControlExample.getResourceString ("Select_Listeners")); - dialog.setLayout (new GridLayout (2, false)); - final Table table = new Table (dialog, SWT.BORDER | SWT.V_SCROLL | SWT.CHECK); - GridData data = new GridData(GridData.FILL_BOTH); - data.verticalSpan = 2; - table.setLayoutData(data); - for (int i = 0; i < EVENT_NAMES.length; i++) { - TableItem item = new TableItem (table, SWT.NONE); - item.setText (EVENT_NAMES[i]); - item.setChecked (eventsFilter[i]); - } - final String [] customNames = getCustomEventNames (); - for (int i = 0; i < customNames.length; i++) { - TableItem item = new TableItem (table, SWT.NONE); - item.setText (customNames[i]); - item.setChecked (eventsFilter[EVENT_NAMES.length + i]); - } - Button selectAll = new Button (dialog, SWT.PUSH); - selectAll.setText(ControlExample.getResourceString ("Select_All")); - selectAll.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - selectAll.addSelectionListener (new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - TableItem [] items = table.getItems(); - for (int i = 0; i < EVENT_NAMES.length; i++) { - items[i].setChecked(true); - } - for (int i = 0; i < customNames.length; i++) { - items[EVENT_NAMES.length + i].setChecked(true); - } - } - }); - Button deselectAll = new Button (dialog, SWT.PUSH); - deselectAll.setText(ControlExample.getResourceString ("Deselect_All")); - deselectAll.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING)); - deselectAll.addSelectionListener (new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - TableItem [] items = table.getItems(); - for (int i = 0; i < EVENT_NAMES.length; i++) { - items[i].setChecked(false); - } - for (int i = 0; i < customNames.length; i++) { - items[EVENT_NAMES.length + i].setChecked(false); - } - } - }); - Label filler = new Label(dialog, SWT.NONE); - Button ok = new Button (dialog, SWT.PUSH); - ok.setText(ControlExample.getResourceString ("OK")); - dialog.setDefaultButton(ok); - ok.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - ok.addSelectionListener (new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - TableItem [] items = table.getItems(); - for (int i = 0; i < EVENT_NAMES.length; i++) { - eventsFilter[i] = items[i].getChecked(); - } - for (int i = 0; i < customNames.length; i++) { - eventsFilter[EVENT_NAMES.length + i] = items[EVENT_NAMES.length + i].getChecked(); - } - dialog.dispose(); - } - }); - dialog.pack (); - dialog.open (); - while (! dialog.isDisposed()) { - if (! dialog.getDisplay().readAndDispatch()) dialog.getDisplay().sleep(); - } - } - - /** - * Creates the "Listeners" group. The "Listeners" group - * goes below the "Example" and "Control" groups. - */ - void createListenersGroup () { - listenersGroup = new Group (tabFolderPage, SWT.NONE); - listenersGroup.setLayout (new GridLayout (3, false)); - GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL); - gridData.horizontalSpan = 2; - listenersGroup.setLayoutData (gridData); - listenersGroup.setText (ControlExample.getResourceString ("Listeners")); - - /* - * Create the button to access the 'Listeners' dialog. - */ - Button listenersButton = new Button (listenersGroup, SWT.PUSH); - listenersButton.setText (ControlExample.getResourceString ("Select_Listeners")); - listenersButton.addSelectionListener (new SelectionAdapter() { - public void widgetSelected (SelectionEvent e) { - createListenerSelectionDialog (); - recreateExampleWidgets (); - } - }); - - /* - * Create the checkbox to add/remove listeners to/from the example widgets. - */ - final Button listenCheckbox = new Button (listenersGroup, SWT.CHECK); - listenCheckbox.setText (ControlExample.getResourceString ("Listen")); - listenCheckbox.addSelectionListener (new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - logging = listenCheckbox.getSelection (); - recreateExampleWidgets (); - } - }); - - /* - * Create the button to clear the text. - */ - Button clearButton = new Button (listenersGroup, SWT.PUSH); - clearButton.setText (ControlExample.getResourceString ("Clear")); - clearButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); - clearButton.addSelectionListener (new SelectionAdapter() { - public void widgetSelected (SelectionEvent e) { - eventConsole.setText (""); - } - }); - - /* Initialize the eventsFilter to log all events. */ - int customEventCount = getCustomEventNames ().length; - eventsFilter = new boolean [EVENT_NAMES.length + customEventCount]; - for (int i = 0; i < EVENT_NAMES.length + customEventCount; i++) { - eventsFilter [i] = true; - } - - /* Create the event console Text. */ - eventConsole = new Text (listenersGroup, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); - GridData data = new GridData (GridData.FILL_BOTH); - data.horizontalSpan = 3; - data.heightHint = 80; - eventConsole.setLayoutData (data); - createEventConsolePopup (); - eventConsole.addKeyListener (new KeyAdapter () { - public void keyPressed (KeyEvent e) { - if ((e.keyCode == 'A' || e.keyCode == 'a') && (e.stateMask & SWT.MOD1) != 0) { - eventConsole.selectAll (); - e.doit = false; - } - } - }); - } - - void createOrientationGroup () { - /* Create Orientation group*/ - orientationGroup = new Group (controlGroup, SWT.NONE); - orientationGroup.setLayout (new GridLayout()); - orientationGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - orientationGroup.setText (ControlExample.getResourceString("Orientation")); - defaultOrietationButton = new Button (orientationGroup, SWT.RADIO); - defaultOrietationButton.setText (ControlExample.getResourceString("Default")); - defaultOrietationButton.setSelection (true); - ltrButton = new Button (orientationGroup, SWT.RADIO); - ltrButton.setText ("SWT.LEFT_TO_RIGHT"); - rtlButton = new Button (orientationGroup, SWT.RADIO); - rtlButton.setText ("SWT.RIGHT_TO_LEFT"); - } - - /** - * Creates the "Size" group. The "Size" group contains - * controls that allow the user to change the size of - * the example widgets. - */ - void createSizeGroup () { - /* Create the group */ - sizeGroup = new Group (controlGroup, SWT.NONE); - sizeGroup.setLayout (new GridLayout()); - sizeGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - sizeGroup.setText (ControlExample.getResourceString("Size")); - - /* Create the controls */ - - /* - * The preferred size of a widget is the size returned - * by widget.computeSize (SWT.DEFAULT, SWT.DEFAULT). - * This size is defined on a widget by widget basis. - * Many widgets will attempt to display their contents. - */ - preferredButton = new Button (sizeGroup, SWT.RADIO); - preferredButton.setText (ControlExample.getResourceString("Preferred")); - tooSmallButton = new Button (sizeGroup, SWT.RADIO); - tooSmallButton.setText (TOO_SMALL_SIZE + " X " + TOO_SMALL_SIZE); - smallButton = new Button(sizeGroup, SWT.RADIO); - smallButton.setText (SMALL_SIZE + " X " + SMALL_SIZE); - largeButton = new Button (sizeGroup, SWT.RADIO); - largeButton.setText (LARGE_SIZE + " X " + LARGE_SIZE); - fillButton = new Button (sizeGroup, SWT.RADIO); - fillButton.setText (ControlExample.getResourceString("Fill")); - - /* Add the listeners */ - SelectionAdapter selectionListener = new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - if (!((Button) event.widget).getSelection ()) return; - setExampleWidgetSize (); - }; - }; - preferredButton.addSelectionListener(selectionListener); - tooSmallButton.addSelectionListener(selectionListener); - smallButton.addSelectionListener(selectionListener); - largeButton.addSelectionListener(selectionListener); - fillButton.addSelectionListener(selectionListener); - - /* Set the default state */ - preferredButton.setSelection (true); - } - - /** - * Creates the "Style" group. The "Style" group contains - * controls that allow the user to change the style of - * the example widgets. Changing a widget "Style" causes - * the widget to be destroyed and recreated. - */ - void createStyleGroup () { - styleGroup = new Group (controlGroup, SWT.NONE); - styleGroup.setLayout (new GridLayout ()); - styleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - styleGroup.setText (ControlExample.getResourceString("Styles")); - } - - /** - * Creates the tab folder page. - * - * @param tabFolder org.eclipse.swt.widgets.TabFolder - * @return the new page for the tab folder - */ - Composite createTabFolderPage (TabFolder tabFolder) { - /* - * Create a two column page. - */ - tabFolderPage = new Composite (tabFolder, SWT.NONE); - tabFolderPage.setLayout (new GridLayout (2, false)); - - /* Create the "Example" and "Control" groups. */ - createExampleGroup (); - createControlGroup (); - - /* Create the "Listeners" group under the "Control" group. */ - createListenersGroup (); - - /* Create and initialize the example and control widgets. */ - createExampleWidgets (); - hookExampleWidgetListeners (); - createControlWidgets (); - setExampleWidgetState (); - - return tabFolderPage; - } - - /** - * Disposes the "Example" widgets. - */ - void disposeExampleWidgets () { - Control [] controls = getExampleWidgets (); - for (int i=0; i<controls.length; i++) { - controls [i].dispose (); - } - } - - void drawImage (Image image, Color color) { - GC gc = new GC(image); - gc.setBackground(color); - Rectangle bounds = image.getBounds(); - gc.fillRectangle(0, 0, bounds.width, bounds.height); - gc.drawRectangle(0, 0, bounds.width - 1, bounds.height - 1); - gc.dispose(); - } - - /** - * Gets the list of custom event names. - * - * @return an array containing custom event names - */ - String [] getCustomEventNames () { - return new String [0]; - } - - /** - * Gets the default style for a widget - * - * @return the default style bit - */ - int getDefaultStyle () { - if (ltrButton != null && ltrButton.getSelection()) { - return SWT.LEFT_TO_RIGHT; - } - if (rtlButton != null && rtlButton.getSelection()) { - return SWT.RIGHT_TO_LEFT; - } - return SWT.NONE; - } - - /** - * Gets the "Example" widget children. - * - * @return an array containing the example widget children - */ - Control [] getExampleWidgets () { - return new Control [0]; - } - - /** - * Gets the "Example" widget children's items, if any. - * - * @return an array containing the example widget children's items - */ - Item [] getExampleWidgetItems () { - return new Item [0]; - } - - /** - * Gets the text for the tab folder item. - * - * @return the text for the tab item - */ - String getTabText () { - return ""; - } - - /** - * Hooks all listeners to all example controls - * and example control items. - */ - void hookExampleWidgetListeners () { - if (logging) { - Control[] exampleControls = getExampleWidgets (); - for (int i = 0; i < exampleControls.length; i++) { - hookListeners (exampleControls [i]); - } - Item[] exampleItems = getExampleWidgetItems (); - for (int i = 0; i < exampleItems.length; i++) { - hookListeners (exampleItems [i]); - } - String [] customNames = getCustomEventNames (); - for (int i = 0; i < customNames.length; i++) { - if (eventsFilter [EVENT_NAMES.length + i]) hookCustomListener (customNames[i]); - } - } - } - - /** - * Hooks the custom listener specified by eventName. - */ - void hookCustomListener (String eventName) { - } - - /** - * Hooks all listeners to the specified widget. - */ - void hookListeners (Widget widget) { - if (logging) { - Listener listener = new Listener() { - public void handleEvent (Event event) { - log (event); - } - }; - for (int i = 0; i < EVENT_NAMES.length; i++) { - if (eventsFilter [i]) widget.addListener (i + 1, listener); - } - } - } - - /** - * Logs an untyped event to the event console. - */ - void log(Event event) { - String toString = EVENT_NAMES[event.type - 1] + ": "; - switch (event.type) { - case SWT.KeyDown: - case SWT.KeyUp: toString += new KeyEvent (event).toString (); break; - case SWT.MouseDown: - case SWT.MouseUp: - case SWT.MouseMove: - case SWT.MouseEnter: - case SWT.MouseExit: - case SWT.MouseDoubleClick: - case SWT.MouseHover: toString += new MouseEvent (event).toString (); break; - case SWT.Paint: toString += new PaintEvent (event).toString (); break; - case SWT.Move: - case SWT.Resize: toString += new ControlEvent (event).toString (); break; - case SWT.Dispose: toString += new DisposeEvent (event).toString (); break; - case SWT.Selection: - case SWT.DefaultSelection: toString += new SelectionEvent (event).toString (); break; - case SWT.FocusIn: - case SWT.FocusOut: toString += new FocusEvent (event).toString (); break; - case SWT.Expand: - case SWT.Collapse: toString += new TreeEvent (event).toString (); break; - case SWT.Iconify: - case SWT.Deiconify: - case SWT.Close: - case SWT.Activate: - case SWT.Deactivate: toString += new ShellEvent (event).toString (); break; - case SWT.Show: - case SWT.Hide: toString += new MenuEvent (event).toString (); break; - case SWT.Modify: toString += new ModifyEvent (event).toString (); break; - case SWT.Verify: toString += new VerifyEvent (event).toString (); break; - case SWT.Help: toString += new HelpEvent (event).toString (); break; - case SWT.Arm: toString += new ArmEvent (event).toString (); break; - case SWT.Traverse: toString += new TraverseEvent (event).toString (); break; - case SWT.HardKeyDown: - case SWT.HardKeyUp: - case SWT.DragDetect: - case SWT.MenuDetect: - default: toString += event.toString (); - } - eventConsole.append (toString); - eventConsole.append ("\n"); - } - - /** - * Logs a typed event to the event console. - */ - void log (String eventName, TypedEvent event) { - eventConsole.append (eventName + ": "); - eventConsole.append (event.toString ()); - eventConsole.append ("\n"); - } - - /** - * Recreates the "Example" widgets. - */ - void recreateExampleWidgets () { - disposeExampleWidgets (); - createExampleWidgets (); - hookExampleWidgetListeners (); - setExampleWidgetState (); - } - - /** - * Sets the foreground color, background color, and font - * of the "Example" widgets to their default settings. - * Subclasses may extend in order to reset other colors - * and fonts to default settings as well. - */ - void resetColorsAndFonts () { - Color oldColor = foregroundColor; - foregroundColor = null; - setExampleWidgetForeground (); - if (oldColor != null) oldColor.dispose(); - oldColor = backgroundColor; - backgroundColor = null; - setExampleWidgetBackground (); - if (oldColor != null) oldColor.dispose(); - Font oldFont = font; - font = null; - setExampleWidgetFont (); - setExampleWidgetSize (); - if (oldFont != null) oldFont.dispose(); - } - - /** - * Sets the background color of the "Example" widgets. - */ - void setExampleWidgetBackground () { - if (backgroundButton == null) return; // no background button on this tab - Control [] controls = getExampleWidgets (); - for (int i = 0; i < controls.length; i++) { - controls[i].setBackground (backgroundColor); - } - // Set the background button's color to match the color just set. - Color color = backgroundColor; - if (controls.length == 0) return; - if (color == null) color = controls [0].getBackground (); - drawImage (backgroundImage, color); - backgroundButton.setImage (backgroundImage); - } - - /** - * Sets the enabled state of the "Example" widgets. - */ - void setExampleWidgetEnabled () { - Control [] controls = getExampleWidgets (); - for (int i=0; i<controls.length; i++) { - controls [i].setEnabled (enabledButton.getSelection ()); - } - } - - /** - * Sets the font of the "Example" widgets. - */ - void setExampleWidgetFont () { - if (fontButton == null) return; // no font button on this tab - Control [] controls = getExampleWidgets (); - for (int i = 0; i < controls.length; i++) { - Control control = controls[i]; - control.setFont(font); - } - } - - /** - * Sets the foreground color of the "Example" widgets. - */ - void setExampleWidgetForeground () { - if (foregroundButton == null) return; // no foreground button on this tab - Control [] controls = getExampleWidgets (); - for (int i = 0; i < controls.length; i++) { - controls[i].setForeground (foregroundColor); - } - // Set the foreground button's color to match the color just set. - Color color = foregroundColor; - if (controls.length == 0) return; - if (color == null) color = controls [0].getForeground (); - drawImage (foregroundImage, color); - foregroundButton.setImage (foregroundImage); - } - - /** - * Sets the size of the "Example" widgets. - */ - void setExampleWidgetSize () { - int size = SWT.DEFAULT; - if (preferredButton == null) return; - if (preferredButton.getSelection()) size = SWT.DEFAULT; - if (tooSmallButton.getSelection()) size = TOO_SMALL_SIZE; - if (smallButton.getSelection()) size = SMALL_SIZE; - if (largeButton.getSelection()) size = LARGE_SIZE; - Control [] controls = getExampleWidgets (); - for (int i=0; i<controls.length; i++) { - GridData gridData; - if (fillButton.getSelection()) { - gridData = new GridData (GridData.FILL_BOTH); - } else { - gridData = new GridData (); - gridData.widthHint = size; - gridData.heightHint = size; - } - controls [i].setLayoutData (gridData); - } - /* - * Force the entire widget tree to layout, - * even when the child sizes may not have - * changed. - */ - int seenCount = 0; - Composite [] seen = new Composite [4]; - for (int i=0; i<controls.length; i++) { - Control control = controls [i]; - while (control != exampleGroup) { - Composite parent = control.getParent (); - int index = 0; - while (index < seenCount) { - if (seen [index] == parent) break; - index++; - } - if (index == seenCount) parent.layout (); - if (seenCount == seen.length) { - Composite [] newSeen = new Composite [seen.length + 4]; - System.arraycopy (seen, 0, newSeen, 0, seen.length); - seen = newSeen; - } - seen [seenCount++] = parent; - control = control.getParent (); - } - } - } - - /** - * Sets the state of the "Example" widgets. Subclasses - * reimplement this method to set "Example" widget state - * that is specific to the widget. - */ - void setExampleWidgetState () { - setExampleWidgetEnabled (); - setExampleWidgetVisibility (); - setExampleWidgetBackground (); - setExampleWidgetForeground (); - setExampleWidgetFont (); - setExampleWidgetSize (); - } - - /** - * Sets the visibility of the "Example" widgets. - */ - void setExampleWidgetVisibility () { - Control [] controls = getExampleWidgets (); - for (int i=0; i<controls.length; i++) { - controls [i].setVisible (visibleButton.getSelection ()); - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TabFolderTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TabFolderTab.java deleted file mode 100644 index 88789578ed..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TabFolderTab.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class TabFolderTab extends Tab { - /* Example widgets and groups that contain them */ - TabFolder tabFolder1; - Group tabFolderGroup; - - /* Style widgets added to the "Style" group */ - Button topButton, bottomButton; - - static String [] TabItems1 = {ControlExample.getResourceString("TabItem1_0"), - ControlExample.getResourceString("TabItem1_1"), - ControlExample.getResourceString("TabItem1_2")}; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - TabFolderTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the TabFolder */ - tabFolderGroup = new Group (exampleGroup, SWT.NONE); - tabFolderGroup.setLayout (new GridLayout ()); - tabFolderGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - tabFolderGroup.setText ("TabFolder"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (topButton.getSelection ()) style |= SWT.TOP; - if (bottomButton.getSelection ()) style |= SWT.BOTTOM; - if (borderButton.getSelection ()) style |= SWT.BORDER; - - /* Create the example widgets */ - tabFolder1 = new TabFolder (tabFolderGroup, style); - for (int i = 0; i < TabItems1.length; i++) { - TabItem item = new TabItem(tabFolder1, SWT.NONE); - item.setText(TabItems1[i]); - Label label = new Label(tabFolder1, SWT.NONE); - label.setText(ControlExample.getResourceString("TabItem_content") + ": " + i); - item.setControl(label); - } - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup (); - - /* Create the extra widgets */ - topButton = new Button (styleGroup, SWT.RADIO); - topButton.setText ("SWT.TOP"); - topButton.setSelection(true); - bottomButton = new Button (styleGroup, SWT.RADIO); - bottomButton.setText ("SWT.BOTTOM"); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - - /* Add the listeners */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected(SelectionEvent event) { - if (!((Button) event.widget).getSelection ()) return; - recreateExampleWidgets (); - }; - }; - topButton.addSelectionListener (selectionListener); - bottomButton.addSelectionListener (selectionListener); - } - - /** - * Gets the "Example" widget children's items, if any. - * - * @return an array containing the example widget children's items - */ - Item [] getExampleWidgetItems () { - return tabFolder1.getItems(); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {tabFolder1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "TabFolder"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - topButton.setSelection ((tabFolder1.getStyle () & SWT.TOP) != 0); - bottomButton.setSelection ((tabFolder1.getStyle () & SWT.BOTTOM) != 0); - borderButton.setSelection ((tabFolder1.getStyle () & SWT.BORDER) != 0); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java deleted file mode 100755 index 84cfa7e769..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java +++ /dev/null @@ -1,338 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -class TableTab extends ScrollableTab { - /* Example widgets and groups that contain them */ - Table table1; - Group tableGroup, tableItemGroup; - - /* Style widgets added to the "Style" group */ - Button checkButton, fullSelectionButton, hideSelectionButton; - - /* Other widgets added to the "Other" group */ - Button headerVisibleButton, linesVisibleButton; - - /* Controls and resources added to the "Colors" group */ - Button itemForegroundButton, itemBackgroundButton; - Color itemForegroundColor, itemBackgroundColor; - Image itemForegroundImage, itemBackgroundImage; - - static String [] columnTitles = {ControlExample.getResourceString("TableTitle_0"), - ControlExample.getResourceString("TableTitle_1"), - ControlExample.getResourceString("TableTitle_2"), - ControlExample.getResourceString("TableTitle_3")}; - - static String [] stringLine0 = {ControlExample.getResourceString("TableLine0_0"), - ControlExample.getResourceString("TableLine0_1"), - ControlExample.getResourceString("TableLine0_2"), - ControlExample.getResourceString("TableLine0_3")}; - - static String [] stringLine1 = {ControlExample.getResourceString("TableLine1_0"), - ControlExample.getResourceString("TableLine1_1"), - ControlExample.getResourceString("TableLine1_2"), - ControlExample.getResourceString("TableLine1_3")}; - - static String [] stringLine2 = {ControlExample.getResourceString("TableLine2_0"), - ControlExample.getResourceString("TableLine2_1"), - ControlExample.getResourceString("TableLine2_2"), - ControlExample.getResourceString("TableLine2_3")}; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - TableTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Colors" group. - */ - void createColorGroup () { - super.createColorGroup(); - - tableItemGroup = new Group (colorGroup, SWT.NONE); - tableItemGroup.setText (ControlExample.getResourceString ("Table_Item_Colors")); - GridData data = new GridData (); - data.horizontalSpan = 2; - tableItemGroup.setLayoutData (data); - tableItemGroup.setLayout (new GridLayout (2, false)); - new Label (tableItemGroup, SWT.NONE).setText (ControlExample.getResourceString ("Item_Foreground_Color")); - itemForegroundButton = new Button (tableItemGroup, SWT.PUSH); - new Label (tableItemGroup, SWT.NONE).setText (ControlExample.getResourceString ("Item_Background_Color")); - itemBackgroundButton = new Button (tableItemGroup, SWT.PUSH); - - Shell shell = colorGroup.getShell (); - final ColorDialog foregroundDialog = new ColorDialog (shell); - final ColorDialog backgroundDialog = new ColorDialog (shell); - - int imageSize = 12; - Display display = shell.getDisplay (); - itemForegroundImage = new Image(display, imageSize, imageSize); - itemBackgroundImage = new Image(display, imageSize, imageSize); - - /* Add listeners to set the colors and font */ - itemForegroundButton.setImage(itemForegroundImage); - itemForegroundButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - Color oldColor = itemForegroundColor; - if (oldColor == null) oldColor = table1.getItem (0).getForeground (); - foregroundDialog.setRGB(oldColor.getRGB()); - RGB rgb = foregroundDialog.open(); - if (rgb == null) return; - oldColor = itemForegroundColor; - itemForegroundColor = new Color (event.display, rgb); - setItemForeground (); - if (oldColor != null) oldColor.dispose (); - } - }); - itemBackgroundButton.setImage(itemBackgroundImage); - itemBackgroundButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - Color oldColor = itemBackgroundColor; - if (oldColor == null) oldColor = table1.getItem (0).getBackground (); - backgroundDialog.setRGB(oldColor.getRGB()); - RGB rgb = backgroundDialog.open(); - if (rgb == null) return; - oldColor = itemBackgroundColor; - itemBackgroundColor = new Color (event.display, rgb); - setItemBackground (); - if (oldColor != null) oldColor.dispose (); - } - }); - shell.addDisposeListener(new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - if (itemBackgroundImage != null) itemBackgroundImage.dispose(); - if (itemForegroundImage != null) itemForegroundImage.dispose(); - if (itemBackgroundColor != null) itemBackgroundColor.dispose(); - if (itemForegroundColor != null) itemForegroundColor.dispose(); - itemBackgroundColor = null; - itemForegroundColor = null; - } - }); - } - - /** - * Creates the "Other" group. - */ - void createOtherGroup () { - super.createOtherGroup (); - - /* Create display controls specific to this example */ - headerVisibleButton = new Button (otherGroup, SWT.CHECK); - headerVisibleButton.setText (ControlExample.getResourceString("Header_Visible")); - linesVisibleButton = new Button (otherGroup, SWT.CHECK); - linesVisibleButton.setText (ControlExample.getResourceString("Lines_Visible")); - - /* Add the listeners */ - headerVisibleButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetHeaderVisible (); - } - }); - linesVisibleButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetLinesVisible (); - }; - }); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the table */ - tableGroup = new Group (exampleGroup, SWT.NONE); - tableGroup.setLayout (new GridLayout ()); - tableGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - tableGroup.setText ("Table"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - /* Compute the widget style */ - int style = getDefaultStyle(); - if (singleButton.getSelection ()) style |= SWT.SINGLE; - if (multiButton.getSelection ()) style |= SWT.MULTI; - if (verticalButton.getSelection ()) style |= SWT.V_SCROLL; - if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL; - if (checkButton.getSelection ()) style |= SWT.CHECK; - if (fullSelectionButton.getSelection ()) style |= SWT.FULL_SELECTION; - if (hideSelectionButton.getSelection ()) style |= SWT.HIDE_SELECTION; - if (borderButton.getSelection ()) style |= SWT.BORDER; - - /* Create the table widget */ - table1 = new Table (tableGroup, style); - - /* Fill the table with data */ - for (int i = 0; i < columnTitles.length; i++) { - TableColumn tableColumn = new TableColumn(table1, SWT.NONE); - tableColumn.setText(columnTitles[i]); - } - for (int i=0; i<16; i++) { - TableItem item = new TableItem (table1, SWT.NONE); - item.setImage (instance.images [i % 3]); - switch (i % 3) { - case 0: - stringLine0 [0] = ControlExample.getResourceString("Index") + i; - item.setText(stringLine0); - break; - case 1: - stringLine1 [0] = ControlExample.getResourceString("Index") + i; - item.setText(stringLine1); - break; - case 2: - stringLine2 [0] = ControlExample.getResourceString("Index") + i; - item.setText(stringLine2); - break; - } - } - for (int i = 0; i < columnTitles.length; i++) { - TableColumn tableColumn = table1.getColumn(i); - tableColumn.pack(); - } - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup () { - super.createStyleGroup (); - - /* Create the extra widgets */ - checkButton = new Button (styleGroup, SWT.CHECK); - checkButton.setText ("SWT.CHECK"); - fullSelectionButton = new Button (styleGroup, SWT.CHECK); - fullSelectionButton.setText ("SWT.FULL_SELECTION"); - hideSelectionButton = new Button (styleGroup, SWT.CHECK); - hideSelectionButton.setText ("SWT.HIDE_SELECTION"); - } - - /** - * Gets the "Example" widget children's items, if any. - * - * @return an array containing the example widget children's items - */ - Item [] getExampleWidgetItems () { - Item [] columns = table1.getColumns(); - Item [] items = table1.getItems(); - Item [] allItems = new Item [columns.length + items.length]; - System.arraycopy(columns, 0, allItems, 0, columns.length); - System.arraycopy(items, 0, allItems, columns.length, items.length); - return allItems; - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {table1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Table"; - } - - /** - * Sets the foreground color, background color, and font - * of the "Example" widgets to their default settings. - * Also sets foreground and background color of TableItem [0] - * to default settings. - */ - void resetColorsAndFonts () { - super.resetColorsAndFonts (); - Color oldColor = itemForegroundColor; - itemForegroundColor = null; - setItemForeground (); - if (oldColor != null) oldColor.dispose(); - oldColor = itemBackgroundColor; - itemBackgroundColor = null; - setItemBackground (); - if (oldColor != null) oldColor.dispose(); - } - - /** - * Sets the background color of TableItem [0]. - */ - void setItemBackground () { - table1.getItem (0).setBackground (itemBackgroundColor); - /* Set the background button's color to match the color just set. */ - Color color = itemBackgroundColor; - if (color == null) color = table1.getItem (0).getBackground (); - drawImage (itemForegroundImage, color); - itemBackgroundButton.setImage (itemForegroundImage); - } - - /** - * Sets the foreground color of TableItem [0]. - */ - void setItemForeground () { - table1.getItem (0).setForeground (itemForegroundColor); - /* Set the foreground button's color to match the color just set. */ - Color color = itemForegroundColor; - if (color == null) color = table1.getItem (0).getForeground (); - drawImage (itemBackgroundImage, color); - itemForegroundButton.setImage (itemBackgroundImage); - } - - /** - * Sets the font of the "Example" widgets. - */ - void setExampleWidgetFont () { - super.setExampleWidgetFont(); - for (int i = 0; i < columnTitles.length; i++) { - TableColumn tableColumn = table1.getColumn(i); - tableColumn.pack(); - } - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - setItemBackground (); - setItemForeground (); - setWidgetHeaderVisible (); - setWidgetLinesVisible (); - checkButton.setSelection ((table1.getStyle () & SWT.CHECK) != 0); - fullSelectionButton.setSelection ((table1.getStyle () & SWT.FULL_SELECTION) != 0); - hideSelectionButton.setSelection ((table1.getStyle () & SWT.HIDE_SELECTION) != 0); - } - - /** - * Sets the header visible state of the "Example" widgets. - */ - void setWidgetHeaderVisible () { - table1.setHeaderVisible (headerVisibleButton.getSelection ()); - } - - /** - * Sets the lines visible state of the "Example" widgets. - */ - void setWidgetLinesVisible () { - table1.setLinesVisible (linesVisibleButton.getSelection ()); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTreeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTreeTab.java deleted file mode 100644 index c414a74c3a..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTreeTab.java +++ /dev/null @@ -1,225 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class TableTreeTab extends ScrollableTab { - /* Example widgets and groups that contain them */ - TableTree tree1; - Group treeGroup; - - /* Style widgets added to the "Style" group */ - Button checkButton, fullSelectionButton; - - /* Other widgets added to the "Other" group */ - Button headerVisibleButton, linesVisibleButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - TableTreeTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Other" group. - */ - void createOtherGroup () { - super.createOtherGroup (); - - /* Create display controls specific to this example */ - headerVisibleButton = new Button (otherGroup, SWT.CHECK); - headerVisibleButton.setText (ControlExample.getResourceString("Header_Visible")); - linesVisibleButton = new Button (otherGroup, SWT.CHECK); - linesVisibleButton.setText (ControlExample.getResourceString("Lines_Visible")); - - /* Add the listeners */ - headerVisibleButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetHeaderVisible(); - } - }); - linesVisibleButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - setWidgetLinesVisible(); - }; - }); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the text tree */ - treeGroup = new Group (exampleGroup, SWT.NONE); - treeGroup.setLayout (new GridLayout ()); - treeGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - treeGroup.setText ("TableTree"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - /* Compute the widget style */ - int style = getDefaultStyle(); - if (singleButton.getSelection()) style |= SWT.SINGLE; - if (multiButton.getSelection()) style |= SWT.MULTI; - if (checkButton.getSelection()) style |= SWT.CHECK; - if (borderButton.getSelection()) style |= SWT.BORDER; - if (fullSelectionButton.getSelection()) style |= SWT.FULL_SELECTION; - - /* Create the text tree */ - tree1 = new TableTree (treeGroup, style); - Table table = tree1.getTable(); - for (int i = 0; i < 3; i++) { - TableColumn column = new TableColumn (table,SWT.NONE); - column.setWidth(100); - column.setText(ControlExample.getResourceString("TableTree_column") + ": " + i); - } - TableTreeItem node1 = new TableTreeItem (tree1, SWT.NONE); - for (int i = 0; i < 3; i++) { - node1.setText (i, ControlExample.getResourceString("Node_1") + "-" + i); - } - node1.setImage (instance.images[ControlExample.ciOpenFolder]); - TableTreeItem node2 = new TableTreeItem (tree1, SWT.NONE); - for (int i = 0; i < 3; i++) { - node2.setText (i, ControlExample.getResourceString("Node_2") + "-" + i); - } - node2.setImage (instance.images[ControlExample.ciClosedFolder]); - TableTreeItem node3 = new TableTreeItem (tree1, SWT.NONE); - for (int i = 0; i < 3; i++) { - node3.setText (i, ControlExample.getResourceString("Node_3") + "-" + i); - } - node3.setImage (instance.images[ControlExample.ciTarget]); - TableTreeItem node4 = new TableTreeItem (tree1, SWT.NONE); - for (int i = 0; i < 3; i++) { - node4.setText (i, ControlExample.getResourceString("Node_4") + "-" + i); - } - node4.setImage (instance.images[ControlExample.ciOpenFolder]); - TableTreeItem node1_1 = new TableTreeItem (node1, SWT.NONE); - for (int i = 0; i < 3; i++) { - node1_1.setText (i, ControlExample.getResourceString("Node_1_1") + "-" + i); - } - node1_1.setImage (instance.images[ControlExample.ciClosedFolder]); - TableTreeItem node2_1 = new TableTreeItem (node2, SWT.NONE); - for (int i = 0; i < 3; i++) { - node2_1.setText (i, ControlExample.getResourceString("Node_2_1") + "-" + i); - } - node2_1.setImage (instance.images[ControlExample.ciTarget]); - TableTreeItem node3_1 = new TableTreeItem (node3, SWT.NONE); - for (int i = 0; i < 3; i++) { - node3_1.setText (i, ControlExample.getResourceString("Node_3_1") + "-" + i); - } - node3_1.setImage (instance.images[ControlExample.ciOpenFolder]); - TableTreeItem node2_2 = new TableTreeItem (node2, SWT.NONE); - for (int i = 0; i < 3; i++) { - node2_2.setText (i, ControlExample.getResourceString("Node_2_2") + "-" + i); - } - node2_2.setImage (instance.images[ControlExample.ciClosedFolder]); - TableTreeItem node2_2_1 = new TableTreeItem (node2_2, SWT.NONE); - for (int i = 0; i < 3; i++) { - node2_2_1.setText (i, ControlExample.getResourceString("Node_2_2_1") + "-" + i); - } - node2_2_1.setImage (instance.images[ControlExample.ciTarget]); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup(); - - /* Create the extra widgets */ - checkButton = new Button (styleGroup, SWT.CHECK); - checkButton.setText ("SWT.CHECK"); - fullSelectionButton = new Button (styleGroup, SWT.CHECK); - fullSelectionButton.setText ("SWT.FULL_SELECTION"); - } - - /** - * Creates the tab folder page. - * - * @param tabFolder org.eclipse.swt.widgets.TabFolder - * @return the new page for the tab folder - */ - Composite createTabFolderPage (TabFolder tabFolder) { - super.createTabFolderPage (tabFolder); - - /* - * Add a resize listener to the tabFolderPage so that - * if the user types into the example widget to change - * its preferred size, and then resizes the shell, we - * recalculate the preferred size correctly. - */ - tabFolderPage.addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent e) { - setExampleWidgetSize (); - } - }); - - return tabFolderPage; - } - - /** - * Gets the "Example" widget children's items, if any. - * - * @return an array containing the example widget children's items - */ - Item [] getExampleWidgetItems () { - return tree1.getItems(); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {tree1}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "TableTree"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - setWidgetHeaderVisible (); - setWidgetLinesVisible (); - } - - /** - * Sets the header visible state of the "Example" widgets. - */ - void setWidgetHeaderVisible () { - tree1.getTable().setHeaderVisible (headerVisibleButton.getSelection ()); - } - - /** - * Sets the lines visible state of the "Example" widgets. - */ - void setWidgetLinesVisible () { - tree1.getTable().setLinesVisible (linesVisibleButton.getSelection ()); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java deleted file mode 100755 index 74587b0c02..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java +++ /dev/null @@ -1,138 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; - -class TextTab extends ScrollableTab { - /* Example widgets and groups that contain them */ - Text text; - Group textGroup; - - /* Style widgets added to the "Style" group */ - Button wrapButton, readOnlyButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - TextTab(ControlExample instance) { - super(instance); - } - - /** - * Creates a bitmap image. - */ - Image createBitmapImage (Display display, String name) { - ImageData source = new ImageData(ControlExample.class.getResourceAsStream(name + ".bmp")); - ImageData mask = new ImageData(ControlExample.class.getResourceAsStream(name + "_mask.bmp")); - return new Image (display, source, mask); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the text widget */ - textGroup = new Group (exampleGroup, SWT.NONE); - textGroup.setLayout (new GridLayout ()); - textGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - textGroup.setText ("Text"); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (singleButton.getSelection ()) style |= SWT.SINGLE; - if (multiButton.getSelection ()) style |= SWT.MULTI; - if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL; - if (verticalButton.getSelection ()) style |= SWT.V_SCROLL; - if (wrapButton.getSelection ()) style |= SWT.WRAP; - if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY; - if (borderButton.getSelection ()) style |= SWT.BORDER; - - /* Create the example widgets */ - text = new Text (textGroup, style); - text.setText (ControlExample.getResourceString("Example_string") + Text.DELIMITER + ControlExample.getResourceString("One_Two_Three")); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup(); - - /* Create the extra widgets */ - wrapButton = new Button (styleGroup, SWT.CHECK); - wrapButton.setText ("SWT.WRAP"); - readOnlyButton = new Button (styleGroup, SWT.CHECK); - readOnlyButton.setText ("SWT.READ_ONLY"); - } - - /** - * Creates the tab folder page. - * - * @param tabFolder org.eclipse.swt.widgets.TabFolder - * @return the new page for the tab folder - */ - Composite createTabFolderPage (TabFolder tabFolder) { - super.createTabFolderPage (tabFolder); - - /* - * Add a resize listener to the tabFolderPage so that - * if the user types into the example widget to change - * its preferred size, and then resizes the shell, we - * recalculate the preferred size correctly. - */ - tabFolderPage.addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent e) { - setExampleWidgetSize (); - } - }); - - return tabFolderPage; - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {text}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Text"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - wrapButton.setSelection ((text.getStyle () & SWT.WRAP) != 0); - readOnlyButton.setSelection ((text.getStyle () & SWT.READ_ONLY) != 0); - horizontalButton.setEnabled ((text.getStyle () & SWT.MULTI) != 0); - verticalButton.setEnabled ((text.getStyle () & SWT.MULTI) != 0); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java deleted file mode 100755 index 8fdfc27f32..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java +++ /dev/null @@ -1,282 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; - -class ToolBarTab extends Tab { - /* Example widgets and groups that contain them */ - ToolBar imageToolBar, textToolBar; - Group imageToolBarGroup, textToolBarGroup; - - /* Style widgets added to the "Style" group */ - Button horizontalButton, verticalButton, flatButton, shadowOutButton, wrapButton, rightButton; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - ToolBarTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the image tool bar */ - imageToolBarGroup = new Group (exampleGroup, SWT.NONE); - imageToolBarGroup.setLayout (new GridLayout ()); - imageToolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - imageToolBarGroup.setText (ControlExample.getResourceString("Image_ToolBar")); - - /* Create a group for the text tool bar */ - textToolBarGroup = new Group (exampleGroup, SWT.NONE); - textToolBarGroup.setLayout (new GridLayout ()); - textToolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - textToolBarGroup.setText (ControlExample.getResourceString("Text_ToolBar")); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - - /* Compute the widget style */ - int style = getDefaultStyle(); - if (horizontalButton.getSelection()) style |= SWT.HORIZONTAL; - if (verticalButton.getSelection()) style |= SWT.VERTICAL; - if (flatButton.getSelection()) style |= SWT.FLAT; - if (wrapButton.getSelection()) style |= SWT.WRAP; - if (borderButton.getSelection()) style |= SWT.BORDER; - if (shadowOutButton.getSelection()) style |= SWT.SHADOW_OUT; - if (rightButton.getSelection()) style |= SWT.RIGHT; - - /* - * Create the example widgets. - * - * A tool bar must consist of all image tool - * items or all text tool items but not both. - */ - - /* Create the image tool bar */ - imageToolBar = new ToolBar (imageToolBarGroup, style); - ToolItem item = new ToolItem (imageToolBar, SWT.PUSH); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText("SWT.PUSH"); - item = new ToolItem (imageToolBar, SWT.PUSH); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.PUSH"); - item = new ToolItem (imageToolBar, SWT.RADIO); - item.setImage (instance.images[ControlExample.ciOpenFolder]); - item.setToolTipText ("SWT.RADIO"); - item = new ToolItem (imageToolBar, SWT.RADIO); - item.setImage (instance.images[ControlExample.ciOpenFolder]); - item.setToolTipText ("SWT.RADIO"); - item = new ToolItem (imageToolBar, SWT.CHECK); - item.setImage (instance.images[ControlExample.ciTarget]); - item.setToolTipText ("SWT.CHECK"); - item = new ToolItem (imageToolBar, SWT.RADIO); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.RADIO"); - item = new ToolItem (imageToolBar, SWT.RADIO); - item.setImage (instance.images[ControlExample.ciClosedFolder]); - item.setToolTipText ("SWT.RADIO"); - item = new ToolItem (imageToolBar, SWT.SEPARATOR); - item.setToolTipText("SWT.SEPARATOR"); - item = new ToolItem (imageToolBar, SWT.DROP_DOWN); - item.setImage (instance.images[ControlExample.ciTarget]); - item.setToolTipText ("SWT.DROP_DOWN"); - item.addSelectionListener(new DropDownSelectionListener()); - - /* Create the text tool bar */ - textToolBar = new ToolBar (textToolBarGroup, style); - item = new ToolItem (textToolBar, SWT.PUSH); - item.setText (ControlExample.getResourceString("Push")); - item.setToolTipText("SWT.PUSH"); - item = new ToolItem (textToolBar, SWT.PUSH); - item.setText (ControlExample.getResourceString("Push")); - item.setToolTipText("SWT.PUSH"); - item = new ToolItem (textToolBar, SWT.RADIO); - item.setText (ControlExample.getResourceString("Radio")); - item.setToolTipText("SWT.RADIO"); - item = new ToolItem (textToolBar, SWT.RADIO); - item.setText (ControlExample.getResourceString("Radio")); - item.setToolTipText("SWT.RADIO"); - item = new ToolItem (textToolBar, SWT.CHECK); - item.setText (ControlExample.getResourceString("Check")); - item.setToolTipText("SWT.CHECK"); - item = new ToolItem (textToolBar, SWT.RADIO); - item.setText (ControlExample.getResourceString("Radio")); - item.setToolTipText("SWT.RADIO"); - item = new ToolItem (textToolBar, SWT.RADIO); - item.setText (ControlExample.getResourceString("Radio")); - item.setToolTipText("SWT.RADIO"); - item = new ToolItem (textToolBar, SWT.SEPARATOR); - item.setToolTipText("SWT.SEPARATOR"); - item = new ToolItem (textToolBar, SWT.DROP_DOWN); - item.setText (ControlExample.getResourceString("Drop_Down")); - item.setToolTipText("SWT.DROP_DOWN"); - item.addSelectionListener(new DropDownSelectionListener()); - - /* - * Do not add the selection event for this drop down - * tool item. Without hooking the event, the drop down - * widget does nothing special when the drop down area - * is selected. - */ - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup(); - - /* Create the extra widgets */ - horizontalButton = new Button (styleGroup, SWT.RADIO); - horizontalButton.setText ("SWT.HORIZONTAL"); - verticalButton = new Button (styleGroup, SWT.RADIO); - verticalButton.setText ("SWT.VERTICAL"); - flatButton = new Button (styleGroup, SWT.CHECK); - flatButton.setText ("SWT.FLAT"); - shadowOutButton = new Button (styleGroup, SWT.CHECK); - shadowOutButton.setText ("SWT.SHADOW_OUT"); - wrapButton = new Button (styleGroup, SWT.CHECK); - wrapButton.setText ("SWT.WRAP"); - rightButton = new Button (styleGroup, SWT.CHECK); - rightButton.setText ("SWT.RIGHT"); - borderButton = new Button (styleGroup, SWT.CHECK); - borderButton.setText ("SWT.BORDER"); - } - - void disposeExampleWidgets () { - super.disposeExampleWidgets (); - } - - /** - * Gets the "Example" widget children's items, if any. - * - * @return an array containing the example widget children's items - */ - Item [] getExampleWidgetItems () { - Item [] imageToolBarItems = imageToolBar.getItems(); - Item [] textToolBarItems = textToolBar.getItems(); - Item [] allItems = new Item [imageToolBarItems.length + textToolBarItems.length]; - System.arraycopy(imageToolBarItems, 0, allItems, 0, imageToolBarItems.length); - System.arraycopy(textToolBarItems, 0, allItems, imageToolBarItems.length, textToolBarItems.length); - return allItems; - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {imageToolBar, textToolBar}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "ToolBar"; - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - horizontalButton.setSelection ((imageToolBar.getStyle () & SWT.HORIZONTAL) != 0); - verticalButton.setSelection ((imageToolBar.getStyle () & SWT.VERTICAL) != 0); - flatButton.setSelection ((imageToolBar.getStyle () & SWT.FLAT) != 0); - wrapButton.setSelection ((imageToolBar.getStyle () & SWT.WRAP) != 0); - shadowOutButton.setSelection ((imageToolBar.getStyle () & SWT.SHADOW_OUT) != 0); - borderButton.setSelection ((imageToolBar.getStyle () & SWT.BORDER) != 0); - rightButton.setSelection ((imageToolBar.getStyle () & SWT.RIGHT) != 0); - } - - /** - * Listens to widgetSelected() events on SWT.DROP_DOWN type ToolItems - * and opens/closes a menu when appropriate. - */ - class DropDownSelectionListener extends SelectionAdapter { - private Menu menu = null; - private boolean visible = false; - - public void widgetSelected(SelectionEvent event) { - // Create the menu if it has not already been created - if (menu == null) { - // Lazy create the menu. - Shell shell = tabFolderPage.getShell(); - menu = new Menu(shell); - for (int i = 0; i < 9; ++i) { - final String text = ControlExample.getResourceString("DropDownData_" + i); - if (text.length() != 0) { - MenuItem menuItem = new MenuItem(menu, SWT.NONE); - menuItem.setText(text); - /* - * Add a menu selection listener so that the menu is hidden - * when the user selects an item from the drop down menu. - */ - menuItem.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - setMenuVisible(false); - } - }); - } else { - new MenuItem(menu, SWT.SEPARATOR); - } - } - } - - /** - * A selection event will be fired when a drop down tool - * item is selected in the main area and in the drop - * down arrow. Examine the event detail to determine - * where the widget was selected. - */ - if (event.detail == SWT.ARROW) { - /* - * The drop down arrow was selected. - */ - if (visible) { - // Hide the menu to give the Arrow the appearance of being a toggle button. - setMenuVisible(false); - } else { - // Position the menu below and vertically aligned with the the drop down tool button. - final ToolItem toolItem = (ToolItem) event.widget; - final ToolBar toolBar = toolItem.getParent(); - - Rectangle toolItemBounds = toolItem.getBounds(); - Point point = toolBar.toDisplay(new Point(toolItemBounds.x, toolItemBounds.y)); - menu.setLocation(point.x, point.y + toolItemBounds.height); - setMenuVisible(true); - } - } else { - /* - * Main area of drop down tool item selected. - * An application would invoke the code to perform the action for the tool item. - */ - } - } - private void setMenuVisible(boolean visible) { - menu.setVisible(visible); - this.visible = visible; - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java deleted file mode 100755 index 8e933cda36..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java +++ /dev/null @@ -1,269 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.controlexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.events.*; - -class TreeTab extends ScrollableTab { - /* Example widgets and groups that contain them */ - Tree tree1, tree2; - TreeItem textNode1, imageNode1; - Group treeGroup, imageTreeGroup, treeItemGroup; - - /* Style widgets added to the "Style" group */ - Button checkButton; - - /* Controls and resources added to the "Colors" group */ - Button itemForegroundButton, itemBackgroundButton; - Color itemForegroundColor, itemBackgroundColor; - Image itemForegroundImage, itemBackgroundImage; - - /** - * Creates the Tab within a given instance of ControlExample. - */ - TreeTab(ControlExample instance) { - super(instance); - } - - /** - * Creates the "Colors" group. - */ - void createColorGroup () { - super.createColorGroup(); - - treeItemGroup = new Group (colorGroup, SWT.NONE); - treeItemGroup.setText (ControlExample.getResourceString ("Tree_Item_Colors")); - GridData data = new GridData (); - data.horizontalSpan = 2; - treeItemGroup.setLayoutData (data); - treeItemGroup.setLayout (new GridLayout (2, false)); - new Label (treeItemGroup, SWT.NONE).setText (ControlExample.getResourceString ("Item_Foreground_Color")); - itemForegroundButton = new Button (treeItemGroup, SWT.PUSH); - new Label (treeItemGroup, SWT.NONE).setText (ControlExample.getResourceString ("Item_Background_Color")); - itemBackgroundButton = new Button (treeItemGroup, SWT.PUSH); - - Shell shell = colorGroup.getShell (); - final ColorDialog foregroundDialog = new ColorDialog (shell); - final ColorDialog backgroundDialog = new ColorDialog (shell); - - int imageSize = 12; - Display display = shell.getDisplay (); - itemForegroundImage = new Image(display, imageSize, imageSize); - itemBackgroundImage = new Image(display, imageSize, imageSize); - - /* Add listeners to set the colors and font */ - itemForegroundButton.setImage(itemForegroundImage); - itemForegroundButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - Color oldColor = itemForegroundColor; - if (oldColor == null) oldColor = textNode1.getForeground (); - foregroundDialog.setRGB(oldColor.getRGB()); - RGB rgb = foregroundDialog.open(); - if (rgb == null) return; - oldColor = itemForegroundColor; - itemForegroundColor = new Color (event.display, rgb); - setItemForeground (); - if (oldColor != null) oldColor.dispose (); - } - }); - itemBackgroundButton.setImage(itemBackgroundImage); - itemBackgroundButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - Color oldColor = itemBackgroundColor; - if (oldColor == null) oldColor = textNode1.getBackground (); - backgroundDialog.setRGB(oldColor.getRGB()); - RGB rgb = backgroundDialog.open(); - if (rgb == null) return; - oldColor = itemBackgroundColor; - itemBackgroundColor = new Color (event.display, rgb); - setItemBackground (); - if (oldColor != null) oldColor.dispose (); - } - }); - shell.addDisposeListener(new DisposeListener() { - public void widgetDisposed(DisposeEvent event) { - if (itemBackgroundImage != null) itemBackgroundImage.dispose(); - if (itemForegroundImage != null) itemForegroundImage.dispose(); - if (itemBackgroundColor != null) itemBackgroundColor.dispose(); - if (itemForegroundColor != null) itemForegroundColor.dispose(); - itemBackgroundColor = null; - itemForegroundColor = null; - } - }); - } - - /** - * Creates the "Example" group. - */ - void createExampleGroup () { - super.createExampleGroup (); - - /* Create a group for the text tree */ - treeGroup = new Group (exampleGroup, SWT.NONE); - treeGroup.setLayout (new GridLayout ()); - treeGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - treeGroup.setText ("Tree"); - - /* Create a group for the image tree */ - imageTreeGroup = new Group (exampleGroup, SWT.NONE); - imageTreeGroup.setLayout (new GridLayout ()); - imageTreeGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL)); - imageTreeGroup.setText (ControlExample.getResourceString("Tree_With_Images")); - } - - /** - * Creates the "Example" widgets. - */ - void createExampleWidgets () { - /* Compute the widget style */ - int style = getDefaultStyle(); - if (singleButton.getSelection()) style |= SWT.SINGLE; - if (multiButton.getSelection()) style |= SWT.MULTI; - if (checkButton.getSelection()) style |= SWT.CHECK; - if (borderButton.getSelection()) style |= SWT.BORDER; - - /* Create the text tree */ - tree1 = new Tree (treeGroup, style); - textNode1 = new TreeItem (tree1, SWT.NONE); - textNode1.setText (ControlExample.getResourceString("Node_1")); - TreeItem node2 = new TreeItem (tree1, SWT.NONE); - node2.setText (ControlExample.getResourceString("Node_2")); - TreeItem node3 = new TreeItem (tree1, SWT.NONE); - node3.setText (ControlExample.getResourceString("Node_3")); - TreeItem node4 = new TreeItem (tree1, SWT.NONE); - node4.setText (ControlExample.getResourceString("Node_4")); - TreeItem node1_1 = new TreeItem (textNode1, SWT.NONE); - node1_1.setText (ControlExample.getResourceString("Node_1_1")); - TreeItem node2_1 = new TreeItem (node2, SWT.NONE); - node2_1.setText (ControlExample.getResourceString("Node_2_1")); - TreeItem node3_1 = new TreeItem (node3, SWT.NONE); - node3_1.setText (ControlExample.getResourceString("Node_3_1")); - TreeItem node2_2 = new TreeItem (node2, SWT.NONE); - node2_2.setText (ControlExample.getResourceString("Node_2_2")); - TreeItem node2_2_1 = new TreeItem (node2_2, SWT.NONE); - node2_2_1.setText (ControlExample.getResourceString("Node_2_2_1")); - - /* Create the image tree */ - tree2 = new Tree (imageTreeGroup, style); - imageNode1 = new TreeItem (tree2, SWT.NONE); - imageNode1.setText (ControlExample.getResourceString("Node_1")); - imageNode1.setImage (instance.images[ControlExample.ciClosedFolder]); - node2 = new TreeItem (tree2, SWT.NONE); - node2.setText (ControlExample.getResourceString("Node_2")); - node2.setImage (instance.images[ControlExample.ciClosedFolder]); - node3 = new TreeItem (tree2, SWT.NONE); - node3.setText (ControlExample.getResourceString("Node_3")); - node3.setImage (instance.images[ControlExample.ciClosedFolder]); - node4 = new TreeItem (tree2, SWT.NONE); - node4.setText (ControlExample.getResourceString("Node_4")); - node4.setImage (instance.images[ControlExample.ciClosedFolder]); - node1_1 = new TreeItem (imageNode1, SWT.NONE); - node1_1.setText (ControlExample.getResourceString("Node_1_1")); - node1_1.setImage (instance.images[ControlExample.ciClosedFolder]); - node2_1 = new TreeItem (node2, SWT.NONE); - node2_1.setText (ControlExample.getResourceString("Node_2_1")); - node2_1.setImage (instance.images[ControlExample.ciClosedFolder]); - node3_1 = new TreeItem (node3, SWT.NONE); - node3_1.setText (ControlExample.getResourceString("Node_3_1")); - node3_1.setImage (instance.images[ControlExample.ciClosedFolder]); - node2_2 = new TreeItem(node2, SWT.NONE); - node2_2.setText (ControlExample.getResourceString("Node_2_2")); - node2_2.setImage (instance.images[ControlExample.ciClosedFolder]); - node2_2_1 = new TreeItem (node2_2, SWT.NONE); - node2_2_1.setText (ControlExample.getResourceString("Node_2_2_1")); - node2_2_1.setImage (instance.images[ControlExample.ciClosedFolder]); - } - - /** - * Creates the "Style" group. - */ - void createStyleGroup() { - super.createStyleGroup(); - - /* Create the extra widgets */ - checkButton = new Button (styleGroup, SWT.CHECK); - checkButton.setText ("SWT.CHECK"); - } - - /** - * Gets the "Example" widget children. - */ - Control [] getExampleWidgets () { - return new Control [] {tree1, tree2}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "Tree"; - } - - /** - * Sets the foreground color, background color, and font - * of the "Example" widgets to their default settings. - * Also sets foreground and background color of the Node 1 - * TreeItems to default settings. - */ - void resetColorsAndFonts () { - super.resetColorsAndFonts (); - Color oldColor = itemForegroundColor; - itemForegroundColor = null; - setItemForeground (); - if (oldColor != null) oldColor.dispose(); - oldColor = itemBackgroundColor; - itemBackgroundColor = null; - setItemBackground (); - if (oldColor != null) oldColor.dispose(); - } - - /** - * Sets the state of the "Example" widgets. - */ - void setExampleWidgetState () { - super.setExampleWidgetState (); - setItemBackground (); - setItemForeground (); - checkButton.setSelection ((tree1.getStyle () & SWT.CHECK) != 0); - } - - /** - * Sets the background color of the Node 1 TreeItems. - */ - void setItemBackground () { - textNode1.setBackground (itemBackgroundColor); - imageNode1.setBackground (itemBackgroundColor); - /* Set the background button's color to match the color just set. */ - Color color = itemBackgroundColor; - if (color == null) color = textNode1.getBackground (); - drawImage (itemForegroundImage, color); - itemBackgroundButton.setImage (itemForegroundImage); - } - - /** - * Sets the foreground color of Node 1 TreeItems. - */ - void setItemForeground () { - textNode1.setForeground (itemForegroundColor); - imageNode1.setForeground (itemForegroundColor); - /* Set the foreground button's color to match the color just set. */ - Color color = itemForegroundColor; - if (color == null) color = textNode1.getForeground (); - drawImage (itemBackgroundImage, color); - itemForegroundButton.setImage (itemBackgroundImage); - } - -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp Binary files differdeleted file mode 100644 index a3184bb26c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp Binary files differdeleted file mode 100644 index 382751efa3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif Binary files differdeleted file mode 100644 index 6660d0b11a..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif Binary files differdeleted file mode 100644 index fc9943f111..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp Binary files differdeleted file mode 100644 index 88c63be336..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp Binary files differdeleted file mode 100644 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif Binary files differdeleted file mode 100644 index 9807ae648d..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp Binary files differdeleted file mode 100644 index 631d0690fa..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp Binary files differdeleted file mode 100644 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java deleted file mode 100644 index f1094fad9d..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java +++ /dev/null @@ -1,1174 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.dnd; - - -import org.eclipse.swt.*; -import org.eclipse.swt.dnd.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -public class DNDExample { - - private int dragOperation = 0; - private Transfer[] dragTypes = new Transfer[0]; - private Control dragControl; - private int dragControlType = 0; - private DragSource dragSource; - private String dragDataText; - private String dragDataRTF; - private String[] dragDataFiles; - private List fileList; - private boolean dragEnabled = false; - - private int dropOperation = 0; - private int dropDefaultOperation = 0; - private Transfer[] dropTypes = new Transfer[0]; - private DropTarget dropTarget; - private Control dropControl; - private int dropControlType = 0; - private Composite defaultParent; - private boolean dropEnabled = false; - - private Text dragConsole; - private boolean dragEventDetail = false; - private Text dropConsole; - private boolean dropEventDetail = false; - - private static final int BUTTON_TOGGLE = 0; - private static final int BUTTON_RADIO = 1; - private static final int BUTTON_CHECK = 2; - private static final int CANVAS = 3; - private static final int LABEL = 4; - private static final int LIST = 5; - private static final int TABLE = 6; - private static final int TREE = 7; - private static final int TEXT = 8; - -public static void main(String[] args) { - DNDExample example = new DNDExample(); - example.open(); -} - -private void addDragTransfer(Transfer transfer){ - Transfer[] newTypes = new Transfer[dragTypes.length + 1]; - System.arraycopy(dragTypes, 0, newTypes, 0, dragTypes.length); - newTypes[dragTypes.length] = transfer; - dragTypes = newTypes; - if (dragSource != null) { - dragSource.setTransfer(dragTypes); - } -} - -private void addDropTransfer(Transfer transfer){ - Transfer[] newTypes = new Transfer[dropTypes.length + 1]; - System.arraycopy(dropTypes, 0, newTypes, 0, dropTypes.length); - newTypes[dropTypes.length] = transfer; - dropTypes = newTypes; - if (dropTarget != null) { - dropTarget.setTransfer(dropTypes); - } -} - -private void createDragOperations(Composite parent) { - parent.setLayout(new RowLayout(SWT.VERTICAL)); - final Button moveButton = new Button(parent, SWT.CHECK); - moveButton.setText("DND.DROP_MOVE"); - moveButton.setSelection(true); - dragOperation = DND.DROP_MOVE; - moveButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dragOperation |= DND.DROP_MOVE; - } else { - dragOperation = dragOperation &~DND.DROP_MOVE; - if (dragOperation == 0) { - dragOperation = DND.DROP_MOVE; - moveButton.setSelection(true); - } - } - if (dragEnabled) { - createDragSource(); - } - } - }); - - - Button b = new Button(parent, SWT.CHECK); - b.setText("DND.DROP_COPY"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dragOperation |= DND.DROP_COPY; - } else { - dragOperation = dragOperation &~DND.DROP_COPY; - if (dragOperation == 0) { - dragOperation = DND.DROP_MOVE; - moveButton.setSelection(true); - } - } - if (dragEnabled) { - createDragSource(); - } - } - }); - - b = new Button(parent, SWT.CHECK); - b.setText("DND.DROP_LINK"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dragOperation |= DND.DROP_LINK; - } else { - dragOperation = dragOperation &~DND.DROP_LINK; - if (dragOperation == 0) { - dragOperation = DND.DROP_MOVE; - moveButton.setSelection(true); - } - } - if (dragEnabled) { - createDragSource(); - } - } - }); -} - -private void createDragSource() { - if (dragSource != null) dragSource.dispose(); - dragSource = new DragSource(dragControl, dragOperation); - dragSource.setTransfer(dragTypes); - dragSource.addDragListener(new DragSourceListener() { - public void dragFinished(org.eclipse.swt.dnd.DragSourceEvent event) { - dragConsole.append(">>dragFinished\n"); - printEvent(event); - dragDataText = dragDataRTF = null; - dragDataFiles = null; - if (event.detail == DND.DROP_MOVE) { - switch(dragControlType) { - case BUTTON_CHECK: - case BUTTON_TOGGLE: - case BUTTON_RADIO: { - Button b = (Button)dragControl; - b.setText(""); - break; - } - case TABLE: { - Table table = (Table)dragControl; - TableItem[] items = table.getSelection(); - for (int i = 0; i < items.length; i++) { - items[i].dispose(); - } - break; - } - case TEXT: { - Text text = (Text)dragControl; - text.clearSelection(); - break; - } - case TREE: { - Tree tree = (Tree)dragControl; - TreeItem[] items = tree.getSelection(); - for (int i = 0; i < items.length; i++) { - items[i].dispose(); - } - break; - } - case CANVAS: { - dragControl.setData("STRINGS", null); - dragControl.redraw(); - break; - } - case LABEL: { - Label label = (Label)dragControl; - label.setText(""); - break; - } - case LIST: { - List list = (List)dragControl; - int[] indices = list.getSelectionIndices(); - list.remove(indices); - break; - } - } - } - } - public void dragSetData(org.eclipse.swt.dnd.DragSourceEvent event) { - dragConsole.append(">>dragSetData\n"); - printEvent(event); - if (TextTransfer.getInstance().isSupportedType(event.dataType)) { - event.data = dragDataText; - } - if (RTFTransfer.getInstance().isSupportedType(event.dataType)) { - event.data = dragDataRTF; - } - if (FileTransfer.getInstance().isSupportedType(event.dataType)) { - event.data = dragDataFiles; - } - } - public void dragStart(org.eclipse.swt.dnd.DragSourceEvent event) { - dragConsole.append(">>dragStart\n"); - printEvent(event); - dragDataFiles = fileList.getItems(); - switch(dragControlType) { - case BUTTON_CHECK: - case BUTTON_TOGGLE: - case BUTTON_RADIO: { - Button b = (Button)dragControl; - dragDataText = b.getSelection() ? "true" : "false"; - break; - } - case TABLE: { - Table table = (Table)dragControl; - TableItem[] items = table.getSelection(); - if (items.length == 0) { - event.doit = false; - } else { - StringBuffer buffer = new StringBuffer(); - for (int i = 0; i < items.length; i++) { - buffer.append(items[i].getText()); - if (items.length > 1 && i < items.length - 1) { - buffer.append("\n"); - } - } - dragDataText = buffer.toString(); - } - break; - } - case TEXT: { - Text text = (Text)dragControl; - String s = text.getSelectionText(); - if (s.length() == 0) { - event.doit = false; - } else { - dragDataText = s; - } - break; - } - case TREE: { - Tree tree = (Tree)dragControl; - TreeItem[] items = tree.getSelection(); - if (items.length == 0) { - event.doit = false; - } else { - StringBuffer buffer = new StringBuffer(); - for (int i = 0; i < items.length; i++) { - buffer.append(items[i].getText()); - if (items.length > 1 && i < items.length - 1) { - buffer.append("\n"); - } - } - dragDataText = buffer.toString(); - } - break; - } - case CANVAS: { - String[] strings = (String[])dragControl.getData("STRINGS"); - if (strings == null || strings.length == 0) { - event.doit = false; - } else { - StringBuffer buffer = new StringBuffer(); - for (int i = 0; i < strings.length; i++) { - buffer.append(strings[i]); - if (strings.length > 1 && i < strings.length - 1) { - buffer.append("\n"); - } - } - dragDataText = buffer.toString(); - } - break; - } - case LABEL: { - Label label = (Label)dragControl; - String string = label.getText(); - if (string.length() == 0) { - event.doit = false; - } else { - dragDataText = string; - } - break; - } - case LIST: { - List list = (List)dragControl; - String[] selection = list.getSelection(); - if (selection.length == 0) { - event.doit = false; - } else { - StringBuffer buffer = new StringBuffer(); - for (int i = 0; i < selection.length; i++) { - buffer.append(selection[i]); - if (selection.length > 1 && i < selection.length - 1) { - buffer.append("\n"); - } - } - dragDataText = buffer.toString(); - } - break; - } - default: - throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED); - } - if (dragDataText != null) { - dragDataRTF = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\cf1\\b "+dragDataText+"}"; - } - - for (int i = 0; i < dragTypes.length; i++) { - if (dragTypes[i] instanceof TextTransfer && dragDataText == null) { - event.doit = false; - } - if (dragTypes[i] instanceof RTFTransfer && dragDataRTF == null) { - event.doit = false; - } - if (dragTypes[i] instanceof FileTransfer && (dragDataFiles == null || dragDataFiles.length == 0)) { - event.doit = false; - } - } - } - }); -} - -private void createDragTypes(Composite parent) { - parent.setLayout(new GridLayout()); - Button b = new Button(parent, SWT.CHECK); - b.setText("Text Transfer"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - addDragTransfer(TextTransfer.getInstance()); - } else { - removeDragTransfer(TextTransfer.getInstance()); - } - } - }); - - b = new Button(parent, SWT.CHECK); - b.setText("RTF Transfer"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - addDragTransfer(RTFTransfer.getInstance()); - } else { - removeDragTransfer(RTFTransfer.getInstance()); - } - } - }); - - Composite c = new Composite(parent, SWT.NONE); - c.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - GridLayout layout = new GridLayout(3, false); - layout.marginHeight = layout.marginWidth = 0; - c.setLayout(layout); - b = new Button(c, SWT.CHECK); - b.setText("File Transfer"); - b.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING)); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - addDragTransfer(FileTransfer.getInstance()); - } else { - removeDragTransfer(FileTransfer.getInstance()); - } - } - }); - b = new Button(c, SWT.PUSH); - b.setText("Select File(s)"); - b.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING)); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - FileDialog dialog = new FileDialog(fileList.getShell(), SWT.OPEN | SWT.MULTI); - String result = dialog.open(); - if (result != null && result.length() > 0){ - fileList.removeAll(); - String separator = System.getProperty("file.separator"); - String path = dialog.getFilterPath(); - String[] names = dialog.getFileNames(); - for (int i = 0; i < names.length; i++) { - fileList.add(path+separator+names[i]); - } - } - } - }); - fileList = new List(c, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); - GridData data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - data.verticalAlignment = GridData.BEGINNING; - fileList.setLayoutData(data); -} - -private void createDragWidget(Composite parent) { - parent.setLayout(new FormLayout()); - Combo combo = new Combo(parent, SWT.READ_ONLY); - combo.setItems(new String[] {"Toggle Button", "Radio Button", "Checkbox", "Canvas", "Label", "List", "Table", "Tree"}); - combo.select(LABEL); - dragControlType = combo.getSelectionIndex(); - dragControl = createWidget(dragControlType, parent, "Drag Source"); - - combo.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Object data = dragControl.getLayoutData(); - Composite parent = dragControl.getParent(); - dragControl.dispose(); - Combo c = (Combo)e.widget; - dragControlType = c.getSelectionIndex(); - dragControl = createWidget(dragControlType, parent, "Drag Source"); - dragControl.setLayoutData(data); - if (dragEnabled) createDragSource(); - parent.layout(); - } - }); - - Button b = new Button(parent, SWT.CHECK); - b.setText("DragSource"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - dragEnabled = b.getSelection(); - if (dragEnabled) { - createDragSource(); - } else { - if (dragSource != null){ - dragSource.dispose(); - } - dragSource = null; - } - } - }); - - FormData data = new FormData(); - data.top = new FormAttachment(0, 10); - data.bottom = new FormAttachment(combo, -10); - data.left = new FormAttachment(0, 10); - data.right = new FormAttachment(100, -10); - dragControl.setLayoutData(data); - - data = new FormData(); - data.bottom = new FormAttachment(b, -10); - data.left = new FormAttachment(0, 10); - combo.setLayoutData(data); - - data = new FormData(); - data.bottom = new FormAttachment(100, -10); - data.left = new FormAttachment(0, 10); - b.setLayoutData(data); -} - -private void createDropOperations(Composite parent) { - parent.setLayout(new RowLayout(SWT.VERTICAL)); - final Button moveButton = new Button(parent, SWT.CHECK); - moveButton.setText("DND.DROP_MOVE"); - moveButton.setSelection(true); - dropOperation = DND.DROP_MOVE; - moveButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dropOperation |= DND.DROP_MOVE; - } else { - dropOperation = dropOperation & ~DND.DROP_MOVE; - if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_MOVE) != 0) { - dropOperation |= DND.DROP_MOVE; - moveButton.setSelection(true); - } - } - if (dropEnabled) { - createDropTarget(); - } - } - }); - - - final Button copyButton = new Button(parent, SWT.CHECK); - copyButton.setText("DND.DROP_COPY"); - copyButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dropOperation |= DND.DROP_COPY; - } else { - dropOperation = dropOperation & ~DND.DROP_COPY; - if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_COPY) != 0) { - dropOperation = DND.DROP_COPY; - copyButton.setSelection(true); - } - } - if (dropEnabled) { - createDropTarget(); - } - } - }); - - final Button linkButton = new Button(parent, SWT.CHECK); - linkButton.setText("DND.DROP_LINK"); - linkButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dropOperation |= DND.DROP_LINK; - } else { - dropOperation = dropOperation & ~DND.DROP_LINK; - if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_LINK) != 0) { - dropOperation = DND.DROP_LINK; - linkButton.setSelection(true); - } - } - if (dropEnabled) { - createDropTarget(); - } - } - }); - - Button b = new Button(parent, SWT.CHECK); - b.setText("DND.DROP_DEFAULT"); - defaultParent = new Composite(parent, SWT.NONE); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dropOperation |= DND.DROP_DEFAULT; - defaultParent.setVisible(true); - } else { - dropOperation = dropOperation & ~DND.DROP_DEFAULT; - defaultParent.setVisible(false); - } - if (dropEnabled) { - createDropTarget(); - } - } - }); - - defaultParent.setVisible(false); - GridLayout layout = new GridLayout(); - layout.marginWidth = 20; - defaultParent.setLayout(layout); - Label label = new Label(defaultParent, SWT.NONE); - label.setText("Value for default operation is:"); - b = new Button(defaultParent, SWT.RADIO); - b.setText("DND.DROP_MOVE"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dropDefaultOperation = DND.DROP_MOVE; - dropOperation |= DND.DROP_MOVE; - moveButton.setSelection(true); - if (dropEnabled) { - createDropTarget(); - } - } - } - }); - - b = new Button(defaultParent, SWT.RADIO); - b.setText("DND.DROP_COPY"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dropDefaultOperation = DND.DROP_COPY; - dropOperation |= DND.DROP_COPY; - copyButton.setSelection(true); - if (dropEnabled) { - createDropTarget(); - } - } - } - }); - - b = new Button(defaultParent, SWT.RADIO); - b.setText("DND.DROP_LINK"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dropDefaultOperation = DND.DROP_LINK; - dropOperation |= DND.DROP_LINK; - linkButton.setSelection(true); - if (dropEnabled) { - createDropTarget(); - } - } - } - }); - - b = new Button(defaultParent, SWT.RADIO); - b.setText("DND.DROP_NONE"); - b.setSelection(true); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - dropDefaultOperation = DND.DROP_NONE; - dropOperation &= ~DND.DROP_DEFAULT; - if (dropEnabled) { - createDropTarget(); - } - } - } - }); -} - -private void createDropTarget() { - if (dropTarget != null) dropTarget.dispose(); - dropTarget = new DropTarget(dropControl, dropOperation); - dropTarget.setTransfer(dropTypes); - dropTarget.addDropListener(new DropTargetListener() { - public void dragEnter(DropTargetEvent event) { - dropConsole.append(">>dragEnter\n"); - printEvent(event); - if (event.detail == DND.DROP_DEFAULT) { - event.detail = dropDefaultOperation; - } - } - public void dragLeave(DropTargetEvent event) { - dropConsole.append(">>dragLeave\n"); - printEvent(event); - } - public void dragOperationChanged(DropTargetEvent event) { - dropConsole.append(">>dragOperationChanged\n"); - printEvent(event); - if (event.detail == DND.DROP_DEFAULT) { - event.detail = dropDefaultOperation; - } - } - public void dragOver(DropTargetEvent event) { - dropConsole.append(">>dragOver\n"); - printEvent(event); - } - public void drop(DropTargetEvent event) { - dropConsole.append(">>drop\n"); - printEvent(event); - String[] strings = null; - if (TextTransfer.getInstance().isSupportedType(event.currentDataType) || - RTFTransfer.getInstance().isSupportedType(event.currentDataType)) { - strings = new String[] {(String)event.data}; - } - if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) { - strings = (String[])event.data; - } - if (strings == null || strings.length == 0) { - dropConsole.append("!!Invalid data dropped"); - return; - } - - if (strings.length == 1 && (dropControlType == TABLE || - dropControlType == TREE || - dropControlType == LIST)) { - // convert string separated by "\n" into an array of strings - String string = strings[0]; - int count = 0; - int offset = string.indexOf("\n", 0); - while (offset > 0) { - count++; - offset = string.indexOf("\n", offset + 1); - } - if (count > 0) { - strings = new String[count + 1]; - int start = 0; - int end = string.indexOf("\n"); - int index = 0; - while (start < end) { - strings[index++] = string.substring(start, end); - start = end + 1; - end = string.indexOf("\n", start); - if (end == -1) end = string.length(); - } - } - } - switch(dropControlType) { - case BUTTON_CHECK: - case BUTTON_TOGGLE: - case BUTTON_RADIO: { - Button b = (Button)dropControl; - b.setText(strings[0]); - break; - } - case TABLE: { - Table table = (Table)dropControl; - for(int i = 0; i < strings.length; i++) { - TableItem item = new TableItem(table, SWT.NONE); - item.setText(0, strings[i]); - item.setText(1, "dropped item"); - } - TableColumn[] columns = table.getColumns(); - for (int i = 0; i < columns.length; i++) { - columns[i].pack(); - } - break; - } - case TEXT: { - Text text = (Text)dropControl; - for(int i = 0; i < strings.length; i++) { - text.append(strings[i]+"\n"); - } - break; - } - case TREE: { - Tree tree = (Tree)dropControl; - for(int i = 0; i < strings.length; i++) { - TreeItem item = new TreeItem(tree, SWT.NONE); - item.setText(strings[i]); - } - break; - } - case CANVAS: { - dropControl.setData("STRINGS", strings); - dropControl.redraw(); - break; - } - case LABEL: { - Label label = (Label)dropControl; - label.setText(strings[0]); - break; - } - case LIST: { - List list = (List)dropControl; - for(int i = 0; i < strings.length; i++) { - list.add(strings[i]); - } - break; - } - default: - throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED); - } - } - public void dropAccept(DropTargetEvent event) { - dropConsole.append(">>dropAccept\n"); - printEvent(event); - } - }); -} - -private void createDropTypes(Composite parent) { - parent.setLayout(new RowLayout(SWT.VERTICAL)); - Button b = new Button(parent, SWT.CHECK); - b.setText("Text Transfer"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - addDropTransfer(TextTransfer.getInstance()); - } else { - removeDropTransfer(TextTransfer.getInstance()); - } - } - }); - - b = new Button(parent, SWT.CHECK); - b.setText("RTF Transfer"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - addDropTransfer(RTFTransfer.getInstance()); - } else { - removeDropTransfer(RTFTransfer.getInstance()); - } - } - }); - - b = new Button(parent, SWT.CHECK); - b.setText("File Transfer"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - if (b.getSelection()) { - addDropTransfer(FileTransfer.getInstance()); - } else { - removeDropTransfer(FileTransfer.getInstance()); - } - } - }); -} - -private void createDropWidget(Composite parent) { - parent.setLayout(new FormLayout()); - Combo combo = new Combo(parent, SWT.READ_ONLY); - combo.setItems(new String[] {"Toggle Button", "Radio Button", "Checkbox", "Canvas", "Label", "List", "Table", "Tree", "Text"}); - combo.select(LABEL); - dropControlType = combo.getSelectionIndex(); - dropControl = createWidget(dropControlType, parent, "Drop Target"); - combo.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Object data = dropControl.getLayoutData(); - Composite parent = dropControl.getParent(); - dropControl.dispose(); - Combo c = (Combo)e.widget; - dropControlType = c.getSelectionIndex(); - dropControl = createWidget(dropControlType, parent, "Drop Target"); - dropControl.setLayoutData(data); - if (dropEnabled) createDropTarget(); - parent.layout(); - } - }); - - Button b = new Button(parent, SWT.CHECK); - b.setText("DropTarget"); - b.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - Button b = (Button)e.widget; - dropEnabled = b.getSelection(); - if (dropEnabled) { - createDropTarget(); - } else { - if (dropTarget != null){ - dropTarget.dispose(); - } - dropTarget = null; - } - } - }); - - FormData data = new FormData(); - data.top = new FormAttachment(0, 10); - data.bottom = new FormAttachment(combo, -10); - data.left = new FormAttachment(0, 10); - data.right = new FormAttachment(100, -10); - dropControl.setLayoutData(data); - - data = new FormData(); - data.bottom = new FormAttachment(b, -10); - data.left = new FormAttachment(0, 10); - combo.setLayoutData(data); - - data = new FormData(); - data.bottom = new FormAttachment(100, -10); - data.left = new FormAttachment(0, 10); - b.setLayoutData(data); -} - -private Control createWidget(int type, Composite parent, String prefix){ - switch (type) { - case BUTTON_CHECK: { - Button button = new Button(parent, SWT.CHECK); - button.setText(prefix+" Check box"); - return button; - } - case BUTTON_TOGGLE: { - Button button = new Button(parent, SWT.TOGGLE); - button.setText(prefix+" Toggle button"); - return button; - } - case BUTTON_RADIO: { - Button button = new Button(parent, SWT.RADIO); - button.setText(prefix+" Radio button"); - return button; - } - case TABLE: { - Table table = new Table(parent, SWT.BORDER | SWT.MULTI); - TableColumn column1 = new TableColumn(table, SWT.NONE); - TableColumn column2 = new TableColumn(table, SWT.NONE); - for (int i = 0; i < 10; i++) { - TableItem item = new TableItem(table, SWT.NONE); - item.setText(0, prefix+" name " + i); - item.setText(1, prefix+" value " + i); - } - column1.pack(); - column2.pack(); - return table; - } - case TEXT: { - Text text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); - text.setText(prefix+" Text"); - return text; - } - case TREE: { - Tree tree = new Tree(parent, SWT.BORDER); - for (int i = 0; i < 3; i++) { - TreeItem item = new TreeItem(tree, SWT.NONE); - item.setText(prefix+" item " + i); - for (int j = 0; j < 3; j++) { - TreeItem subItem = new TreeItem(item, SWT.NONE); - subItem.setText(prefix+" item " + j); - for (int k = 0; k < 3; k++) { - TreeItem subsubItem = new TreeItem(subItem, SWT.NONE); - subsubItem.setText(prefix+" item " + k); - } - } - } - return tree; - } - case CANVAS: { - Canvas canvas = new Canvas(parent, SWT.BORDER); - canvas.setData("STRINGS", new String[] {prefix+" Canvas widget"}); - canvas.addPaintListener(new PaintListener() { - public void paintControl(PaintEvent e) { - Canvas c = (Canvas)e.widget; - Image image = (Image)c.getData("IMAGE"); - if (image != null) { - e.gc.drawImage(image, 5, 5); - } else { - String[] strings = (String[])c.getData("STRINGS"); - if (strings != null) { - FontMetrics metrics = e.gc.getFontMetrics(); - int height = metrics.getHeight(); - int y = 5; - for(int i = 0; i < strings.length; i++) { - e.gc.drawString(strings[i], 5, y); - y += height + 5; - } - } - } - } - }); - return canvas; - } - case LABEL: { - Label label = new Label(parent, SWT.BORDER); - label.setText(prefix+" Label"); - return label; - } - case LIST: { - List list = new List(parent, SWT.BORDER); - list.setItems(new String[] {prefix+" Item a", prefix+" Item b", prefix+" Item c", prefix+" Item d"}); - return list; - } - default: - throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED); - } -} - -private void open() { - Display display = new Display(); - Shell shell = new Shell(display); - shell.setText("Drag and Drop Example"); - shell.setLayout(new FormLayout()); - - Label dragLabel = new Label(shell, SWT.LEFT); - dragLabel.setText("Drag Source:"); - - Group dragWidgetGroup = new Group(shell, SWT.NONE); - dragWidgetGroup.setText("Widget"); - createDragWidget(dragWidgetGroup); - - Group dragOperationsGroup = new Group(shell, SWT.NONE); - dragOperationsGroup.setText("Allowed Operation(s):"); - createDragOperations(dragOperationsGroup); - - Group dragTypesGroup = new Group(shell, SWT.NONE); - dragTypesGroup.setText("Transfer Type(s):"); - createDragTypes(dragTypesGroup); - - dragConsole = new Text(shell, SWT.READ_ONLY | SWT.BORDER |SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI); - Menu menu = new Menu (shell, SWT.POP_UP); - MenuItem item = new MenuItem (menu, SWT.PUSH); - item.setText ("Clear"); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - dragConsole.setText(""); - } - }); - item = new MenuItem (menu, SWT.CHECK); - item.setText ("Show Event detail"); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - MenuItem item = (MenuItem)e.widget; - dragEventDetail = item.getSelection(); - } - }); - dragConsole.setMenu(menu); - - Label dropLabel = new Label(shell, SWT.LEFT); - dropLabel.setText("Drop Target:"); - - Group dropWidgetGroup = new Group(shell, SWT.NONE); - dropWidgetGroup.setText("Widget"); - createDropWidget(dropWidgetGroup); - - Group dropOperationsGroup = new Group(shell, SWT.NONE); - dropOperationsGroup.setText("Allowed Operation(s):"); - createDropOperations(dropOperationsGroup); - - Group dropTypesGroup = new Group(shell, SWT.NONE); - dropTypesGroup.setText("Transfer Type(s):"); - createDropTypes(dropTypesGroup); - - dropConsole = new Text(shell, SWT.READ_ONLY | SWT.BORDER |SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI); - menu = new Menu (shell, SWT.POP_UP); - item = new MenuItem (menu, SWT.PUSH); - item.setText ("Clear"); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - dropConsole.setText(""); - } - }); - item = new MenuItem (menu, SWT.CHECK); - item.setText ("Show Event detail"); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - MenuItem item = (MenuItem)e.widget; - dropEventDetail = item.getSelection(); - } - }); - dropConsole.setMenu(menu); - - int height = 300; - FormData data = new FormData(); - data.top = new FormAttachment(0, 10); - data.left = new FormAttachment(0, 10); - dragLabel.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(dragLabel, 10); - data.left = new FormAttachment(0, 10); - data.right = new FormAttachment(50, -10); - data.height = height; - dragWidgetGroup.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(dragWidgetGroup, 10); - data.left = new FormAttachment(0, 10); - data.right = new FormAttachment(50, -10); - //data.bottom = new FormAttachment(dropTypesGroup, -10); - dragOperationsGroup.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(dragOperationsGroup, 10); - data.left = new FormAttachment(0, 10); - data.right = new FormAttachment(50, -10); - dragTypesGroup.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(dragTypesGroup, 10); - data.bottom = new FormAttachment(100, -10); - data.left = new FormAttachment(0, 10); - data.right = new FormAttachment(50, -10); - dragConsole.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(0, 10); - data.left = new FormAttachment(dragTypesGroup, 10); - dropLabel.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(dropLabel, 10); - data.left = new FormAttachment(dragTypesGroup, 10); - data.right = new FormAttachment(100, -10); - data.height = height; - dropWidgetGroup.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(dropWidgetGroup, 10); - data.left = new FormAttachment(dragTypesGroup, 10); - data.right = new FormAttachment(100, -10); - dropOperationsGroup.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(dropOperationsGroup, 10); - data.left = new FormAttachment(dragTypesGroup, 10); - data.right = new FormAttachment(100, -10); - //data.bottom = new FormAttachment(dragConsole, -10); - dropTypesGroup.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(dropTypesGroup, 10); - data.bottom = new FormAttachment(100, -10); - data.left = new FormAttachment(50, 10); - data.right = new FormAttachment(100, -10); - dropConsole.setLayoutData(data); - - shell.setSize(1000, 900); - shell.open(); - - while (!shell.isDisposed()) { - if (!display.readAndDispatch()) - display.sleep(); - } -} - -private void printEvent(DragSourceEvent e) { - if (!dragEventDetail) return; - StringBuffer sb = new StringBuffer(); - sb.append("widget: "); sb.append(e.widget); - sb.append(", time: "); sb.append(e.time); - sb.append(", operation: "); sb.append(e.detail); - sb.append(", type: "); sb.append(e.dataType != null ? e.dataType.type : 0); - sb.append(", doit: "); sb.append(e.doit); - sb.append(", data: "); sb.append(e.data); - sb.append("\n"); - dragConsole.append(sb.toString()); -} - -private void printEvent(DropTargetEvent e) { - if (!dropEventDetail) return; - StringBuffer sb = new StringBuffer(); - sb.append("widget; "); sb.append(e.widget); - sb.append(", time: "); sb.append(e.time); - sb.append(", x: "); sb.append(e.x); - sb.append(", y: "); sb.append(e.y); - sb.append(", item: "); sb.append(e.item); - sb.append(", operations: "); sb.append(e.operations); - sb.append(", operation: "); sb.append(e.detail); - sb.append(", feedback: "); sb.append(e.feedback); - if (e.dataTypes != null) { - for (int i = 0; i < e.dataTypes.length; i++) { - sb.append(", dataType "); sb.append(i); sb.append(": "); sb.append(e.dataTypes[i].type); - } - } else { - sb.append(", dataTypes: none"); - } - sb.append(", currentDataType: "); sb.append(e.currentDataType); - sb.append(", data: "); sb.append(e.data); - sb.append("\n"); - dropConsole.append(sb.toString()); -} - -private void removeDragTransfer(Transfer transfer){ - if (dragTypes.length == 1) { - dragTypes = new Transfer[0]; - } else { - int index = -1; - for(int i = 0; i < dragTypes.length; i++) { - if (dragTypes[i] == transfer) { - index = i; - break; - } - } - if (index == -1) return; - Transfer[] newTypes = new Transfer[dragTypes.length - 1]; - System.arraycopy(dragTypes, 0, newTypes, 0, index); - System.arraycopy(dragTypes, index + 1, newTypes, index, dragTypes.length - index - 1); - dragTypes = newTypes; - } - if (dragSource != null) { - dragSource.setTransfer(dragTypes); - } -} - -private void removeDropTransfer(Transfer transfer){ - if (dropTypes.length == 1) { - dropTypes = new Transfer[0]; - } else { - int index = -1; - for(int i = 0; i < dropTypes.length; i++) { - if (dropTypes[i] == transfer) { - index = i; - break; - } - } - if (index == -1) return; - Transfer[] newTypes = new Transfer[dropTypes.length - 1]; - System.arraycopy(dropTypes, 0, newTypes, 0, index); - System.arraycopy(dropTypes, index + 1, newTypes, index, dropTypes.length - index - 1); - dropTypes = newTypes; - } - if (dropTarget != null) { - dropTarget.setTransfer(dropTypes); - } -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java deleted file mode 100644 index 301b0fd6d5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.dnd; - - -/** - * Transfer type to transfer SWT ImageData objects. - */ - -import java.io.*; -import org.eclipse.swt.dnd.*; -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; - -public class ImageTransfer extends ByteArrayTransfer { - - private static final String TYPENAME = "imagedata"; - private static final int TYPEID = registerType(TYPENAME); - private static ImageTransfer _instance = new ImageTransfer(); - -public static ImageTransfer getInstance () { - return _instance; -} - -public void javaToNative (Object object, TransferData transferData) { - if (object == null || !(object instanceof ImageData)) return; - if (!isSupportedType(transferData)) return; - - ImageData imdata = (ImageData)object; - try { - // write data to a byte array and then ask super to convert to pMedium - ByteArrayOutputStream out = new ByteArrayOutputStream(); - DataOutputStream writeOut = new DataOutputStream(out); - ImageLoader loader = new ImageLoader(); - loader.data = new ImageData [] {imdata}; - loader.save(writeOut, SWT.IMAGE_BMP); - writeOut.close(); - byte[] buffer = out.toByteArray(); - super.javaToNative(buffer, transferData); - out.close(); - } - catch (IOException e) { - } -} -public Object nativeToJava(TransferData transferData){ - if (!isSupportedType(transferData)) return null; - - byte[] buffer = (byte[])super.nativeToJava(transferData); - if (buffer == null) return null; - - ImageData imdata; - try { - ByteArrayInputStream in = new ByteArrayInputStream(buffer); - DataInputStream readIn = new DataInputStream(in); - imdata = new ImageData(readIn); - readIn.close(); - } catch (IOException ex) { - return null; - } - return imdata; -} -protected String[] getTypeNames(){ - return new String[]{TYPENAME}; -} -protected int[] getTypeIds(){ - return new int[] {TYPEID}; -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java deleted file mode 100755 index 9e0d57e252..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java +++ /dev/null @@ -1,1717 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.fileviewer; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.dnd.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.program.*; -import org.eclipse.swt.widgets.*; - -import java.io.*; -import java.text.*; -import java.util.*; - -/** - * File Viewer example - */ -public class FileViewer { - private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_fileviewer"); - - private final static String DRIVE_A = "a:" + File.separator; - private final static String DRIVE_B = "b:" + File.separator; - - /* UI elements */ - private Display display; - private Shell shell; - private ToolBar toolBar; - - private Label numObjectsLabel; - private Label diskSpaceLabel; - - private File currentDirectory = null; - private boolean initial = true; - - /* Drag and drop optimizations */ - private boolean isDragging = false; // if this app is dragging - private boolean isDropping = false; // if this app is dropping - - private File[] processedDropFiles = null; // so Drag only deletes what it needs to - private File[] deferredRefreshFiles = null; // to defer notifyRefreshFiles while we do DND - private boolean deferredRefreshRequested = false; // to defer notifyRefreshFiles while we do DND - private ProgressDialog progressDialog = null; // progress dialog for locally-initiated operations - - /* Combo view */ - private static final String COMBODATA_ROOTS = "Combo.roots"; - // File[]: Array of files whose paths are currently displayed in the combo - private static final String COMBODATA_LASTTEXT = "Combo.lastText"; - // String: Previous selection text string - - private Combo combo; - - /* Tree view */ - private IconCache iconCache = new IconCache(); - private static final String TREEITEMDATA_FILE = "TreeItem.file"; - // File: File associated with tree item - private static final String TREEITEMDATA_IMAGEEXPANDED = "TreeItem.imageExpanded"; - // Image: shown when item is expanded - private static final String TREEITEMDATA_IMAGECOLLAPSED = "TreeItem.imageCollapsed"; - // Image: shown when item is collapsed - private static final String TREEITEMDATA_STUB = "TreeItem.stub"; - // Object: if not present or null then the item has not been populated - - private Tree tree; - private Label treeScopeLabel; - - /* Table view */ - private static final DateFormat dateFormat = DateFormat.getDateTimeInstance( - DateFormat.MEDIUM, DateFormat.MEDIUM); - private static final String TABLEITEMDATA_FILE = "TableItem.file"; - // File: File associated with table row - private static final String TABLEDATA_DIR = "Table.dir"; - // File: Currently visible directory - private static final int[] tableWidths = new int[] {150, 60, 75, 150}; - private final String[] tableTitles = new String [] { - FileViewer.getResourceString("table.Name.title"), - FileViewer.getResourceString("table.Size.title"), - FileViewer.getResourceString("table.Type.title"), - FileViewer.getResourceString("table.Modified.title") - }; - private Table table; - private Label tableContentsOfLabel; - - /* Table update worker */ - // Control data - private final Object workerLock = new Object(); - // Lock for all worker control data and state - private volatile Thread workerThread = null; - // The worker's thread - private volatile boolean workerStopped = false; - // True if the worker must exit on completion of the current cycle - private volatile boolean workerCancelled = false; - // True if the worker must cancel its operations prematurely perhaps due to a state update - - // Worker state information -- this is what gets synchronized by an update - private volatile File workerStateDir = null; - - // State information to use for the next cycle - private volatile File workerNextDir = null; - - /* Simulate only flag */ - // when true, disables actual filesystem manipulations and outputs results to standard out - private boolean simulateOnly = true; - - /** - * Runs main program. - */ - public static void main (String [] args) { - Display display = new Display (); - FileViewer application = new FileViewer(); - Shell shell = application.open(display); - while (! shell.isDisposed()) { - if (! display.readAndDispatch()) display.sleep(); - } - application.close(); - display.dispose(); - } - - /** - * Opens the main program. - */ - public Shell open(Display display) { - // Create the window - this.display = display; - iconCache.initResources(display); - shell = new Shell(); - createShellContents(); - notifyRefreshFiles(null); - shell.open(); - return shell; - } - - /** - * Closes the main program. - */ - void close() { - workerStop(); - iconCache.freeResources(); - } - - /** - * Returns a string from the resource bundle. - * We don't want to crash because of a missing String. - * Returns the key if not found. - */ - static String getResourceString(String key) { - try { - return resourceBundle.getString(key); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } - - /** - * Returns a string from the resource bundle and binds it - * with the given arguments. If the key is not found, - * return the key. - */ - static String getResourceString(String key, Object[] args) { - try { - return MessageFormat.format(getResourceString(key), args); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } - - /** - * Construct the UI - * - * @param container the ShellContainer managing the Shell we are rendering inside - */ - private void createShellContents() { - shell.setText(getResourceString("Title", new Object[] { "" })); - shell.setImage(iconCache.stockImages[iconCache.shellIcon]); - Menu bar = new Menu(shell, SWT.BAR); - shell.setMenuBar(bar); - createFileMenu(bar); - createHelpMenu(bar); - - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 3; - gridLayout.marginHeight = gridLayout.marginWidth = 0; - shell.setLayout(gridLayout); - - GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - gridData.widthHint = 185; - createComboView(shell, gridData); - gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - gridData.horizontalSpan = 2; - createToolBar(shell, gridData); - - SashForm sashForm = new SashForm(shell, SWT.NONE); - sashForm.setOrientation(SWT.HORIZONTAL); - gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL); - gridData.horizontalSpan = 3; - sashForm.setLayoutData(gridData); - createTreeView(sashForm); - createTableView(sashForm); - sashForm.setWeights(new int[] { 2, 5 }); - - numObjectsLabel = new Label(shell, SWT.BORDER); - gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL); - gridData.widthHint = 185; - numObjectsLabel.setLayoutData(gridData); - - diskSpaceLabel = new Label(shell, SWT.BORDER); - gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL); - gridData.horizontalSpan = 2; - diskSpaceLabel.setLayoutData(gridData); - } - - /** - * Creates the File Menu. - * - * @param parent the parent menu - */ - private void createFileMenu(Menu parent) { - Menu menu = new Menu(parent); - MenuItem header = new MenuItem(parent, SWT.CASCADE); - header.setText(getResourceString("menu.File.text")); - header.setMenu(menu); - - final MenuItem simulateItem = new MenuItem(menu, SWT.CHECK); - simulateItem.setText(getResourceString("menu.File.SimulateOnly.text")); - simulateItem.setSelection(simulateOnly); - simulateItem.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - simulateOnly = simulateItem.getSelection(); - } - }); - - MenuItem item = new MenuItem(menu, SWT.PUSH); - item.setText(getResourceString("menu.File.Close.text")); - item.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - shell.close(); - } - }); - } - - /** - * Creates the Help Menu. - * - * @param parent the parent menu - */ - private void createHelpMenu(Menu parent) { - Menu menu = new Menu(parent); - MenuItem header = new MenuItem(parent, SWT.CASCADE); - header.setText(getResourceString("menu.Help.text")); - header.setMenu(menu); - - MenuItem item = new MenuItem(menu, SWT.PUSH); - item.setText(getResourceString("menu.Help.About.text")); - item.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK); - box.setText(getResourceString("dialog.About.title")); - box.setMessage(getResourceString("dialog.About.description", - new Object[] { System.getProperty("os.name") })); - box.open(); - } - }); - } - - /** - * Creates the toolbar - * - * @param shell the shell on which to attach the toolbar - * @param layoutData the layout data - */ - private void createToolBar(final Shell shell, Object layoutData) { - toolBar = new ToolBar(shell, SWT.NULL); - toolBar.setLayoutData(layoutData); - ToolItem item = new ToolItem(toolBar, SWT.SEPARATOR); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdParent]); - item.setToolTipText(getResourceString("tool.Parent.tiptext")); - item.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - doParent(); - } - }); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdRefresh]); - item.setToolTipText(getResourceString("tool.Refresh.tiptext")); - item.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - doRefresh(); - } - }); - SelectionAdapter unimplementedListener = new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK); - box.setText(getResourceString("dialog.NotImplemented.title")); - box.setMessage(getResourceString("dialog.ActionNotImplemented.description")); - box.open(); - } - }; - - item = new ToolItem(toolBar, SWT.SEPARATOR); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdCut]); - item.setToolTipText(getResourceString("tool.Cut.tiptext")); - item.addSelectionListener(unimplementedListener); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdCopy]); - item.setToolTipText(getResourceString("tool.Copy.tiptext")); - item.addSelectionListener(unimplementedListener); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdPaste]); - item.setToolTipText(getResourceString("tool.Paste.tiptext")); - item.addSelectionListener(unimplementedListener); - - item = new ToolItem(toolBar, SWT.SEPARATOR); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdDelete]); - item.setToolTipText(getResourceString("tool.Delete.tiptext")); - item.addSelectionListener(unimplementedListener); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdRename]); - item.setToolTipText(getResourceString("tool.Rename.tiptext")); - item.addSelectionListener(unimplementedListener); - - item = new ToolItem(toolBar, SWT.SEPARATOR); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdSearch]); - item.setToolTipText(getResourceString("tool.Search.tiptext")); - item.addSelectionListener(unimplementedListener); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(iconCache.stockImages[iconCache.cmdPrint]); - item.setToolTipText(getResourceString("tool.Print.tiptext")); - item.addSelectionListener(unimplementedListener); - } - - /** - * Creates the combo box view. - * - * @param parent the parent control - */ - private void createComboView(Composite parent, Object layoutData) { - combo = new Combo(parent, SWT.NONE); - combo.setLayoutData(layoutData); - combo.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - final File[] roots = (File[]) combo.getData(COMBODATA_ROOTS); - if (roots == null) return; - int selection = combo.getSelectionIndex(); - if (selection >= 0 && selection < roots.length) { - notifySelectedDirectory(roots[selection]); - } - } - public void widgetDefaultSelected(SelectionEvent e) { - final String lastText = (String) combo.getData(COMBODATA_LASTTEXT); - String text = combo.getText(); - if (text == null) return; - if (lastText != null && lastText.equals(text)) return; - combo.setData(COMBODATA_LASTTEXT, text); - notifySelectedDirectory(new File(text)); - } - }); - } - - /** - * Creates the file tree view. - * - * @param parent the parent control - */ - private void createTreeView(Composite parent) { - Composite composite = new Composite(parent, SWT.NONE); - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 1; - gridLayout.marginHeight = gridLayout.marginWidth = 2; - gridLayout.horizontalSpacing = gridLayout.verticalSpacing = 0; - composite.setLayout(gridLayout); - - treeScopeLabel = new Label(composite, SWT.BORDER); - treeScopeLabel.setText(FileViewer.getResourceString("details.AllFolders.text")); - treeScopeLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL)); - - tree = new Tree(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE); - tree.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL)); - - tree.addSelectionListener(new SelectionListener() { - public void widgetSelected(SelectionEvent event) { - final TreeItem[] selection = tree.getSelection(); - if (selection != null && selection.length != 0) { - TreeItem item = selection[0]; - File file = (File) item.getData(TREEITEMDATA_FILE); - - notifySelectedDirectory(file); - } - } - public void widgetDefaultSelected(SelectionEvent event) { - final TreeItem[] selection = tree.getSelection(); - if (selection != null && selection.length != 0) { - TreeItem item = selection[0]; - item.setExpanded(true); - treeExpandItem(item); - } - } - }); - tree.addTreeListener(new TreeAdapter() { - public void treeExpanded(TreeEvent event) { - final TreeItem item = (TreeItem) event.item; - final Image image = (Image) item.getData(TREEITEMDATA_IMAGEEXPANDED); - if (image != null) item.setImage(image); - treeExpandItem(item); - } - public void treeCollapsed(TreeEvent event) { - final TreeItem item = (TreeItem) event.item; - final Image image = (Image) item.getData(TREEITEMDATA_IMAGECOLLAPSED); - if (image != null) item.setImage(image); - } - }); - createTreeDragSource(tree); - createTreeDropTarget(tree); - } - - /** - * Creates the Drag & Drop DragSource for items being dragged from the tree. - * - * @return the DragSource for the tree - */ - private DragSource createTreeDragSource(final Tree tree){ - DragSource dragSource = new DragSource(tree, DND.DROP_MOVE | DND.DROP_COPY); - dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() }); - dragSource.addDragListener(new DragSourceListener() { - TreeItem[] dndSelection = null; - String[] sourceNames = null; - public void dragStart(DragSourceEvent event){ - dndSelection = tree.getSelection(); - sourceNames = null; - event.doit = dndSelection.length > 0; - isDragging = true; - processedDropFiles = null; - } - public void dragFinished(DragSourceEvent event){ - dragSourceHandleDragFinished(event, sourceNames); - dndSelection = null; - sourceNames = null; - isDragging = false; - processedDropFiles = null; - handleDeferredRefresh(); - } - public void dragSetData(DragSourceEvent event){ - if (dndSelection == null || dndSelection.length == 0) return; - if (! FileTransfer.getInstance().isSupportedType(event.dataType)) return; - - sourceNames = new String[dndSelection.length]; - for (int i = 0; i < dndSelection.length; i++) { - File file = (File) dndSelection[i].getData(TREEITEMDATA_FILE); - sourceNames[i] = file.getAbsolutePath(); - } - event.data = sourceNames; - } - }); - return dragSource; - } - - /** - * Creates the Drag & Drop DropTarget for items being dropped onto the tree. - * - * @return the DropTarget for the tree - */ - private DropTarget createTreeDropTarget(final Tree tree) { - DropTarget dropTarget = new DropTarget(tree, DND.DROP_MOVE | DND.DROP_COPY); - dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() }); - dropTarget.addDropListener(new DropTargetAdapter() { - public void dragEnter(DropTargetEvent event) { - isDropping = true; - } - public void dragLeave(DropTargetEvent event) { - isDropping = false; - handleDeferredRefresh(); - } - public void dragOver(DropTargetEvent event) { - dropTargetValidate(event, getTargetFile(event)); - event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; - } - public void drop(DropTargetEvent event) { - File targetFile = getTargetFile(event); - if (dropTargetValidate(event, targetFile)) - dropTargetHandleDrop(event, targetFile); - } - private File getTargetFile(DropTargetEvent event) { - // Determine the target File for the drop - TreeItem item = tree.getItem(tree.toControl(new Point(event.x, event.y))); - File targetFile = null; - if (item != null) { - // We are over a particular item in the tree, use the item's file - targetFile = (File) item.getData(TREEITEMDATA_FILE); - } - return targetFile; - } - }); - return dropTarget; - } - - /** - * Handles expand events on a tree item. - * - * @param item the TreeItem to fill in - */ - private void treeExpandItem(TreeItem item) { - shell.setCursor(iconCache.stockCursors[iconCache.cursorWait]); - final Object stub = item.getData(TREEITEMDATA_STUB); - if (stub == null) treeRefreshItem(item, true); - shell.setCursor(iconCache.stockCursors[iconCache.cursorDefault]); - } - - /** - * Traverse the entire tree and update only what has changed. - * - * @param roots the root directory listing - */ - private void treeRefresh(File[] masterFiles) { - TreeItem[] items = tree.getItems(); - int masterIndex = 0; - int itemIndex = 0; - for (int i = 0; i < items.length; ++i) { - final TreeItem item = items[i]; - final File itemFile = (File) item.getData(TREEITEMDATA_FILE); - if ((itemFile == null) || (masterIndex == masterFiles.length)) { - // remove bad item or placeholder - item.dispose(); - continue; - } - final File masterFile = masterFiles[masterIndex]; - int compare = compareFiles(masterFile, itemFile); - if (compare == 0) { - // same file, update it - treeRefreshItem(item, false); - ++itemIndex; - ++masterIndex; - } else if (compare < 0) { - // should appear before file, insert it - TreeItem newItem = new TreeItem(tree, SWT.NULL, itemIndex); - treeInitVolume(newItem, masterFile); - new TreeItem(newItem, SWT.NULL); // placeholder child item to get "expand" button - ++itemIndex; - ++masterIndex; - --i; - } else { - // should appear after file, delete stale item - item.dispose(); - } - } - for (;masterIndex < masterFiles.length; ++masterIndex) { - final File masterFile = masterFiles[masterIndex]; - TreeItem newItem = new TreeItem(tree, SWT.NULL); - treeInitVolume(newItem, masterFile); - new TreeItem(newItem, SWT.NULL); // placeholder child item to get "expand" button - } - } - - /** - * Traverse an item in the tree and update only what has changed. - * - * @param dirItem the tree item of the directory - * @param forcePopulate true iff we should populate non-expanded items as well - */ - private void treeRefreshItem(TreeItem dirItem, boolean forcePopulate) { - final File dir = (File) dirItem.getData(TREEITEMDATA_FILE); - - if (! forcePopulate && ! dirItem.getExpanded()) { - // Refresh non-expanded item - if (dirItem.getData(TREEITEMDATA_STUB) != null) { - treeItemRemoveAll(dirItem); - new TreeItem(dirItem, SWT.NULL); // placeholder child item to get "expand" button - dirItem.setData(TREEITEMDATA_STUB, null); - } - return; - } - // Refresh expanded item - dirItem.setData(TREEITEMDATA_STUB, this); // clear stub flag - - /* Get directory listing */ - File[] subFiles = (dir != null) ? FileViewer.getDirectoryList(dir) : null; - if (subFiles == null || subFiles.length == 0) { - /* Error or no contents */ - treeItemRemoveAll(dirItem); - dirItem.setExpanded(false); - return; - } - - /* Refresh sub-items */ - TreeItem[] items = dirItem.getItems(); - final File[] masterFiles = subFiles; - int masterIndex = 0; - int itemIndex = 0; - File masterFile = null; - for (int i = 0; i < items.length; ++i) { - while ((masterFile == null) && (masterIndex < masterFiles.length)) { - masterFile = masterFiles[masterIndex++]; - if (! masterFile.isDirectory()) masterFile = null; - } - - final TreeItem item = items[i]; - final File itemFile = (File) item.getData(TREEITEMDATA_FILE); - if ((itemFile == null) || (masterFile == null)) { - // remove bad item or placeholder - item.dispose(); - continue; - } - int compare = compareFiles(masterFile, itemFile); - if (compare == 0) { - // same file, update it - treeRefreshItem(item, false); - masterFile = null; - ++itemIndex; - } else if (compare < 0) { - // should appear before file, insert it - TreeItem newItem = new TreeItem(dirItem, SWT.NULL, itemIndex); - treeInitFolder(newItem, masterFile); - new TreeItem(newItem, SWT.NULL); // add a placeholder child item so we get the "expand" button - masterFile = null; - ++itemIndex; - --i; - } else { - // should appear after file, delete stale item - item.dispose(); - } - } - while ((masterFile != null) || (masterIndex < masterFiles.length)) { - if (masterFile != null) { - TreeItem newItem = new TreeItem(dirItem, SWT.NULL); - treeInitFolder(newItem, masterFile); - new TreeItem(newItem, SWT.NULL); // add a placeholder child item so we get the "expand" button - if (masterIndex == masterFiles.length) break; - } - masterFile = masterFiles[masterIndex++]; - if (! masterFile.isDirectory()) masterFile = null; - } - } - - /** - * Foreign method: removes all children of a TreeItem. - * @param treeItem the TreeItem - */ - private static void treeItemRemoveAll(TreeItem treeItem) { - final TreeItem[] children = treeItem.getItems(); - for (int i = 0; i < children.length; ++i) { - children[i].dispose(); - } - } - - /** - * Initializes a folder item. - * - * @param item the TreeItem to initialize - * @param folder the File associated with this TreeItem - */ - private void treeInitFolder(TreeItem item, File folder) { - item.setText(folder.getName()); - item.setImage(iconCache.stockImages[iconCache.iconClosedFolder]); - item.setData(TREEITEMDATA_FILE, folder); - item.setData(TREEITEMDATA_IMAGEEXPANDED, iconCache.stockImages[iconCache.iconOpenFolder]); - item.setData(TREEITEMDATA_IMAGECOLLAPSED, iconCache.stockImages[iconCache.iconClosedFolder]); - } - - /** - * Initializes a volume item. - * - * @param item the TreeItem to initialize - * @param volume the File associated with this TreeItem - */ - private void treeInitVolume(TreeItem item, File volume) { - item.setText(volume.getPath()); - item.setImage(iconCache.stockImages[iconCache.iconClosedDrive]); - item.setData(TREEITEMDATA_FILE, volume); - item.setData(TREEITEMDATA_IMAGEEXPANDED, iconCache.stockImages[iconCache.iconOpenDrive]); - item.setData(TREEITEMDATA_IMAGECOLLAPSED, iconCache.stockImages[iconCache.iconClosedDrive]); - } - - /** - * Creates the file details table. - * - * @param parent the parent control - */ - private void createTableView(Composite parent) { - Composite composite = new Composite(parent, SWT.NONE); - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 1; - gridLayout.marginHeight = gridLayout.marginWidth = 2; - gridLayout.horizontalSpacing = gridLayout.verticalSpacing = 0; - composite.setLayout(gridLayout); - tableContentsOfLabel = new Label(composite, SWT.BORDER); - tableContentsOfLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL)); - - table = new Table(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION); - table.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL)); - - for (int i = 0; i < tableTitles.length; ++i) { - TableColumn column = new TableColumn(table, SWT.NONE); - column.setText(tableTitles[i]); - column.setWidth(tableWidths[i]); - } - table.setHeaderVisible(true); - table.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - notifySelectedFiles(getSelectedFiles()); - } - public void widgetDefaultSelected(SelectionEvent event) { - doDefaultFileAction(getSelectedFiles()); - } - private File[] getSelectedFiles() { - final TableItem[] items = table.getSelection(); - final File[] files = new File[items.length]; - - for (int i = 0; i < items.length; ++i) { - files[i] = (File) items[i].getData(TABLEITEMDATA_FILE); - } - return files; - } - }); - - createTableDragSource(table); - createTableDropTarget(table); - } - - /** - * Creates the Drag & Drop DragSource for items being dragged from the table. - * - * @return the DragSource for the table - */ - private DragSource createTableDragSource(final Table table) { - DragSource dragSource = new DragSource(table, DND.DROP_MOVE | DND.DROP_COPY); - dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() }); - dragSource.addDragListener(new DragSourceListener() { - TableItem[] dndSelection = null; - String[] sourceNames = null; - public void dragStart(DragSourceEvent event){ - dndSelection = table.getSelection(); - sourceNames = null; - event.doit = dndSelection.length > 0; - isDragging = true; - } - public void dragFinished(DragSourceEvent event){ - dragSourceHandleDragFinished(event, sourceNames); - dndSelection = null; - sourceNames = null; - isDragging = false; - handleDeferredRefresh(); - } - public void dragSetData(DragSourceEvent event){ - if (dndSelection == null || dndSelection.length == 0) return; - if (! FileTransfer.getInstance().isSupportedType(event.dataType)) return; - - sourceNames = new String[dndSelection.length]; - for (int i = 0; i < dndSelection.length; i++) { - File file = (File) dndSelection[i].getData(TABLEITEMDATA_FILE); - sourceNames[i] = file.getAbsolutePath(); - } - event.data = sourceNames; - } - }); - return dragSource; - } - - /** - * Creates the Drag & Drop DropTarget for items being dropped onto the table. - * - * @return the DropTarget for the table - */ - private DropTarget createTableDropTarget(final Table table){ - DropTarget dropTarget = new DropTarget(table, DND.DROP_MOVE | DND.DROP_COPY); - dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() }); - dropTarget.addDropListener(new DropTargetAdapter() { - public void dragEnter(DropTargetEvent event) { - isDropping = true; - } - public void dragLeave(DropTargetEvent event) { - isDropping = false; - handleDeferredRefresh(); - } - public void dragOver(DropTargetEvent event) { - dropTargetValidate(event, getTargetFile(event)); - event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; - } - public void drop(DropTargetEvent event) { - File targetFile = getTargetFile(event); - if (dropTargetValidate(event, targetFile)) - dropTargetHandleDrop(event, targetFile); - } - private File getTargetFile(DropTargetEvent event) { - // Determine the target File for the drop - TableItem item = table.getItem(table.toControl(new Point(event.x, event.y))); - File targetFile = null; - if (item == null) { - // We are over an unoccupied area of the table. - // If it is a COPY, we can use the table's root file. - if (event.detail == DND.DROP_COPY) { - targetFile = (File) table.getData(TABLEDATA_DIR); - } - } else { - // We are over a particular item in the table, use the item's file - targetFile = (File) item.getData(TABLEITEMDATA_FILE); - } - return targetFile; - } - }); - return dropTarget; - } - - /** - * Notifies the application components that a new current directory has been selected - * - * @param dir the directory that was selected, null is ignored - */ - void notifySelectedDirectory(File dir) { - if (dir == null) return; - if (currentDirectory != null && dir.equals(currentDirectory)) return; - currentDirectory = dir; - notifySelectedFiles(null); - - /* Shell: - * Sets the title to indicate the selected directory - */ - shell.setText(getResourceString("Title", new Object[] { currentDirectory.getPath() })); - - /* Table view: - * Displays the contents of the selected directory. - */ - workerUpdate(dir, false); - - /* Combo view: - * Sets the combo box to point to the selected directory. - */ - final File[] comboRoots = (File[]) combo.getData(COMBODATA_ROOTS); - int comboEntry = -1; - if (comboRoots != null) { - for (int i = 0; i < comboRoots.length; ++i) { - if (dir.equals(comboRoots[i])) { - comboEntry = i; - break; - } - } - } - if (comboEntry == -1) combo.setText(dir.getPath()); - else combo.select(comboEntry); - - /* Tree view: - * If not already expanded, recursively expands the parents of the specified - * directory until it is visible. - */ - Vector /* of File */ path = new Vector(); - // Build a stack of paths from the root of the tree - while (dir != null) { - path.add(dir); - dir = dir.getParentFile(); - } - // Recursively expand the tree to get to the specified directory - TreeItem[] items = tree.getItems(); - TreeItem lastItem = null; - for (int i = path.size() - 1; i >= 0; --i) { - final File pathElement = (File) path.elementAt(i); - - // Search for a particular File in the array of tree items - // No guarantee that the items are sorted in any recognizable fashion, so we'll - // just sequential scan. There shouldn't be more than a few thousand entries. - TreeItem item = null; - for (int k = 0; k < items.length; ++k) { - item = items[k]; - if (item.isDisposed()) continue; - final File itemFile = (File) item.getData(TREEITEMDATA_FILE); - if (itemFile != null && itemFile.equals(pathElement)) break; - } - if (item == null) break; - lastItem = item; - if (i != 0 && !item.getExpanded()) { - treeExpandItem(item); - item.setExpanded(true); - } - items = item.getItems(); - } - tree.setSelection((lastItem != null) ? new TreeItem[] { lastItem } : new TreeItem[0]); - } - - /** - * Notifies the application components that files have been selected - * - * @param files the files that were selected, null or empty array indicates no active selection - */ - void notifySelectedFiles(File[] files) { - /* Details: - * Update the details that are visible on screen. - */ - if ((files != null) && (files.length != 0)) { - numObjectsLabel.setText(getResourceString("details.NumberOfSelectedFiles.text", - new Object[] { new Integer(files.length) })); - long fileSize = 0L; - for (int i = 0; i < files.length; ++i) { - fileSize += files[i].length(); - } - diskSpaceLabel.setText(getResourceString("details.FileSize.text", - new Object[] { new Long(fileSize) })); - } else { - // No files selected - diskSpaceLabel.setText(""); - if (currentDirectory != null) { - int numObjects = getDirectoryList(currentDirectory).length; - numObjectsLabel.setText(getResourceString("details.DirNumberOfObjects.text", - new Object[] { new Integer(numObjects) })); - } else { - numObjectsLabel.setText(""); - } - } - } - - /** - * Notifies the application components that files must be refreshed - * - * @param files the files that need refreshing, empty array is a no-op, null refreshes all - */ - void notifyRefreshFiles(File[] files) { - if (files != null && files.length == 0) return; - - if ((deferredRefreshRequested) && (deferredRefreshFiles != null) && (files != null)) { - // merge requests - File[] newRequest = new File[deferredRefreshFiles.length + files.length]; - System.arraycopy(deferredRefreshFiles, 0, newRequest, 0, deferredRefreshFiles.length); - System.arraycopy(files, 0, newRequest, deferredRefreshFiles.length, files.length); - deferredRefreshFiles = newRequest; - } else { - deferredRefreshFiles = files; - deferredRefreshRequested = true; - } - handleDeferredRefresh(); - } - - /** - * Handles deferred Refresh notifications (due to Drag & Drop) - */ - void handleDeferredRefresh() { - if (isDragging || isDropping || ! deferredRefreshRequested) return; - if (progressDialog != null) { - progressDialog.close(); - progressDialog = null; - } - - deferredRefreshRequested = false; - File[] files = deferredRefreshFiles; - deferredRefreshFiles = null; - - shell.setCursor(iconCache.stockCursors[iconCache.cursorWait]); - - /* Table view: - * Refreshes information about any files in the list and their children. - */ - boolean refreshTable = false; - if (files != null) { - for (int i = 0; i < files.length; ++i) { - final File file = files[i]; - if (file.equals(currentDirectory)) { - refreshTable = true; - break; - } - File parentFile = file.getParentFile(); - if ((parentFile != null) && (parentFile.equals(currentDirectory))) { - refreshTable = true; - break; - } - } - } else refreshTable = true; - if (refreshTable) workerUpdate(currentDirectory, true); - - /* Combo view: - * Refreshes the list of roots - */ - final File[] roots = getRoots(); - - if (files == null) { - boolean refreshCombo = false; - final File[] comboRoots = (File[]) combo.getData(COMBODATA_ROOTS); - - if ((comboRoots != null) && (comboRoots.length == roots.length)) { - for (int i = 0; i < roots.length; ++i) { - if (! roots[i].equals(comboRoots[i])) { - refreshCombo = true; - break; - } - } - } else refreshCombo = true; - - if (refreshCombo) { - combo.removeAll(); - combo.setData(COMBODATA_ROOTS, roots); - for (int i = 0; i < roots.length; ++i) { - final File file = roots[i]; - combo.add(file.getPath()); - } - } - } - - /* Tree view: - * Refreshes information about any files in the list and their children. - */ - treeRefresh(roots); - - // Remind everyone where we are in the filesystem - final File dir = currentDirectory; - currentDirectory = null; - notifySelectedDirectory(dir); - - shell.setCursor(iconCache.stockCursors[iconCache.cursorDefault]); - } - - /** - * Performs the default action on a set of files. - * - * @param files the array of files to process - */ - void doDefaultFileAction(File[] files) { - // only uses the 1st file (for now) - if (files.length == 0) return; - final File file = files[0]; - - if (file.isDirectory()) { - notifySelectedDirectory(file); - } else { - final String fileName = file.getAbsolutePath(); - if (! Program.launch(fileName)) { - MessageBox dialog = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK); - dialog.setMessage(getResourceString("error.FailedLaunch.message", new Object[] { fileName })); - dialog.setText(shell.getText ()); - dialog.open(); - } - } - } - - /** - * Navigates to the parent directory - */ - void doParent() { - if (currentDirectory == null) return; - File parentDirectory = currentDirectory.getParentFile(); - notifySelectedDirectory(parentDirectory); - } - - /** - * Performs a refresh - */ - void doRefresh() { - notifyRefreshFiles(null); - } - - /** - * Validates a drop target as a candidate for a drop operation. - * <p> - * Used in dragOver() and dropAccept().<br> - * Note event.detail is set to DND.DROP_NONE by this method if the target is not valid. - * </p> - * @param event the DropTargetEvent to validate - * @param targetFile the File representing the drop target location - * under inspection, or null if none - */ - private boolean dropTargetValidate(DropTargetEvent event, File targetFile) { - if (targetFile != null && targetFile.isDirectory()) { - if (event.detail != DND.DROP_COPY && event.detail != DND.DROP_MOVE) { - event.detail = DND.DROP_MOVE; - } - } else { - event.detail = DND.DROP_NONE; - } - return event.detail != DND.DROP_NONE; - } - - /** - * Handles a drop on a dropTarget. - * <p> - * Used in drop().<br> - * Note event.detail is modified by this method. - * </p> - * @param event the DropTargetEvent passed as parameter to the drop() method - * @param targetFile the File representing the drop target location - * under inspection, or null if none - */ - private void dropTargetHandleDrop(DropTargetEvent event, File targetFile) { - // Get dropped data (an array of filenames) - if (! dropTargetValidate(event, targetFile)) return; - final String[] sourceNames = (String[]) event.data; - if (sourceNames == null) event.detail = DND.DROP_NONE; - if (event.detail == DND.DROP_NONE) return; - - // Open progress dialog - progressDialog = new ProgressDialog(shell, - (event.detail == DND.DROP_MOVE) ? ProgressDialog.MOVE : ProgressDialog.COPY); - progressDialog.setTotalWorkUnits(sourceNames.length); - progressDialog.open(); - - // Copy each file - Vector /* of File */ processedFiles = new Vector(); - for (int i = 0; (i < sourceNames.length) && (! progressDialog.isCancelled()); i++){ - final File source = new File(sourceNames[i]); - final File dest = new File(targetFile, source.getName()); - if (source.equals(dest)) continue; // ignore if in same location - - progressDialog.setDetailFile(source, ProgressDialog.COPY); - while (! progressDialog.isCancelled()) { - if (copyFileStructure(source, dest)) { - processedFiles.add(source); - break; - } else if (! progressDialog.isCancelled()) { - if (event.detail == DND.DROP_MOVE && (!isDragging)) { - // It is not possible to notify an external drag source that a drop - // operation was only partially successful. This is particularly a - // problem for DROP_MOVE operations since unless the source gets - // DROP_NONE, it will delete the original data including bits that - // may not have been transferred successfully. - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.RETRY | SWT.CANCEL); - box.setText(getResourceString("dialog.FailedCopy.title")); - box.setMessage(getResourceString("dialog.FailedCopy.description", - new Object[] { source, dest })); - int button = box.open(); - if (button == SWT.CANCEL) { - i = sourceNames.length; - event.detail = DND.DROP_NONE; - break; - } - } else { - // We can recover gracefully from errors if the drag source belongs - // to this application since it will look at processedDropFiles. - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.ABORT | SWT.RETRY | SWT.IGNORE); - box.setText(getResourceString("dialog.FailedCopy.title")); - box.setMessage(getResourceString("dialog.FailedCopy.description", - new Object[] { source, dest })); - int button = box.open(); - if (button == SWT.ABORT) i = sourceNames.length; - if (button != SWT.RETRY) break; - } - } - progressDialog.addProgress(1); - } - } - if (isDragging) { - // Remember exactly which files we processed - processedDropFiles = ((File[]) processedFiles.toArray(new File[processedFiles.size()])); - } else { - progressDialog.close(); - progressDialog = null; - } - notifyRefreshFiles(new File[] { targetFile }); - } - - /** - * Handles the completion of a drag on a dragSource. - * <p> - * Used in dragFinished().<br> - * </p> - * @param event the DragSourceEvent passed as parameter to the dragFinished() method - * @param sourceNames the names of the files that were dragged (event.data is invalid) - */ - private void dragSourceHandleDragFinished(DragSourceEvent event, String[] sourceNames) { - if (sourceNames == null) return; - if (event.detail != DND.DROP_MOVE) return; - - // Get array of files that were actually transferred - final File[] sourceFiles; - if (processedDropFiles != null) { - sourceFiles = processedDropFiles; - } else { - sourceFiles = new File[sourceNames.length]; - for (int i = 0; i < sourceNames.length; ++i) - sourceFiles[i] = new File(sourceNames[i]); - } - if (progressDialog == null) - progressDialog = new ProgressDialog(shell, ProgressDialog.MOVE); - progressDialog.setTotalWorkUnits(sourceFiles.length); - progressDialog.setProgress(0); - progressDialog.open(); - - // Delete each file - for (int i = 0; (i < sourceFiles.length) && (! progressDialog.isCancelled()); i++){ - final File source = sourceFiles[i]; - progressDialog.setDetailFile(source, ProgressDialog.DELETE); - while (! progressDialog.isCancelled()) { - if (deleteFileStructure(source)) { - break; - } else if (! progressDialog.isCancelled()) { - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.ABORT | SWT.RETRY | SWT.IGNORE); - box.setText(getResourceString("dialog.FailedDelete.title")); - box.setMessage(getResourceString("dialog.FailedDelete.description", - new Object[] { source })); - int button = box.open(); - if (button == SWT.ABORT) i = sourceNames.length; - if (button == SWT.RETRY) break; - } - } - progressDialog.addProgress(1); - } - notifyRefreshFiles(sourceFiles); - progressDialog.close(); - progressDialog = null; - } - - /** - * Gets filesystem root entries - * - * @return an array of Files corresponding to the root directories on the platform, - * may be empty but not null - */ - File[] getRoots() { - /* - * On JDK 1.22 only... - */ - // return File.listRoots(); - - /* - * On JDK 1.1.7 and beyond... - * -- PORTABILITY ISSUES HERE -- - */ - if (System.getProperty ("os.name").indexOf ("Windows") != -1) { - Vector /* of File */ list = new Vector(); - list.add(new File(DRIVE_A)); - list.add(new File(DRIVE_B)); - for (char i = 'c'; i <= 'z'; ++i) { - File drive = new File(i + ":" + File.separator); - if (drive.isDirectory() && drive.exists()) { - list.add(drive); - if (initial && i == 'c') { - currentDirectory = drive; - initial = false; - } - } - } - File[] roots = (File[]) list.toArray(new File[list.size()]); - sortFiles(roots); - return roots; - } else { - File root = new File(File.separator); - if (initial) { - currentDirectory = root; - } - return new File[] { root }; - } - } - - /** - * Gets a directory listing - * - * @param file the directory to be listed - * @return an array of files this directory contains, may be empty but not null - */ - static File[] getDirectoryList(File file) { - File[] list = file.listFiles(); - if (list == null) return new File[0]; - sortFiles(list); - return list; - } - - /** - * Copies a file or entire directory structure. - * - * @param oldFile the location of the old file or directory - * @param newFile the location of the new file or directory - * @return true iff the operation succeeds without errors - */ - boolean copyFileStructure(File oldFile, File newFile) { - if (oldFile == null || newFile == null) return false; - - // ensure that newFile is not a child of oldFile or a dupe - File searchFile = newFile; - do { - if (oldFile.equals(searchFile)) return false; - searchFile = searchFile.getParentFile(); - } while (searchFile != null); - - if (oldFile.isDirectory()) { - /* - * Copy a directory - */ - if (progressDialog != null) { - progressDialog.setDetailFile(oldFile, ProgressDialog.COPY); - } - if (simulateOnly) { - //System.out.println(getResourceString("simulate.DirectoriesCreated.text", - // new Object[] { newFile.getPath() })); - } else { - if (! newFile.mkdirs()) return false; - } - File[] subFiles = oldFile.listFiles(); - if (subFiles != null) { - if (progressDialog != null) { - progressDialog.addWorkUnits(subFiles.length); - } - for (int i = 0; i < subFiles.length; i++) { - File oldSubFile = subFiles[i]; - File newSubFile = new File(newFile, oldSubFile.getName()); - if (! copyFileStructure(oldSubFile, newSubFile)) return false; - if (progressDialog != null) { - progressDialog.addProgress(1); - if (progressDialog.isCancelled()) return false; - } - } - } - } else { - /* - * Copy a file - */ - if (simulateOnly) { - //System.out.println(getResourceString("simulate.CopyFromTo.text", - // new Object[] { oldFile.getPath(), newFile.getPath() })); - } else { - FileReader in = null; - FileWriter out = null; - try { - in = new FileReader(oldFile); - out = new FileWriter(newFile); - - int count; - while ((count = in.read()) != -1) out.write(count); - } catch (FileNotFoundException e) { - return false; - } catch (IOException e) { - return false; - } finally { - try { - if (in != null) in.close(); - if (out != null) out.close(); - } catch (IOException e) { - return false; - } - } - } - } - return true; - } - - /** - * Deletes a file or entire directory structure. - * - * @param oldFile the location of the old file or directory - * @return true iff the operation succeeds without errors - */ - boolean deleteFileStructure(File oldFile) { - if (oldFile == null) return false; - if (oldFile.isDirectory()) { - /* - * Delete a directory - */ - if (progressDialog != null) { - progressDialog.setDetailFile(oldFile, ProgressDialog.DELETE); - } - File[] subFiles = oldFile.listFiles(); - if (subFiles != null) { - if (progressDialog != null) { - progressDialog.addWorkUnits(subFiles.length); - } - for (int i = 0; i < subFiles.length; i++) { - File oldSubFile = subFiles[i]; - if (! deleteFileStructure(oldSubFile)) return false; - if (progressDialog != null) { - progressDialog.addProgress(1); - if (progressDialog.isCancelled()) return false; - } - } - } - } - if (simulateOnly) { - //System.out.println(getResourceString("simulate.Delete.text", - // new Object[] { oldFile.getPath(), oldFile.getPath() })); - return true; - } else { - return oldFile.delete(); - } - } - - /** - * Sorts files lexicographically by name. - * - * @param files the array of Files to be sorted - */ - static void sortFiles(File[] files) { - /* Very lazy merge sort algorithm */ - sortBlock(files, 0, files.length - 1, new File[files.length]); - } - private static void sortBlock(File[] files, int start, int end, File[] mergeTemp) { - final int length = end - start + 1; - if (length < 8) { - for (int i = end; i > start; --i) { - for (int j = end; j > start; --j) { - if (compareFiles(files[j - 1], files[j]) > 0) { - final File temp = files[j]; - files[j] = files[j-1]; - files[j-1] = temp; - } - } - } - return; - } - final int mid = (start + end) / 2; - sortBlock(files, start, mid, mergeTemp); - sortBlock(files, mid + 1, end, mergeTemp); - int x = start; - int y = mid + 1; - for (int i = 0; i < length; ++i) { - if ((x > mid) || ((y <= end) && compareFiles(files[x], files[y]) > 0)) { - mergeTemp[i] = files[y++]; - } else { - mergeTemp[i] = files[x++]; - } - } - for (int i = 0; i < length; ++i) files[i + start] = mergeTemp[i]; - } - private static int compareFiles(File a, File b) { -// boolean aIsDir = a.isDirectory(); -// boolean bIsDir = b.isDirectory(); -// if (aIsDir && ! bIsDir) return -1; -// if (bIsDir && ! aIsDir) return 1; - - // sort case-sensitive files in a case-insensitive manner - int compare = a.getName().compareToIgnoreCase(b.getName()); - if (compare == 0) compare = a.getName().compareTo(b.getName()); - return compare; - } - - /* - * This worker updates the table with file information in the background. - * <p> - * Implementation notes: - * <ul> - * <li> It is designed such that it can be interrupted cleanly. - * <li> It uses asyncExec() in some places to ensure that SWT Widgets are manipulated in the - * right thread. Exclusive use of syncExec() would be inappropriate as it would require a pair - * of context switches between each table update operation. - * </ul> - * </p> - */ - - /** - * Stops the worker and waits for it to terminate. - */ - void workerStop() { - if (workerThread == null) return; - synchronized(workerLock) { - workerCancelled = true; - workerStopped = true; - workerLock.notifyAll(); - } - while (workerThread != null) { - if (! display.readAndDispatch()) display.sleep(); - } - } - - /** - * Notifies the worker that it should update itself with new data. - * Cancels any previous operation and begins a new one. - * - * @param dir the new base directory for the table, null is ignored - * @param force if true causes a refresh even if the data is the same - */ - void workerUpdate(File dir, boolean force) { - if (dir == null) return; - if ((!force) && (workerNextDir != null) && (workerNextDir.equals(dir))) return; - - synchronized(workerLock) { - workerNextDir = dir; - workerStopped = false; - workerCancelled = true; - workerLock.notifyAll(); - } - if (workerThread == null) { - workerThread = new Thread(workerRunnable); - workerThread.start(); - } - } - - /** - * Manages the worker's thread - */ - private final Runnable workerRunnable = new Runnable() { - public void run() { - while (! workerStopped) { - synchronized(workerLock) { - workerCancelled = false; - workerStateDir = workerNextDir; - } - workerExecute(); - synchronized(workerLock) { - try { - if ((!workerCancelled) && (workerStateDir == workerNextDir)) workerLock.wait(); - } catch (InterruptedException e) { - } - } - } - workerThread = null; - // wake up UI thread in case it is in a modal loop awaiting thread termination - // (see workerStop()) - display.wake(); - } - }; - - /** - * Updates the table's contents - */ - private void workerExecute() { - File[] dirList; - // Clear existing information - display.syncExec(new Runnable() { - public void run() { - tableContentsOfLabel.setText(FileViewer.getResourceString("details.ContentsOf.text", - new Object[] { workerStateDir.getPath() })); - table.removeAll(); - table.setData(TABLEDATA_DIR, workerStateDir); - } - }); - dirList = getDirectoryList(workerStateDir); - - for (int i = 0; (! workerCancelled) && (i < dirList.length); i++) { - workerAddFileDetails(dirList[i]); - } - - } - - /** - * Adds a file's detail information to the directory list - */ - private void workerAddFileDetails(final File file) { - final String nameString = file.getName(); - final String dateString = dateFormat.format(new Date(file.lastModified())); - final String sizeString; - final String typeString; - final Image iconImage; - - if (file.isDirectory()) { - typeString = getResourceString("filetype.Folder"); - sizeString = ""; - iconImage = iconCache.stockImages[iconCache.iconClosedFolder]; - } else { - sizeString = getResourceString("filesize.KB", - new Object[] { new Long((file.length() + 512) / 1024) }); - - int dot = nameString.lastIndexOf('.'); - if (dot != -1) { - String extension = nameString.substring(dot); - Program program = Program.findProgram(extension); - if (program != null) { - typeString = program.getName(); - iconImage = iconCache.getIconFromProgram(program); - } else { - typeString = getResourceString("filetype.Unknown", new Object[] { extension.toUpperCase() }); - iconImage = iconCache.stockImages[iconCache.iconFile]; - } - } else { - typeString = getResourceString("filetype.None"); - iconImage = iconCache.stockImages[iconCache.iconFile]; - } - } - final String[] strings = new String[] { nameString, sizeString, typeString, dateString }; - - display.syncExec(new Runnable() { - public void run () { - // guard against the shell being closed before this runs - if (shell.isDisposed()) return; - TableItem tableItem = new TableItem(table, 0); - tableItem.setText(strings); - tableItem.setImage(iconImage); - tableItem.setData(TABLEITEMDATA_FILE, file); - } - }); - } - - /** - * Instances of this class manage a progress dialog for file operations. - */ - class ProgressDialog { - public final static int COPY = 0; - public final static int DELETE = 1; - public final static int MOVE = 2; - - Shell shell; - Label messageLabel, detailLabel; - ProgressBar progressBar; - Button cancelButton; - boolean isCancelled = false; - - final String operationKeyName[] = { - "Copy", - "Delete", - "Move" - }; - - /** - * Creates a progress dialog but does not open it immediately. - * - * @param parent the parent Shell - * @param style one of COPY, MOVE - */ - public ProgressDialog(Shell parent, int style) { - shell = new Shell(parent, SWT.BORDER | SWT.TITLE | SWT.APPLICATION_MODAL); - GridLayout gridLayout = new GridLayout(); - shell.setLayout(gridLayout); - shell.setText(getResourceString("progressDialog." + operationKeyName[style] + ".title")); - shell.addShellListener(new ShellAdapter() { - public void shellClosed(ShellEvent e) { - isCancelled = true; - } - }); - - messageLabel = new Label(shell, SWT.HORIZONTAL); - messageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL)); - messageLabel.setText(getResourceString("progressDialog." + operationKeyName[style] + ".description")); - - progressBar = new ProgressBar(shell, SWT.HORIZONTAL | SWT.WRAP); - progressBar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL)); - progressBar.setMinimum(0); - progressBar.setMaximum(0); - - detailLabel = new Label(shell, SWT.HORIZONTAL); - GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING); - gridData.widthHint = 400; - detailLabel.setLayoutData(gridData); - - cancelButton = new Button(shell, SWT.PUSH); - cancelButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_FILL)); - cancelButton.setText(getResourceString("progressDialog.cancelButton.text")); - cancelButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - isCancelled = true; - cancelButton.setEnabled(false); - } - }); - } - /** - * Sets the detail text to show the filename along with a string - * representing the operation being performed on that file. - * - * @param file the file to be detailed - * @param operation one of COPY, DELETE - */ - public void setDetailFile(File file, int operation) { - detailLabel.setText(getResourceString("progressDialog." + operationKeyName[operation] + ".operation", - new Object[] { file })); - } - /** - * Returns true if the Cancel button was been clicked. - * - * @return true if the Cancel button was clicked. - */ - public boolean isCancelled() { - return isCancelled; - } - /** - * Sets the total number of work units to be performed. - * - * @param work the total number of work units - */ - public void setTotalWorkUnits(int work) { - progressBar.setMaximum(work); - } - /** - * Adds to the total number of work units to be performed. - * - * @param work the number of work units to add - */ - public void addWorkUnits(int work) { - setTotalWorkUnits(progressBar.getMaximum() + work); - } - /** - * Sets the progress of completion of the total work units. - * - * @param work the total number of work units completed - */ - public void setProgress(int work) { - progressBar.setSelection(work); - while (display.readAndDispatch()); // enable event processing - } - /** - * Adds to the progress of completion of the total work units. - * - * @param work the number of work units completed to add - */ - public void addProgress(int work) { - setProgress(progressBar.getSelection() + work); - } - /** - * Opens the dialog. - */ - public void open() { - shell.pack(); - final Shell parentShell = (Shell) shell.getParent(); - Rectangle rect = parentShell.getBounds(); - Rectangle bounds = shell.getBounds(); - bounds.x = rect.x + (rect.width - bounds.width) / 2; - bounds.y = rect.y + (rect.height - bounds.height) / 2; - shell.setBounds(bounds); - shell.open(); - } - /** - * Closes the dialog and disposes its resources. - */ - public void close() { - shell.close(); - shell.dispose(); - shell = null; - messageLabel = null; - detailLabel = null; - progressBar = null; - cancelButton = null; - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java deleted file mode 100755 index 5f27107868..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.fileviewer; - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.program.*; -import org.eclipse.swt.widgets.*; - -import java.io.*; -import java.util.*; - -/** - * Manages icons for the application. - * This is necessary as we could easily end up creating thousands of icons - * bearing the same image. - */ -class IconCache { - // Stock images - public final int - shellIcon = 0, - iconClosedDrive = 1, - iconClosedFolder = 2, - iconFile = 3, - iconOpenDrive = 4, - iconOpenFolder = 5, - cmdCopy = 6, - cmdCut = 7, - cmdDelete = 8, - cmdParent = 9, - cmdPaste = 10, - cmdPrint = 11, - cmdRefresh = 12, - cmdRename = 13, - cmdSearch = 14; - public final String[] stockImageLocations = { - "generic_example.gif", - "icon_ClosedDrive.gif", - "icon_ClosedFolder.gif", - "icon_File.gif", - "icon_OpenDrive.gif", - "icon_OpenFolder.gif", - "cmd_Copy.gif", - "cmd_Cut.gif", - "cmd_Delete.gif", - "cmd_Parent.gif", - "cmd_Paste.gif", - "cmd_Print.gif", - "cmd_Refresh.gif", - "cmd_Rename.gif", - "cmd_Search.gif" - }; - public Image stockImages[]; - - // Stock cursors - public final int - cursorDefault = 0, - cursorWait = 1; - public Cursor stockCursors[]; - // Cached icons - private Hashtable iconCache; /* map Program to Image */ - - public IconCache() { - } - /** - * Loads the resources - * - * @param display the display - */ - public void initResources(Display display) { - if (stockImages == null) { - stockImages = new Image[stockImageLocations.length]; - - for (int i = 0; i < stockImageLocations.length; ++i) { - Image image = createStockImage(display, stockImageLocations[i]); - if (image == null) { - freeResources(); - throw new IllegalStateException( - FileViewer.getResourceString("error.CouldNotLoadResources")); - } - stockImages[i] = image; - } - } - if (stockCursors == null) { - stockCursors = new Cursor[] { - null, - new Cursor(display, SWT.CURSOR_WAIT) - }; - } - iconCache = new Hashtable(); - } - /** - * Frees the resources - */ - public void freeResources() { - if (stockImages != null) { - for (int i = 0; i < stockImages.length; ++i) { - final Image image = stockImages[i]; - if (image != null) image.dispose(); - } - stockImages = null; - } - if (iconCache != null) { - for (Enumeration it = iconCache.elements(); it.hasMoreElements(); ) { - Image image = (Image) it.nextElement(); - image.dispose(); - } - } - } - /** - * Creates a stock image - * - * @param display the display - * @param path the relative path to the icon - */ - private Image createStockImage(Display display, String path) { - try { - InputStream stream = IconCache.class.getResourceAsStream(path); - if (stream != null) { - ImageData imageData = new ImageData(stream); - if (imageData != null) { - ImageData mask = imageData.getTransparencyMask(); - return new Image(display, imageData, mask); - } - } - } catch (Exception e) { - } - return null; - } - /** - * Gets an image for a file associated with a given program - * - * @param program the Program - */ - public Image getIconFromProgram(Program program) { - Image image = (Image) iconCache.get(program); - if (image == null) { - ImageData imageData = program.getImageData(); - if (imageData != null) { - image = new Image(null, imageData, imageData.getTransparencyMask()); - iconCache.put(program, image); - } else { - image = stockImages[iconFile]; - } - } - return image; - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif Binary files differdeleted file mode 100755 index 4274b070ac..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif Binary files differdeleted file mode 100755 index eb948b94b0..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif Binary files differdeleted file mode 100755 index 6f647666d3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif Binary files differdeleted file mode 100755 index 9b278e6fa8..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif Binary files differdeleted file mode 100755 index 75e0ab2352..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif Binary files differdeleted file mode 100755 index 4dfa8cd3fa..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif Binary files differdeleted file mode 100755 index a063c230ac..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif Binary files differdeleted file mode 100755 index 25b1325e52..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif Binary files differdeleted file mode 100755 index 6dc3ebefc9..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif Binary files differdeleted file mode 100755 index f9fb6b0cab..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif Binary files differdeleted file mode 100755 index 04e530e37c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif Binary files differdeleted file mode 100755 index beb6ed134c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif Binary files differdeleted file mode 100755 index 6b86d07978..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif Binary files differdeleted file mode 100755 index 7b2b6334ca..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif Binary files differdeleted file mode 100755 index a9c777343c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java deleted file mode 100755 index b383bd2323..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.helloworld; - - -import org.eclipse.swt.widgets.*; - -/* - * This example demonstrates the minimum amount of code required - * to open an SWT Shell and process the events. - */ -public class HelloWorld1 { - -public static void main (String [] args) { - Display display = new Display (); - Shell shell = new HelloWorld1 ().open (display); - while (!shell.isDisposed ()) { - if (!display.readAndDispatch ()) display.sleep (); - } - display.dispose (); -} - -public Shell open (Display display) { - Shell shell = new Shell (display); - shell.open (); - return shell; -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java deleted file mode 100755 index c5061e4c07..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.helloworld; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import java.util.ResourceBundle; - -/* - * This example builds on HelloWorld1 and demonstrates the minimum amount - * of code required to open an SWT Shell with a Label and process the events. - */ -public class HelloWorld2 { - private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld"); - -public static void main (String [] args) { - Display display = new Display (); - Shell shell = new HelloWorld2 ().open (display); - while (!shell.isDisposed ()) { - if (!display.readAndDispatch ()) display.sleep (); - } - display.dispose (); -} - -public Shell open (Display display) { - Shell shell = new Shell (display); - Label label = new Label (shell, SWT.CENTER); - label.setText (resHello.getString("Hello_world")); - label.setBounds (shell.getClientArea ()); - shell.open (); - return shell; -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java deleted file mode 100755 index ce391a085e..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.helloworld; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; -import java.util.ResourceBundle; - -/* - * This example builds on HelloWorld2 and demonstrates how to resize the - * Label when the Shell resizes using a Listener mechanism. - */ -public class HelloWorld3 { - private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld"); - -public static void main (String [] args) { - Display display = new Display (); - Shell shell = new HelloWorld3 ().open (display); - while (!shell.isDisposed ()) { - if (!display.readAndDispatch ()) display.sleep (); - } - display.dispose (); -} - -public Shell open (Display display) { - final Shell shell = new Shell (display); - final Label label = new Label (shell, SWT.CENTER); - label.setText (resHello.getString("Hello_world")); - label.pack(); - shell.addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent e) { - label.setBounds (shell.getClientArea ()); - } - }); - shell.pack(); - shell.open (); - return shell; -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java deleted file mode 100755 index 24cb8af5b9..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.helloworld; - - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import java.util.ResourceBundle; - -/* - * This example builds on HelloWorld2 and demonstrates how to resize the - * Label when the Shell resizes using a Layout. - */ -public class HelloWorld4 { - private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld"); - -public static void main (String [] args) { - Display display = new Display (); - Shell shell = new HelloWorld4 ().open (display); - while (!shell.isDisposed ()) { - if (!display.readAndDispatch ()) display.sleep (); - } - display.dispose (); -} - -public Shell open (Display display) { - Shell shell = new Shell (display); - shell.setLayout(new FillLayout()); - Label label = new Label (shell, SWT.CENTER); - label.setText (resHello.getString("Hello_world")); - shell.pack (); - shell.open (); - return shell; -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java deleted file mode 100755 index c58eb73c57..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.helloworld; - - - -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import java.util.ResourceBundle; - -/* - * This example builds on HelloWorld1 and demonstrates how to draw directly - * on an SWT Control. - */ -public class HelloWorld5 { - private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld"); - -public static void main (String [] args) { - Display display = new Display (); - Shell shell = new HelloWorld5 ().open (display); - while (!shell.isDisposed ()) { - if (!display.readAndDispatch ()) display.sleep (); - } - display.dispose (); -} - -public Shell open (Display display) { - final Color red = new Color(display, 0xFF, 0, 0); - final Shell shell = new Shell (display); - shell.addPaintListener(new PaintListener () { - public void paintControl(PaintEvent event){ - GC gc = event.gc; - gc.setForeground(red); - Rectangle rect = shell.getClientArea(); - gc.drawRectangle(rect.x + 10, rect.y + 10, rect.width - 20, rect.height - 20); - gc.drawString(resHello.getString("Hello_world"), rect.x + 20, rect.y + 20); - } - }); - shell.addDisposeListener (new DisposeListener () { - public void widgetDisposed (DisposeEvent e) { - red.dispose(); - } - }); - shell.open (); - return shell; -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java deleted file mode 100755 index e1dc2c15e1..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java +++ /dev/null @@ -1,350 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.hoverhelp; - - -import java.io.*; -import java.text.*; -import java.util.*; - -import org.eclipse.swt.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -/** - * This example demonstrates how to implement hover help feedback - * using the MouseTrackListener. - */ -public class HoverHelp { - private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_hoverhelp");; - - static final int - hhiInformation = 0, - hhiWarning = 1; - static final String[] imageLocations = { - "information.gif", - "warning.gif" - }; - Image images[]; - - /** - * Runs main program. - */ - public static void main (String [] args) { - Display display = new Display(); - Shell shell = new HoverHelp().open(display); - // Event loop - while (shell != null && ! shell.isDisposed()) { - if (! display.readAndDispatch()) display.sleep(); - } - // Cleanup - display.dispose(); - - } - - /** - * Opens the main program. - */ - public Shell open(Display display) { - // Load the images - Class clazz = HoverHelp.class; - try { - if (images == null) { - images = new Image[imageLocations.length]; - - for (int i = 0; i < imageLocations.length; ++i) { - InputStream stream = clazz.getResourceAsStream(imageLocations[i]); - ImageData source = new ImageData(stream); - ImageData mask = source.getTransparencyMask(); - images[i] = new Image(display, source, mask); - } - } - } catch (Exception ex) { - System.err.println(getResourceString("error.CouldNotLoadResources", - new Object[] { ex.getMessage() })); - return null; - } - - // Create the window - Shell shell = new Shell(); - createPartControl(shell); - shell.addDisposeListener(new DisposeListener() { - public void widgetDisposed(DisposeEvent e) { - /* Free resources */ - if (images != null) { - for (int i = 0; i < images.length; i++) { - final Image image = images[i]; - if (image != null) image.dispose(); - } - images = null; - } - } - }); - shell.pack(); - shell.open(); - return shell; - } - - /** - * Gets a string from the resource bundle. - * We don't want to crash because of a missing String. - * Returns the key if not found. - */ - public String getResourceString(String key) { - try { - return resourceBundle.getString(key); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } - - /** - * Gets a string from the resource bundle and binds it - * with the given arguments. If the key is not found, - * return the key. - */ - public String getResourceString(String key, Object[] args) { - try { - return MessageFormat.format(getResourceString(key), args); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } - - /** - * Creates the example - */ - public void createPartControl(Composite frame) { - final ToolTipHandler tooltip = new ToolTipHandler(frame.getShell()); - - GridLayout layout = new GridLayout(); - layout.numColumns = 3; - frame.setLayout(layout); - - ToolBar bar = new ToolBar (frame, SWT.BORDER); - for (int i=0; i<5; i++) { - ToolItem item = new ToolItem (bar, SWT.PUSH); - item.setText (getResourceString("ToolItem.text", new Object[] { new Integer(i) })); - item.setData ("TIP_TEXT", getResourceString("ToolItem.tooltip", - new Object[] { item.getText() })); - item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() { - public String getHelpText(Widget widget) { - Item item = (Item) widget; - return getResourceString("ToolItem.help", new Object[] { item.getText() }); - } - }); - } - GridData gridData = new GridData(); - gridData.horizontalSpan = 3; - bar.setLayoutData(gridData); - tooltip.activateHoverHelp(bar); - - Table table = new Table (frame, SWT.BORDER); - for (int i=0; i<4; i++) { - TableItem item = new TableItem (table, SWT.PUSH); - item.setText (getResourceString("Item", new Object[] { new Integer(i) })); - item.setData ("TIP_IMAGE", images[hhiInformation]); - item.setText (getResourceString("TableItem.text", new Object[] { new Integer(i) })); - item.setData ("TIP_TEXT", getResourceString("TableItem.tooltip", - new Object[] { item.getText() })); - item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() { - public String getHelpText(Widget widget) { - Item item = (Item) widget; - return getResourceString("TableItem.help", new Object[] { item.getText() }); - } - }); - } - table.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL)); - tooltip.activateHoverHelp(table); - - Tree tree = new Tree (frame, SWT.BORDER); - for (int i=0; i<4; i++) { - TreeItem item = new TreeItem (tree, SWT.PUSH); - item.setText (getResourceString("Item", new Object[] { new Integer(i) })); - item.setData ("TIP_IMAGE", images[hhiWarning]); - item.setText (getResourceString("TreeItem.text", new Object[] { new Integer(i) })); - item.setData ("TIP_TEXT", getResourceString("TreeItem.tooltip", - new Object[] { item.getText() })); - item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() { - public String getHelpText(Widget widget) { - Item item = (Item) widget; - return getResourceString("TreeItem.help", new Object[] { item.getText() }); - } - }); - } - tree.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL)); - tooltip.activateHoverHelp(tree); - - Button button = new Button (frame, SWT.PUSH); - button.setText (getResourceString("Hello.text")); - button.setData ("TIP_TEXT", getResourceString("Hello.tooltip")); - tooltip.activateHoverHelp(button); - } - - /** - * Emulated tooltip handler - * Notice that we could display anything in a tooltip besides text and images. - * For instance, it might make sense to embed large tables of data or buttons linking - * data under inspection to material elsewhere, or perform dynamic lookup for creating - * tooltip text on the fly. - */ - protected static class ToolTipHandler { - private Shell parentShell; - private Shell tipShell; - private Label tipLabelImage, tipLabelText; - private Widget tipWidget; // widget this tooltip is hovering over - private Point tipPosition; // the position being hovered over - - /** - * Creates a new tooltip handler - * - * @param parent the parent Shell - */ - public ToolTipHandler(Shell parent) { - final Display display = parent.getDisplay(); - this.parentShell = parent; - - tipShell = new Shell(parent, SWT.ON_TOP); - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 2; - gridLayout.marginWidth = 2; - gridLayout.marginHeight = 2; - tipShell.setLayout(gridLayout); - - tipShell.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); - - tipLabelImage = new Label(tipShell, SWT.NONE); - tipLabelImage.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND)); - tipLabelImage.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); - tipLabelImage.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | - GridData.VERTICAL_ALIGN_CENTER)); - - tipLabelText = new Label(tipShell, SWT.NONE); - tipLabelText.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND)); - tipLabelText.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); - tipLabelText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | - GridData.VERTICAL_ALIGN_CENTER)); - } - - /** - * Enables customized hover help for a specified control - * - * @control the control on which to enable hoverhelp - */ - public void activateHoverHelp(final Control control) { - /* - * Get out of the way if we attempt to activate the control underneath the tooltip - */ - control.addMouseListener(new MouseAdapter () { - public void mouseDown (MouseEvent e) { - if (tipShell.isVisible()) tipShell.setVisible(false); - } - }); - - /* - * Trap hover events to pop-up tooltip - */ - control.addMouseTrackListener(new MouseTrackAdapter () { - public void mouseExit(MouseEvent e) { - if (tipShell.isVisible()) tipShell.setVisible(false); - tipWidget = null; - } - public void mouseHover (MouseEvent event) { - Point pt = new Point (event.x, event.y); - Widget widget = event.widget; - if (widget instanceof ToolBar) { - ToolBar w = (ToolBar) widget; - widget = w.getItem (pt); - } - if (widget instanceof Table) { - Table w = (Table) widget; - widget = w.getItem (pt); - } - if (widget instanceof Tree) { - Tree w = (Tree) widget; - widget = w.getItem (pt); - } - if (widget == null) { - tipShell.setVisible(false); - tipWidget = null; - return; - } - if (widget == tipWidget) return; - tipWidget = widget; - tipPosition = control.toDisplay(pt); - String text = (String) widget.getData("TIP_TEXT"); - Image image = (Image) widget.getData("TIP_IMAGE"); - tipLabelText.setText(text != null ? text : ""); - tipLabelImage.setImage(image); // accepts null - tipShell.pack(); - setHoverLocation(tipShell, tipPosition); - tipShell.setVisible(true); - } - }); - - /* - * Trap F1 Help to pop up a custom help box - */ - control.addHelpListener(new HelpListener () { - public void helpRequested(HelpEvent event) { - if (tipWidget == null) return; - ToolTipHelpTextHandler handler = (ToolTipHelpTextHandler) - tipWidget.getData("TIP_HELPTEXTHANDLER"); - if (handler == null) return; - String text = handler.getHelpText(tipWidget); - if (text == null) return; - - if (tipShell.isVisible()) { - tipShell.setVisible(false); - Shell helpShell = new Shell(parentShell, SWT.SHELL_TRIM); - helpShell.setLayout(new FillLayout()); - Label label = new Label(helpShell, SWT.NONE); - label.setText(text); - helpShell.pack(); - setHoverLocation(helpShell, tipPosition); - helpShell.open(); - } - } - }); - } - - /** - * Sets the location for a hovering shell - * @param shell the object that is to hover - * @param position the position of a widget to hover over - * @return the top-left location for a hovering box - */ - private void setHoverLocation(Shell shell, Point position) { - Rectangle displayBounds = shell.getDisplay().getBounds(); - Rectangle shellBounds = shell.getBounds(); - shellBounds.x = Math.max(Math.min(position.x, displayBounds.width - shellBounds.width), 0); - shellBounds.y = Math.max(Math.min(position.y + 16, displayBounds.height - shellBounds.height), 0); - shell.setBounds(shellBounds); - } - } - - /** - * ToolTip help handler - */ - protected interface ToolTipHelpTextHandler { - /** - * Get help text - * @param widget the widget that is under help - * @return a help text string - */ - public String getHelpText(Widget widget); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif Binary files differdeleted file mode 100755 index 26c7477336..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif Binary files differdeleted file mode 100755 index cf4fdf93c7..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java deleted file mode 100755 index 7b7f400061..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java +++ /dev/null @@ -1,2080 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.imageanalyzer; - - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.printing.*; -import org.eclipse.swt.custom.*; -import java.util.*; -import java.net.*; -import java.io.*; -import java.text.MessageFormat; - -public class ImageAnalyzer { - static ResourceBundle bundle = ResourceBundle.getBundle("examples_images"); - Display display; - Shell shell; - Canvas imageCanvas, paletteCanvas; - Label typeLabel, sizeLabel, depthLabel, transparentPixelLabel, - timeToLoadLabel, screenSizeLabel, backgroundPixelLabel, - locationLabel, disposalMethodLabel, delayTimeLabel, - repeatCountLabel, paletteLabel, dataLabel, statusLabel; - Combo backgroundCombo, scaleXCombo, scaleYCombo, alphaCombo; - Button incrementalCheck, transparentCheck, maskCheck, backgroundCheck; - Button previousButton, nextButton, animateButton; - StyledText dataText; - Sash sash; - Color whiteColor, blackColor, redColor, greenColor, blueColor, canvasBackground; - Font fixedWidthFont; - Cursor crossCursor; - GC imageCanvasGC; - - int paletteWidth = 140; // recalculated and used as a width hint - int ix = 0, iy = 0, py = 0; // used to scroll the image and palette - float xscale = 1, yscale = 1; // used to scale the image - int alpha = 255; // used to modify the alpha value of the image - boolean incremental = false; // used to incrementally display an image - boolean transparent = true; // used to display an image with transparency - boolean showMask = false; // used to display an icon mask or transparent image mask - boolean showBackground = false; // used to display the background of an animated image - boolean animate = false; // used to animate a multi-image file - Thread animateThread; // draws animated images - Thread incrementalThread; // draws incremental images - String lastPath; // used to seed the file dialog - String currentName; // the current image file or URL name - String fileName; // the current image file - ImageLoader loader; // the loader for the current image file - ImageData[] imageDataArray; // all image data read from the current file - int imageDataIndex; // the index of the current image data - ImageData imageData; // the currently-displayed image data - Image image; // the currently-displayed image - Vector incrementalEvents; // incremental image events - long loadTime = 0; // the time it took to load the current image - - static final int INDEX_DIGITS = 4; - static final int ALPHA_CONSTANT = 0; - static final int ALPHA_X = 1; - static final int ALPHA_Y = 2; - - class TextPrompter extends Dialog { - String message = ""; - String result = null; - Shell dialog; - Text text; - public TextPrompter (Shell parent, int style) { - super (parent, style); - } - public TextPrompter (Shell parent) { - this (parent, SWT.APPLICATION_MODAL); - } - public String getMessage () { - return message; - } - public void setMessage (String string) { - message = string; - } - public String open () { - dialog = new Shell(getParent(), getStyle()); - dialog.setText(getText()); - dialog.setLayout(new GridLayout()); - Label label = new Label(dialog, SWT.NULL); - label.setText(message); - label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - text = new Text(dialog, SWT.SINGLE | SWT.BORDER); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.widthHint = 300; - text.setLayoutData(data); - Composite buttons = new Composite(dialog, SWT.NONE); - GridLayout grid = new GridLayout(); - grid.numColumns = 2; - buttons.setLayout(grid); - buttons.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); - Button ok = new Button(buttons, SWT.PUSH); - ok.setText(bundle.getString("OK")); - data = new GridData(); - data.widthHint = 75; - ok.setLayoutData(data); - ok.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - result = text.getText(); - dialog.dispose(); - } - }); - Button cancel = new Button(buttons, SWT.PUSH); - cancel.setText(bundle.getString("Cancel")); - data = new GridData(); - data.widthHint = 75; - cancel.setLayoutData(data); - cancel.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - dialog.dispose(); - } - }); - dialog.setDefaultButton(ok); - dialog.pack(); - dialog.open(); - while (!dialog.isDisposed()) { - if (!display.readAndDispatch()) display.sleep(); - } - return result; - } - } - - public static void main(String [] args) { - Display display = new Display(); - ImageAnalyzer imageAnalyzer = new ImageAnalyzer(); - Shell shell = imageAnalyzer.open(display); - - while (!shell.isDisposed()) - if (!display.readAndDispatch()) display.sleep(); - display.dispose(); - } - - public Shell open(Display dpy) { - // Create a window and set its title. - this.display = dpy; - shell = new Shell(display); - shell.setText(bundle.getString("Image_analyzer")); - - // Hook resize and dispose listeners. - shell.addControlListener(new ControlAdapter() { - public void controlResized(ControlEvent event) { - resizeShell(event); - } - }); - shell.addShellListener(new ShellAdapter() { - public void shellClosed(ShellEvent e) { - animate = false; // stop any animation in progress - if (animateThread != null) { - // wait for the thread to die before disposing the shell. - while (animateThread.isAlive()) { - if (!display.readAndDispatch()) display.sleep(); - } - } - e.doit = true; - } - }); - shell.addDisposeListener(new DisposeListener() { - public void widgetDisposed(DisposeEvent e) { - // Clean up. - if (image != null) - image.dispose(); - whiteColor.dispose(); - blackColor.dispose(); - redColor.dispose(); - greenColor.dispose(); - blueColor.dispose(); - fixedWidthFont.dispose(); - crossCursor.dispose(); - } - }); - - // Create colors and fonts. - whiteColor = new Color(display, 255, 255, 255); - blackColor = new Color(display, 0, 0, 0); - redColor = new Color(display, 255, 0, 0); - greenColor = new Color(display, 0, 255, 0); - blueColor = new Color(display, 0, 0, 255); - fixedWidthFont = new Font(display, "courier", 10, 0); - crossCursor = new Cursor(display, SWT.CURSOR_CROSS); - - // Add a menu bar and widgets. - createMenuBar(); - createWidgets(); - shell.pack(); - - // Create a GC for drawing, and hook the listener to dispose it. - imageCanvasGC = new GC(imageCanvas); - imageCanvas.addDisposeListener(new DisposeListener() { - public void widgetDisposed(DisposeEvent e) { - imageCanvasGC.dispose(); - } - }); - - // Open the window - shell.open(); - return shell; - } - - void createWidgets() { - // Add the widgets to the shell in a grid layout. - GridLayout layout = new GridLayout(); - layout.marginHeight = 0; - layout.numColumns = 2; - shell.setLayout(layout); - - // Separate the menu bar from the rest of the widgets. - Label separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL); - GridData gridData = new GridData(); - gridData.horizontalSpan = 2; - gridData.horizontalAlignment = GridData.FILL; - separator.setLayoutData(gridData); - - // Add a composite to contain some control widgets across the top. - Composite controls = new Composite(shell, SWT.NULL); - RowLayout rowLayout = new RowLayout(); - rowLayout.marginTop = 0; - rowLayout.marginBottom = 5; - rowLayout.spacing = 8; - controls.setLayout(rowLayout); - gridData = new GridData(); - gridData.horizontalSpan = 2; - controls.setLayoutData(gridData); - - // Combo to change the background. - Group group = new Group(controls, SWT.NULL); - group.setLayout(new RowLayout()); - group.setText(bundle.getString("Background")); - backgroundCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY); - backgroundCombo.setItems(new String[] { - bundle.getString("None"), - bundle.getString("White"), - bundle.getString("Black"), - bundle.getString("Red"), - bundle.getString("Green"), - bundle.getString("Blue")}); - backgroundCombo.select(backgroundCombo.indexOf(bundle.getString("White"))); - backgroundCombo.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - changeBackground(); - } - }); - - // Combo to change the x scale. - String[] values = { - "0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1", - "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2", - "3", "4", "5", "6", "7", "8", "9", "10",}; - group = new Group(controls, SWT.NULL); - group.setLayout(new RowLayout()); - group.setText(bundle.getString("X_scale")); - scaleXCombo = new Combo(group, SWT.DROP_DOWN); - for (int i = 0; i < values.length; i++) { - scaleXCombo.add(values[i]); - } - scaleXCombo.select(scaleXCombo.indexOf("1")); - scaleXCombo.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - scaleX(); - } - }); - - // Combo to change the y scale. - group = new Group(controls, SWT.NULL); - group.setLayout(new RowLayout()); - group.setText(bundle.getString("Y_scale")); - scaleYCombo = new Combo(group, SWT.DROP_DOWN); - for (int i = 0; i < values.length; i++) { - scaleYCombo.add(values[i]); - } - scaleYCombo.select(scaleYCombo.indexOf("1")); - scaleYCombo.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - scaleY(); - } - }); - - // Combo to change the alpha value. - group = new Group(controls, SWT.NULL); - group.setLayout(new RowLayout()); - group.setText(bundle.getString("Alpha_K")); - alphaCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY); - for (int i = 0; i <= 255; i += 5) { - alphaCombo.add(String.valueOf(i)); - } - alphaCombo.select(alphaCombo.indexOf("255")); - alphaCombo.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - alpha(); - } - }); - - // Check box to request incremental display. - group = new Group(controls, SWT.NULL); - group.setLayout(new RowLayout()); - group.setText(bundle.getString("Display")); - incrementalCheck = new Button(group, SWT.CHECK); - incrementalCheck.setText(bundle.getString("Incremental")); - incrementalCheck.setSelection(incremental); - incrementalCheck.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - incremental = ((Button)event.widget).getSelection(); - } - }); - - // Check box to request transparent display. - transparentCheck = new Button(group, SWT.CHECK); - transparentCheck.setText(bundle.getString("Transparent")); - transparentCheck.setSelection(transparent); - transparentCheck.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - transparent = ((Button)event.widget).getSelection(); - if (image != null) { - imageCanvas.redraw(); - } - } - }); - - // Check box to request mask display. - maskCheck = new Button(group, SWT.CHECK); - maskCheck.setText(bundle.getString("Mask")); - maskCheck.setSelection(showMask); - maskCheck.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - showMask = ((Button)event.widget).getSelection(); - if (image != null) { - imageCanvas.redraw(); - } - } - }); - - // Check box to request background display. - backgroundCheck = new Button(group, SWT.CHECK); - backgroundCheck.setText(bundle.getString("Background")); - backgroundCheck.setSelection(showBackground); - backgroundCheck.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - showBackground = ((Button)event.widget).getSelection(); - } - }); - - // Group the animation buttons. - group = new Group(controls, SWT.NULL); - group.setLayout(new RowLayout()); - group.setText(bundle.getString("Animation")); - - // Push button to display the previous image in a multi-image file. - previousButton = new Button(group, SWT.PUSH); - previousButton.setText(bundle.getString("Previous")); - previousButton.setEnabled(false); - previousButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - previous(); - } - }); - - // Push button to display the next image in a multi-image file. - nextButton = new Button(group, SWT.PUSH); - nextButton.setText(bundle.getString("Next")); - nextButton.setEnabled(false); - nextButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - next(); - } - }); - - // Push button to toggle animation of a multi-image file. - animateButton = new Button(group, SWT.PUSH); - animateButton.setText(bundle.getString("Animate")); - animateButton.setEnabled(false); - animateButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - animate(); - } - }); - - // Label to show the image file type. - typeLabel = new Label(shell, SWT.NULL); - typeLabel.setText(bundle.getString("Type_initial")); - typeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Canvas to show the image. - imageCanvas = new Canvas(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.NO_REDRAW_RESIZE); - imageCanvas.setBackground(whiteColor); - imageCanvas.setCursor(crossCursor); - gridData = new GridData(); - gridData.verticalSpan = 15; - gridData.horizontalAlignment = GridData.FILL; - gridData.verticalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - imageCanvas.setLayoutData(gridData); - imageCanvas.addPaintListener(new PaintListener() { - public void paintControl(PaintEvent event) { - if (image != null) - paintImage(event); - } - }); - imageCanvas.addMouseMoveListener(new MouseMoveListener() { - public void mouseMove(MouseEvent event) { - if (image != null) { - showColorAt(event.x, event.y); - } - } - }); - - // Set up the image canvas scroll bars. - ScrollBar horizontal = imageCanvas.getHorizontalBar(); - horizontal.setVisible(true); - horizontal.setMinimum(0); - horizontal.setEnabled(false); - horizontal.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - scrollHorizontally((ScrollBar)event.widget); - } - }); - ScrollBar vertical = imageCanvas.getVerticalBar(); - vertical.setVisible(true); - vertical.setMinimum(0); - vertical.setEnabled(false); - vertical.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - scrollVertically((ScrollBar)event.widget); - } - }); - - // Label to show the image size. - sizeLabel = new Label(shell, SWT.NULL); - sizeLabel.setText(bundle.getString("Size_initial")); - sizeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the image depth. - depthLabel = new Label(shell, SWT.NULL); - depthLabel.setText(bundle.getString("Depth_initial")); - depthLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the transparent pixel. - transparentPixelLabel = new Label(shell, SWT.NULL); - transparentPixelLabel.setText(bundle.getString("Transparent_pixel_initial")); - transparentPixelLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the time to load. - timeToLoadLabel = new Label(shell, SWT.NULL); - timeToLoadLabel.setText(bundle.getString("Time_to_load_initial")); - timeToLoadLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Separate the animation fields from the rest of the fields. - separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL); - separator.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the logical screen size for animation. - screenSizeLabel = new Label(shell, SWT.NULL); - screenSizeLabel.setText(bundle.getString("Animation_size_initial")); - screenSizeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the background pixel. - backgroundPixelLabel = new Label(shell, SWT.NULL); - backgroundPixelLabel.setText(bundle.getString("Background_pixel_initial")); - backgroundPixelLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the image location (x, y). - locationLabel = new Label(shell, SWT.NULL); - locationLabel.setText(bundle.getString("Image_location_initial")); - locationLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the image disposal method. - disposalMethodLabel = new Label(shell, SWT.NULL); - disposalMethodLabel.setText(bundle.getString("Disposal_initial")); - disposalMethodLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the image delay time. - delayTimeLabel = new Label(shell, SWT.NULL); - delayTimeLabel.setText(bundle.getString("Delay_initial")); - delayTimeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show the background pixel. - repeatCountLabel = new Label(shell, SWT.NULL); - repeatCountLabel.setText(bundle.getString("Repeats_initial")); - repeatCountLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Separate the animation fields from the palette. - separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL); - separator.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Label to show if the image has a direct or indexed palette. - paletteLabel = new Label(shell, SWT.NULL); - paletteLabel.setText(bundle.getString("Palette_initial")); - paletteLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - // Canvas to show the image's palette. - paletteCanvas = new Canvas(shell, SWT.BORDER | SWT.V_SCROLL | SWT.NO_REDRAW_RESIZE); - paletteCanvas.setFont(fixedWidthFont); - paletteCanvas.getVerticalBar().setVisible(true); - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.verticalAlignment = GridData.FILL; - GC gc = new GC(paletteLabel); - paletteWidth = gc.stringExtent(bundle.getString("Max_length_string")).x; - gc.dispose(); - gridData.widthHint = paletteWidth; - gridData.heightHint = 16 * 11; // show at least 16 colors - paletteCanvas.setLayoutData(gridData); - paletteCanvas.addPaintListener(new PaintListener() { - public void paintControl(PaintEvent event) { - if (image != null) - paintPalette(event); - } - }); - - // Set up the palette canvas scroll bar. - vertical = paletteCanvas.getVerticalBar(); - vertical.setVisible(true); - vertical.setMinimum(0); - vertical.setIncrement(10); - vertical.setEnabled(false); - vertical.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - scrollPalette((ScrollBar)event.widget); - } - }); - - // Sash to see more of image or image data. - sash = new Sash(shell, SWT.HORIZONTAL); - gridData = new GridData(); - gridData.horizontalSpan = 2; - gridData.horizontalAlignment = GridData.FILL; - sash.setLayoutData(gridData); - sash.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent event) { - if (event.detail != SWT.DRAG) { - ((GridData)paletteCanvas.getLayoutData()).heightHint = SWT.DEFAULT; - Rectangle paletteCanvasBounds = paletteCanvas.getBounds(); - int minY = paletteCanvasBounds.y + 20; - Rectangle dataLabelBounds = dataLabel.getBounds(); - int maxY = statusLabel.getBounds().y - dataLabelBounds.height - 20; - if (event.y > minY && event.y < maxY) { - Rectangle oldSash = sash.getBounds(); - sash.setBounds(event.x, event.y, event.width, event.height); - int diff = event.y - oldSash.y; - Rectangle bounds = imageCanvas.getBounds(); - imageCanvas.setBounds(bounds.x, bounds.y, bounds.width, bounds.height + diff); - bounds = paletteCanvasBounds; - paletteCanvas.setBounds(bounds.x, bounds.y, bounds.width, bounds.height + diff); - bounds = dataLabelBounds; - dataLabel.setBounds(bounds.x, bounds.y + diff, bounds.width, bounds.height); - bounds = dataText.getBounds(); - dataText.setBounds(bounds.x, bounds.y + diff, bounds.width, bounds.height - diff); - //shell.layout(true); - } - } - } - }); - - // Label to show data-specific fields. - dataLabel = new Label(shell, SWT.NULL); - dataLabel.setText(bundle.getString("Pixel_data_initial")); - gridData = new GridData(); - gridData.horizontalSpan = 2; - gridData.horizontalAlignment = GridData.FILL; - dataLabel.setLayoutData(gridData); - - // Text to show a dump of the data. - dataText = new StyledText(shell, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL); - dataText.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); - dataText.setFont(fixedWidthFont); - gridData = new GridData(); - gridData.horizontalSpan = 2; - gridData.horizontalAlignment = GridData.FILL; - gridData.verticalAlignment = GridData.FILL; - gridData.heightHint = 128; - gridData.grabExcessVerticalSpace = true; - dataText.setLayoutData(gridData); - dataText.addMouseListener(new MouseAdapter() { - public void mouseDown(MouseEvent event) { - if (image != null && event.button == 1) { - showColorForData(); - } - } - }); - dataText.addKeyListener(new KeyAdapter() { - public void keyPressed(KeyEvent event) { - if (image != null) { - showColorForData(); - } - } - }); - - // Label to show status and cursor location in image. - statusLabel = new Label(shell, SWT.NULL); - statusLabel.setText(""); - gridData = new GridData(); - gridData.horizontalSpan = 2; - gridData.horizontalAlignment = GridData.FILL; - statusLabel.setLayoutData(gridData); - } - - Menu createMenuBar() { - // Menu bar. - Menu menuBar = new Menu(shell, SWT.BAR); - shell.setMenuBar(menuBar); - createFileMenu(menuBar); - createAlphaMenu(menuBar); - return menuBar; - } - - void createFileMenu(Menu menuBar) { - // File menu - MenuItem item = new MenuItem(menuBar, SWT.CASCADE); - item.setText(bundle.getString("File")); - Menu fileMenu = new Menu(shell, SWT.DROP_DOWN); - item.setMenu(fileMenu); - - // File -> Open File... - item = new MenuItem(fileMenu, SWT.PUSH); - item.setText(bundle.getString("OpenFile")); - item.setAccelerator(SWT.MOD1 + 'O'); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuOpenFile(); - } - }); - - // File -> Open URL... - item = new MenuItem(fileMenu, SWT.PUSH); - item.setText(bundle.getString("OpenURL")); - item.setAccelerator(SWT.MOD1 + 'U'); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuOpenURL(); - } - }); - - // File -> Reopen - item = new MenuItem(fileMenu, SWT.PUSH); - item.setText(bundle.getString("Reopen")); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuReopen(); - } - }); - - new MenuItem(fileMenu, SWT.SEPARATOR); - - // File -> Save - item = new MenuItem(fileMenu, SWT.PUSH); - item.setText(bundle.getString("Save")); - item.setAccelerator(SWT.MOD1 + 'S'); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuSave(); - } - }); - - // File -> Save As... - item = new MenuItem(fileMenu, SWT.PUSH); - item.setText(bundle.getString("Save_as")); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuSaveAs(); - } - }); - - // File -> Save Mask As... - item = new MenuItem(fileMenu, SWT.PUSH); - item.setText(bundle.getString("Save_mask_as")); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuSaveMaskAs(); - } - }); - - new MenuItem(fileMenu, SWT.SEPARATOR); - - // File -> Print - item = new MenuItem(fileMenu, SWT.PUSH); - item.setText(bundle.getString("Print")); - item.setAccelerator(SWT.MOD1 + 'P'); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuPrint(); - } - }); - - new MenuItem(fileMenu, SWT.SEPARATOR); - - // File -> Exit - item = new MenuItem(fileMenu, SWT.PUSH); - item.setText(bundle.getString("Exit")); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - shell.close(); - } - }); - - } - - void createAlphaMenu(Menu menuBar) { - // Alpha menu - MenuItem item = new MenuItem(menuBar, SWT.CASCADE); - item.setText(bundle.getString("Alpha")); - Menu alphaMenu = new Menu(shell, SWT.DROP_DOWN); - item.setMenu(alphaMenu); - - // Alpha -> K - item = new MenuItem(alphaMenu, SWT.PUSH); - item.setText("K"); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuComposeAlpha(ALPHA_CONSTANT); - } - }); - - // Alpha -> (K + x) % 256 - item = new MenuItem(alphaMenu, SWT.PUSH); - item.setText("(K + x) % 256"); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuComposeAlpha(ALPHA_X); - } - }); - - // Alpha -> (K + y) % 256 - item = new MenuItem(alphaMenu, SWT.PUSH); - item.setText("(K + y) % 256"); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - menuComposeAlpha(ALPHA_Y); - } - }); - } - - void menuComposeAlpha(int alpha_op) { - if (image == null) return; - animate = false; // stop any animation in progress - Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - imageCanvas.setCursor(waitCursor); - try { - if (alpha_op == ALPHA_CONSTANT) { - imageData.alpha = alpha; - } else { - imageData.alpha = -1; - switch (alpha_op) { - case ALPHA_X: - for (int y = 0; y < imageData.height; y++) { - for (int x = 0; x < imageData.width; x++) { - imageData.setAlpha(x, y, (x + alpha) % 256); - } - } - break; - case ALPHA_Y: - for (int y = 0; y < imageData.height; y++) { - for (int x = 0; x < imageData.width; x++) { - imageData.setAlpha(x, y, (y + alpha) % 256); - } - } - break; - default: break; - } - } - displayImage(imageData); - } finally { - shell.setCursor(null); - imageCanvas.setCursor(crossCursor); - waitCursor.dispose(); - } - } - - void menuOpenFile() { - animate = false; // stop any animation in progress - resetScaleCombos(); - - // Get the user to choose an image file. - FileDialog fileChooser = new FileDialog(shell, SWT.OPEN); - if (lastPath != null) - fileChooser.setFilterPath(lastPath); - fileChooser.setFilterExtensions(new String[] { "*.bmp; *.gif; *.ico; *.jpg; *.pcx; *.png; *.tif", "*.bmp", "*.gif", "*.ico", "*.jpg", "*.pcx", "*.png", "*.tif" }); - fileChooser.setFilterNames(new String[] { bundle.getString("All_images") + " (bmp, gif, ico, jpg, pcx, png, tif)", - "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PCX (*.pcx)", "PNG (*.png)", "TIFF (*.tif)" }); - String filename = fileChooser.open(); - lastPath = fileChooser.getFilterPath(); - if (filename == null) - return; - - Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - imageCanvas.setCursor(waitCursor); - try { - loader = new ImageLoader(); - if (incremental) { - // Prepare to handle incremental events. - loader.addImageLoaderListener(new ImageLoaderListener() { - public void imageDataLoaded(ImageLoaderEvent event) { - incrementalDataLoaded(event); - } - }); - incrementalThreadStart(); - } - // Read the new image(s) from the chosen file. - long startTime = System.currentTimeMillis(); - imageDataArray = loader.load(filename); - loadTime = System.currentTimeMillis() - startTime; - if (imageDataArray.length > 0) { - // Cache the filename. - currentName = filename; - fileName = filename; - - // If there are multiple images in the file (typically GIF) - // then enable the Previous, Next and Animate buttons. - previousButton.setEnabled(imageDataArray.length > 1); - nextButton.setEnabled(imageDataArray.length > 1); - animateButton.setEnabled(imageDataArray.length > 1 && loader.logicalScreenWidth > 0 && loader.logicalScreenHeight > 0); - - // Display the first image in the file. - imageDataIndex = 0; - displayImage(imageDataArray[imageDataIndex]); - resetScrollBars(); - } - } catch (SWTException e) { - showErrorDialog(bundle.getString("Loading_lc"), filename, e); - } finally { - shell.setCursor(null); - imageCanvas.setCursor(crossCursor); - waitCursor.dispose(); - } - } - - void menuOpenURL() { - animate = false; // stop any animation in progress - resetScaleCombos(); - - // Get the user to choose an image URL. - TextPrompter textPrompter = new TextPrompter(shell, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM); - textPrompter.setText(bundle.getString("OpenURLDialog")); - textPrompter.setMessage(bundle.getString("EnterURL")); - String urlname = textPrompter.open(); - if (urlname == null) return; - - Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - imageCanvas.setCursor(waitCursor); - try { - URL url = new URL(urlname); - InputStream stream = url.openStream(); - loader = new ImageLoader(); - if (incremental) { - // Prepare to handle incremental events. - loader.addImageLoaderListener(new ImageLoaderListener() { - public void imageDataLoaded(ImageLoaderEvent event) { - incrementalDataLoaded(event); - } - }); - incrementalThreadStart(); - } - // Read the new image(s) from the chosen file. - long startTime = System.currentTimeMillis(); - imageDataArray = loader.load(stream); - loadTime = System.currentTimeMillis() - startTime; - if (imageDataArray.length > 0) { - currentName = urlname; - fileName = null; - - // If there are multiple images in the file (typically GIF) - // then enable the Previous, Next and Animate buttons. - previousButton.setEnabled(imageDataArray.length > 1); - nextButton.setEnabled(imageDataArray.length > 1); - animateButton.setEnabled(imageDataArray.length > 1 && loader.logicalScreenWidth > 0 && loader.logicalScreenHeight > 0); - - // Display the first image in the file. - imageDataIndex = 0; - displayImage(imageDataArray[imageDataIndex]); - resetScrollBars(); - } - } catch (Exception e) { - showErrorDialog(bundle.getString("Loading_lc"), urlname, e); - } finally { - shell.setCursor(null); - imageCanvas.setCursor(crossCursor); - waitCursor.dispose(); - } - } - - /* - * Called to start a thread that draws incremental images - * as they are loaded. - */ - void incrementalThreadStart() { - incrementalEvents = new Vector(); - incrementalThread = new Thread("Incremental") { - public void run() { - // Draw the first ImageData increment. - while (incrementalEvents != null) { - // Synchronize so we don't try to remove when the vector is null. - synchronized (ImageAnalyzer.this) { - if (incrementalEvents != null) { - if (incrementalEvents.size() > 0) { - ImageLoaderEvent event = (ImageLoaderEvent) incrementalEvents.remove(0); - if (image != null) image.dispose(); - image = new Image(display, event.imageData); - imageData = event.imageData; - imageCanvasGC.drawImage( - image, - 0, - 0, - imageData.width, - imageData.height, - imageData.x, - imageData.y, - imageData.width, - imageData.height); - } else { - yield(); - } - } - } - } - display.wake(); - } - }; - incrementalThread.setDaemon(true); - incrementalThread.start(); - } - - /* - * Called when incremental image data has been loaded, - * for example, for interlaced GIF/PNG or progressive JPEG. - */ - void incrementalDataLoaded(ImageLoaderEvent event) { - // Synchronize so that we do not try to add while - // the incremental drawing thread is removing. - synchronized (this) { - incrementalEvents.addElement(event); - } - } - - void menuSave() { - if (image == null) return; - animate = false; // stop any animation in progress - - // If the image file type is unknown, we can't 'Save', - // so we have to use 'Save As...'. - if (imageData.type == SWT.IMAGE_UNDEFINED || fileName == null) { - menuSaveAs(); - return; - } - - Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - imageCanvas.setCursor(waitCursor); - try { - // Save the current image to the current file. - loader.data = new ImageData[] {imageData}; - loader.save(fileName, imageData.type); - - } catch (SWTException e) { - showErrorDialog(bundle.getString("Saving_lc"), fileName, e); - } finally { - shell.setCursor(null); - imageCanvas.setCursor(crossCursor); - waitCursor.dispose(); - } - } - - void menuSaveAs() { - if (image == null) return; - animate = false; // stop any animation in progress - - // Get the user to choose a file name and type to save. - FileDialog fileChooser = new FileDialog(shell, SWT.SAVE); - fileChooser.setFilterPath(lastPath); - if (fileName != null) fileChooser.setFileName(fileName); - fileChooser.setFilterExtensions(new String[] { "*.bmp", "*.gif", "*.ico", "*.jpg", "*.png" }); - fileChooser.setFilterNames(new String[] { "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PNG (*.png)" }); - String filename = fileChooser.open(); - lastPath = fileChooser.getFilterPath(); - if (filename == null) - return; - - // Figure out what file type the user wants saved. - // We need to rely on the file extension because FileDialog - // does not have API for asking what filter type was selected. - int filetype = determineFileType(filename); - if (filetype == SWT.IMAGE_UNDEFINED) { - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR); - box.setMessage(createMsg(bundle.getString("Unknown_extension"), - filename.substring(filename.lastIndexOf('.') + 1))); - box.open(); - return; - } - - if (new java.io.File(filename).exists()) { - MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL); - box.setMessage(createMsg(bundle.getString("Overwrite"), filename)); - if (box.open() == SWT.CANCEL) - return; - } - - Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - imageCanvas.setCursor(waitCursor); - try { - // Save the current image to the specified file. - loader.data = new ImageData[] {imageData}; - loader.save(filename, filetype); - - // Update the shell title and file type label, - // and use the new file. - fileName = filename; - shell.setText(createMsg(bundle.getString("Analyzer_on"), filename)); - typeLabel.setText(createMsg(bundle.getString("Type_string"), fileTypeString(filetype))); - - } catch (SWTException e) { - showErrorDialog(bundle.getString("Saving_lc"), filename, e); - } finally { - shell.setCursor(null); - imageCanvas.setCursor(crossCursor); - waitCursor.dispose(); - } - } - - void menuSaveMaskAs() { - if (image == null || !showMask) return; - if (imageData.getTransparencyType() == SWT.TRANSPARENCY_NONE) return; - animate = false; // stop any animation in progress - - // Get the user to choose a file name and type to save. - FileDialog fileChooser = new FileDialog(shell, SWT.SAVE); - fileChooser.setFilterPath(lastPath); - if (fileName != null) fileChooser.setFileName(fileName); - fileChooser.setFilterExtensions(new String[] { "*.bmp", "*.gif", "*.ico", "*.jpg", "*.png" }); - fileChooser.setFilterNames(new String[] { "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PNG (*.png)" }); - String filename = fileChooser.open(); - lastPath = fileChooser.getFilterPath(); - if (filename == null) - return; - - // Figure out what file type the user wants saved. - // We need to rely on the file extension because FileDialog - // does not have API for asking what filter type was selected. - int filetype = determineFileType(filename); - if (filetype == SWT.IMAGE_UNDEFINED) { - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR); - box.setMessage(createMsg(bundle.getString("Unknown_extension"), - filename.substring(filename.lastIndexOf('.') + 1))); - box.open(); - return; - } - - if (new java.io.File(filename).exists()) { - MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL); - box.setMessage(createMsg(bundle.getString("Overwrite"), filename)); - if (box.open() == SWT.CANCEL) - return; - } - - Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - imageCanvas.setCursor(waitCursor); - try { - // Save the mask of the current image to the specified file. - ImageData maskImageData = imageData.getTransparencyMask(); - loader.data = new ImageData[] {maskImageData}; - loader.save(filename, filetype); - - } catch (SWTException e) { - showErrorDialog(bundle.getString("Saving_lc"), filename, e); - } finally { - shell.setCursor(null); - imageCanvas.setCursor(crossCursor); - waitCursor.dispose(); - } - } - - void menuPrint() { - if (image == null) return; - - try { - // Ask the user to specify the printer. - PrintDialog dialog = new PrintDialog(shell, SWT.NULL); - PrinterData printerData = dialog.open(); - if (printerData == null) return; - - Printer printer = new Printer(printerData); - Point screenDPI = display.getDPI(); - Point printerDPI = printer.getDPI(); - int scaleFactor = printerDPI.x / screenDPI.x; - Rectangle trim = printer.computeTrim(0, 0, 0, 0); - if (printer.startJob(currentName)) { - if (printer.startPage()) { - GC gc = new GC(printer); - int transparentPixel = imageData.transparentPixel; - if (transparentPixel != -1 && !transparent) { - imageData.transparentPixel = -1; - } - Image printerImage = new Image(printer, imageData); - gc.drawImage( - printerImage, - 0, - 0, - imageData.width, - imageData.height, - -trim.x, - -trim.y, - scaleFactor * imageData.width, - scaleFactor * imageData.height); - if (transparentPixel != -1 && !transparent) { - imageData.transparentPixel = transparentPixel; - } - printerImage.dispose(); - gc.dispose(); - printer.endPage(); - } - printer.endJob(); - } - printer.dispose(); - } catch (SWTError e) { - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR); - box.setMessage(bundle.getString("Printing_error") + e.getMessage()); - box.open(); - } - } - - void menuReopen() { - if (currentName == null) return; - animate = false; // stop any animation in progress - resetScrollBars(); - resetScaleCombos(); - Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT); - shell.setCursor(waitCursor); - imageCanvas.setCursor(waitCursor); - try { - loader = new ImageLoader(); - long startTime = System.currentTimeMillis(); - ImageData[] newImageData; - if (fileName == null) { - URL url = new URL(currentName); - InputStream stream = url.openStream(); - newImageData = loader.load(stream); - } else { - newImageData = loader.load(fileName); - } - loadTime = System.currentTimeMillis() - startTime; - imageDataIndex = 0; - displayImage(newImageData[imageDataIndex]); - - } catch (Exception e) { - showErrorDialog(bundle.getString("Reloading_lc"), currentName, e); - } finally { - shell.setCursor(null); - imageCanvas.setCursor(crossCursor); - waitCursor.dispose(); - } - } - - void changeBackground() { - String background = backgroundCombo.getText(); - if (background.equals(bundle.getString("White"))) { - imageCanvas.setBackground(whiteColor); - } else if (background.equals(bundle.getString("Black"))) { - imageCanvas.setBackground(blackColor); - } else if (background.equals(bundle.getString("Red"))) { - imageCanvas.setBackground(redColor); - } else if (background.equals(bundle.getString("Green"))) { - imageCanvas.setBackground(greenColor); - } else if (background.equals(bundle.getString("Blue"))) { - imageCanvas.setBackground(blueColor); - } else { - imageCanvas.setBackground(null); - } - } - - /* - * Called when the ScaleX combo selection changes. - */ - void scaleX() { - try { - xscale = Float.parseFloat(scaleXCombo.getText()); - } catch (NumberFormatException e) { - xscale = 1; - scaleXCombo.select(scaleXCombo.indexOf("1")); - } - if (image != null) { - resizeScrollBars(); - imageCanvas.redraw(); - } - } - - /* - * Called when the ScaleY combo selection changes. - */ - void scaleY() { - try { - yscale = Float.parseFloat(scaleYCombo.getText()); - } catch (NumberFormatException e) { - yscale = 1; - scaleYCombo.select(scaleYCombo.indexOf("1")); - } - if (image != null) { - resizeScrollBars(); - imageCanvas.redraw(); - } - } - - /* - * Called when the Alpha combo selection changes. - */ - void alpha() { - try { - alpha = Integer.parseInt(alphaCombo.getText()); - } catch (NumberFormatException e) { - alphaCombo.select(alphaCombo.indexOf("255")); - alpha = 255; - } - } - - /* - * Called when the mouse moves in the image canvas. - * Show the color of the image at the point under the mouse. - */ - void showColorAt(int mx, int my) { - int x = mx - imageData.x - ix; - int y = my - imageData.y - iy; - showColorForPixel(x, y); - } - - /* - * Called when a mouse down or key press is detected - * in the data text. Show the color of the pixel at - * the caret position in the data text. - */ - void showColorForData() { - int delimiterLength = dataText.getLineDelimiter().length(); - int charactersPerLine = 6 + 3 * imageData.bytesPerLine + delimiterLength; - int position = dataText.getCaretOffset(); - int y = position / charactersPerLine; - if ((position - y * charactersPerLine) < 6 || ((y + 1) * charactersPerLine - position) <= delimiterLength) { - statusLabel.setText(""); - return; - } - int dataPosition = position - 6 * (y + 1) - delimiterLength * y; - int byteNumber = dataPosition / 3; - int where = dataPosition - byteNumber * 3; - int xByte = byteNumber % imageData.bytesPerLine; - int x = -1; - int depth = imageData.depth; - if (depth == 1) { // 8 pixels per byte (can only show 3 of 8) - if (where == 0) x = xByte * 8; - if (where == 1) x = xByte * 8 + 3; - if (where == 2) x = xByte * 8 + 7; - } - if (depth == 2) { // 4 pixels per byte (can only show 3 of 4) - if (where == 0) x = xByte * 4; - if (where == 1) x = xByte * 4 + 1; - if (where == 2) x = xByte * 4 + 3; - } - if (depth == 4) { // 2 pixels per byte - if (where == 0) x = xByte * 2; - if (where == 1) x = xByte * 2; - if (where == 2) x = xByte * 2 + 1; - } - if (depth == 8) { // 1 byte per pixel - x = xByte; - } - if (depth == 16) { // 2 bytes per pixel - x = xByte / 2; - } - if (depth == 24) { // 3 bytes per pixel - x = xByte / 3; - } - if (depth == 32) { // 4 bytes per pixel - x = xByte / 4; - } - if (x != -1) { - showColorForPixel(x, y); - } else { - statusLabel.setText(""); - } - } - - /* - * Set the status label to show color information - * for the specified pixel in the image. - */ - void showColorForPixel(int x, int y) { - if (x >= 0 && x < imageData.width && y >= 0 && y < imageData.height) { - int pixel = imageData.getPixel(x, y); - RGB rgb = imageData.palette.getRGB(pixel); - - - Object[] args = {new Integer(x), - new Integer(y), - new Integer(pixel), - Integer.toHexString(pixel), - rgb}; - if (pixel == imageData.transparentPixel) { - statusLabel.setText(createMsg(bundle.getString("Color_at_trans"), args)); - } else { - statusLabel.setText(createMsg(bundle.getString("Color_at"), args)); - } - } else { - statusLabel.setText(""); - } - } - - /* - * Called when the Animate button is pressed. - */ - void animate() { - animate = !animate; - if (animate && image != null && imageDataArray.length > 1) { - animateThread = new Thread(bundle.getString("Animation")) { - public void run() { - // Pre-animation widget setup. - preAnimation(); - - // Animate. - try { - animateLoop(); - } catch (final SWTException e) { - display.syncExec(new Runnable() { - public void run() { - showErrorDialog(createMsg(bundle.getString("Creating_image"), - new Integer(imageDataIndex+1)), - currentName, e); - } - }); - } - - // Post animation widget reset. - postAnimation(); - } - }; - animateThread.setDaemon(true); - animateThread.start(); - } - } - - /* - * Loop through all of the images in a multi-image file - * and display them one after another. - */ - void animateLoop() { - // Create an off-screen image to draw on, and a GC to draw with. - // Both are disposed after the animation. - Image offScreenImage = new Image(display, loader.logicalScreenWidth, loader.logicalScreenHeight); - GC offScreenImageGC = new GC(offScreenImage); - - try { - // Use syncExec to get the background color of the imageCanvas. - display.syncExec(new Runnable() { - public void run() { - canvasBackground = imageCanvas.getBackground(); - } - }); - - // Fill the off-screen image with the background color of the canvas. - offScreenImageGC.setBackground(canvasBackground); - offScreenImageGC.fillRectangle( - 0, - 0, - loader.logicalScreenWidth, - loader.logicalScreenHeight); - - // Draw the current image onto the off-screen image. - offScreenImageGC.drawImage( - image, - 0, - 0, - imageData.width, - imageData.height, - imageData.x, - imageData.y, - imageData.width, - imageData.height); - - int repeatCount = loader.repeatCount; - while (animate && (loader.repeatCount == 0 || repeatCount > 0)) { - if (imageData.disposalMethod == SWT.DM_FILL_BACKGROUND) { - // Fill with the background color before drawing. - Color bgColor = null; - int backgroundPixel = loader.backgroundPixel; - if (showBackground && backgroundPixel != -1) { - // Fill with the background color. - RGB backgroundRGB = imageData.palette.getRGB(backgroundPixel); - bgColor = new Color(null, backgroundRGB); - } - try { - offScreenImageGC.setBackground(bgColor != null ? bgColor : canvasBackground); - offScreenImageGC.fillRectangle( - imageData.x, - imageData.y, - imageData.width, - imageData.height); - } finally { - if (bgColor != null) bgColor.dispose(); - } - } else if (imageData.disposalMethod == SWT.DM_FILL_PREVIOUS) { - // Restore the previous image before drawing. - offScreenImageGC.drawImage( - image, - 0, - 0, - imageData.width, - imageData.height, - imageData.x, - imageData.y, - imageData.width, - imageData.height); - } - - // Get the next image data. - imageDataIndex = (imageDataIndex + 1) % imageDataArray.length; - imageData = imageDataArray[imageDataIndex]; - image.dispose(); - image = new Image(display, imageData); - - // Draw the new image data. - offScreenImageGC.drawImage( - image, - 0, - 0, - imageData.width, - imageData.height, - imageData.x, - imageData.y, - imageData.width, - imageData.height); - - // Draw the off-screen image to the screen. - imageCanvasGC.drawImage(offScreenImage, 0, 0); - - // Sleep for the specified delay time before drawing again. - try { - Thread.sleep(visibleDelay(imageData.delayTime * 10)); - } catch (InterruptedException e) { - } - - // If we have just drawn the last image in the set, - // then decrement the repeat count. - if (imageDataIndex == imageDataArray.length - 1) repeatCount--; - } - } finally { - offScreenImage.dispose(); - offScreenImageGC.dispose(); - } - } - - /* - * Pre animation setup. - */ - void preAnimation() { - display.syncExec(new Runnable() { - public void run() { - // Change the label of the Animate button to 'Stop'. - animateButton.setText(bundle.getString("Stop")); - - // Disable anything we don't want the user - // to select during the animation. - previousButton.setEnabled(false); - nextButton.setEnabled(false); - backgroundCombo.setEnabled(false); - scaleXCombo.setEnabled(false); - scaleYCombo.setEnabled(false); - alphaCombo.setEnabled(false); - incrementalCheck.setEnabled(false); - transparentCheck.setEnabled(false); - maskCheck.setEnabled(false); - // leave backgroundCheck enabled - - // Reset the scale combos and scrollbars. - resetScaleCombos(); - resetScrollBars(); - } - }); - } - - /* - * Post animation reset. - */ - void postAnimation() { - display.syncExec(new Runnable() { - public void run() { - // Enable anything we disabled before the animation. - previousButton.setEnabled(true); - nextButton.setEnabled(true); - backgroundCombo.setEnabled(true); - scaleXCombo.setEnabled(true); - scaleYCombo.setEnabled(true); - alphaCombo.setEnabled(true); - incrementalCheck.setEnabled(true); - transparentCheck.setEnabled(true); - maskCheck.setEnabled(true); - - // Reset the label of the Animate button. - animateButton.setText(bundle.getString("Animate")); - - if (animate) { - // If animate is still true, we finished the - // full number of repeats. Leave the image as-is. - animate = false; - } else { - // Redisplay the current image and its palette. - displayImage(imageDataArray[imageDataIndex]); - } - } - }); - } - - /* - * Called when the Previous button is pressed. - * Display the previous image in a multi-image file. - */ - void previous() { - if (image != null && imageDataArray.length > 1) { - if (imageDataIndex == 0) { - imageDataIndex = imageDataArray.length; - } - imageDataIndex = imageDataIndex - 1; - displayImage(imageDataArray[imageDataIndex]); - } - } - - /* - * Called when the Next button is pressed. - * Display the next image in a multi-image file. - */ - void next() { - if (image != null && imageDataArray.length > 1) { - imageDataIndex = (imageDataIndex + 1) % imageDataArray.length; - displayImage(imageDataArray[imageDataIndex]); - } - } - - void displayImage(ImageData newImageData) { - if (incremental && incrementalThread != null) { - // Tell the incremental thread to stop drawing. - synchronized (this) { - incrementalEvents = null; - } - - // Wait until the incremental thread is done. - while (incrementalThread.isAlive()) { - if (!display.readAndDispatch()) display.sleep(); - } - } - - // Dispose of the old image, if there was one. - if (image != null) image.dispose(); - - try { - // Cache the new image and imageData. - image = new Image(display, newImageData); - imageData = newImageData; - - } catch (SWTException e) { - showErrorDialog(bundle.getString("Creating_from") + " ", currentName, e); - image = null; - return; - } - - // Update the widgets with the new image info. - String string = createMsg(bundle.getString("Analyzer_on"), currentName); - shell.setText(string); - - if (imageDataArray.length > 1) { - string = createMsg(bundle.getString("Type_index"), - new Object[] {fileTypeString(imageData.type), - new Integer(imageDataIndex + 1), - new Integer(imageDataArray.length)}); - } else { - string = createMsg(bundle.getString("Type_string"), fileTypeString(imageData.type)); - } - typeLabel.setText(string); - - string = createMsg(bundle.getString("Size_value"), - new Object[] {new Integer(imageData.width), - new Integer(imageData.height)}); - sizeLabel.setText(string); - - string = createMsg(bundle.getString("Depth_value"), new Integer(imageData.depth)); - depthLabel.setText(string); - - string = createMsg(bundle.getString("Transparent_pixel_value"), pixelInfo(imageData.transparentPixel)); - transparentPixelLabel.setText(string); - - string = createMsg(bundle.getString("Time_to_load_value"), new Long(loadTime)); - timeToLoadLabel.setText(string); - - string = createMsg(bundle.getString("Animation_size_value"), - new Object[] {new Integer(loader.logicalScreenWidth), - new Integer(loader.logicalScreenHeight)}); - screenSizeLabel.setText(string); - - string = createMsg(bundle.getString("Background_pixel_value"), pixelInfo(loader.backgroundPixel)); - backgroundPixelLabel.setText(string); - - string = createMsg(bundle.getString("Image_location_value"), - new Object[] {new Integer(imageData.x), new Integer(imageData.y)}); - locationLabel.setText(string); - - string = createMsg(bundle.getString("Disposal_value"), - new Object[] {new Integer(imageData.disposalMethod), - disposalString(imageData.disposalMethod)}); - disposalMethodLabel.setText(string); - - int delay = imageData.delayTime * 10; - int delayUsed = visibleDelay(delay); - if (delay != delayUsed) { - string = createMsg(bundle.getString("Delay_value"), - new Object[] {new Integer(delay), new Integer(delayUsed)}); - } else { - string = createMsg(bundle.getString("Delay_used"), new Integer(delay)); - } - delayTimeLabel.setText(string); - - if (loader.repeatCount == 0) { - string = createMsg( bundle.getString("Repeats_forever"), new Integer(loader.repeatCount)); - } else { - string = createMsg(bundle.getString("Repeats_value"), new Integer(loader.repeatCount)); - } - repeatCountLabel.setText(string); - - - if (imageData.palette.isDirect) { - string = bundle.getString("Palette_direct"); - } else { - string = createMsg(bundle.getString("Palette_value"), new Integer(imageData.palette.getRGBs().length)); - } - paletteLabel.setText(string); - - string = createMsg(bundle.getString("Pixel_data_value"), - new Object[] {new Integer(imageData.bytesPerLine), - new Integer(imageData.scanlinePad), - depthInfo(imageData.depth)}); - dataLabel.setText(string); - - String data = dataHexDump(dataText.getLineDelimiter()); - dataText.setText(data); - - // bold the first column all the way down - int index = 0; - while((index = data.indexOf(':', index+1)) != -1) - dataText.setStyleRange(new StyleRange(index - INDEX_DIGITS, INDEX_DIGITS, dataText.getForeground(), dataText.getBackground(), SWT.BOLD)); - - statusLabel.setText(""); - - // Redraw both canvases. - paletteCanvas.redraw(); - imageCanvas.redraw(); - } - - void paintImage(PaintEvent event) { - Image paintImage = image; - int transparentPixel = imageData.transparentPixel; - if (transparentPixel != -1 && !transparent) { - imageData.transparentPixel = -1; - paintImage = new Image(display, imageData); - } - int w = Math.round(imageData.width * xscale); - int h = Math.round(imageData.height * yscale); - event.gc.drawImage( - paintImage, - 0, - 0, - imageData.width, - imageData.height, - ix + imageData.x, - iy + imageData.y, - w, - h); - if (showMask && (imageData.getTransparencyType() != SWT.TRANSPARENCY_NONE)) { - ImageData maskImageData = imageData.getTransparencyMask(); - Image maskImage = new Image(display, maskImageData); - event.gc.drawImage( - maskImage, - 0, - 0, - imageData.width, - imageData.height, - w + 10 + ix + imageData.x, - iy + imageData.y, - w, - h); - maskImage.dispose(); - } - if (transparentPixel != -1 && !transparent) { - imageData.transparentPixel = transparentPixel; - paintImage.dispose(); - } - } - - void paintPalette(PaintEvent event) { - GC gc = event.gc; - gc.fillRectangle(paletteCanvas.getClientArea()); - if (imageData.palette.isDirect) { - // For a direct palette, display the masks. - int y = py + 10; - int xTab = 50; - gc.drawString("rMsk", 10, y, true); - gc.drawString(toHex4ByteString(imageData.palette.redMask), xTab, y, true); - gc.drawString("gMsk", 10, y+=12, true); - gc.drawString(toHex4ByteString(imageData.palette.greenMask), xTab, y, true); - gc.drawString("bMsk", 10, y+=12, true); - gc.drawString(toHex4ByteString(imageData.palette.blueMask), xTab, y, true); - gc.drawString("rShf", 10, y+=12, true); - gc.drawString(Integer.toString(imageData.palette.redShift), xTab, y, true); - gc.drawString("gShf", 10, y+=12, true); - gc.drawString(Integer.toString(imageData.palette.greenShift), xTab, y, true); - gc.drawString("bShf", 10, y+=12, true); - gc.drawString(Integer.toString(imageData.palette.blueShift), xTab, y, true); - } else { - // For an indexed palette, display the palette colors and indices. - RGB[] rgbs = imageData.palette.getRGBs(); - if (rgbs != null) { - int xTab1 = 40, xTab2 = 100; - for (int i = 0; i < rgbs.length; i++) { - int y = (i+1) * 10 + py; - gc.drawString(String.valueOf(i), 10, y, true); - gc.drawString(toHexByteString(rgbs[i].red) + toHexByteString(rgbs[i].green) + toHexByteString(rgbs[i].blue), xTab1, y, true); - Color color = new Color(display, rgbs[i]); - gc.setBackground(color); - gc.fillRectangle(xTab2, y+2, 10, 10); - color.dispose(); - } - } - } - } - - void resizeShell(ControlEvent event) { - if (image == null || shell.isDisposed()) - return; - resizeScrollBars(); - } - - // Reset the scale combos to 1. - void resetScaleCombos() { - xscale = 1; yscale = 1; - scaleXCombo.select(scaleXCombo.indexOf("1")); - scaleYCombo.select(scaleYCombo.indexOf("1")); - } - - // Reset the scroll bars to 0. - void resetScrollBars() { - if (image == null) return; - ix = 0; iy = 0; py = 0; - resizeScrollBars(); - imageCanvas.getHorizontalBar().setSelection(0); - imageCanvas.getVerticalBar().setSelection(0); - paletteCanvas.getVerticalBar().setSelection(0); - } - - void resizeScrollBars() { - // Set the max and thumb for the image canvas scroll bars. - ScrollBar horizontal = imageCanvas.getHorizontalBar(); - ScrollBar vertical = imageCanvas.getVerticalBar(); - Rectangle canvasBounds = imageCanvas.getClientArea(); - int width = Math.round(imageData.width * xscale); - if (width > canvasBounds.width) { - // The image is wider than the canvas. - horizontal.setEnabled(true); - horizontal.setMaximum(width); - horizontal.setThumb(canvasBounds.width); - horizontal.setPageIncrement(canvasBounds.width); - } else { - // The canvas is wider than the image. - horizontal.setEnabled(false); - if (ix != 0) { - // Make sure the image is completely visible. - ix = 0; - imageCanvas.redraw(); - } - } - int height = Math.round(imageData.height * yscale); - if (height > canvasBounds.height) { - // The image is taller than the canvas. - vertical.setEnabled(true); - vertical.setMaximum(height); - vertical.setThumb(canvasBounds.height); - vertical.setPageIncrement(canvasBounds.height); - } else { - // The canvas is taller than the image. - vertical.setEnabled(false); - if (iy != 0) { - // Make sure the image is completely visible. - iy = 0; - imageCanvas.redraw(); - } - } - - // Set the max and thumb for the palette canvas scroll bar. - vertical = paletteCanvas.getVerticalBar(); - if (imageData.palette.isDirect) { - vertical.setEnabled(false); - } else { // indexed palette - canvasBounds = paletteCanvas.getClientArea(); - int paletteHeight = imageData.palette.getRGBs().length * 10 + 20; // 10 pixels each index + 20 for margins. - vertical.setEnabled(true); - vertical.setMaximum(paletteHeight); - vertical.setThumb(canvasBounds.height); - vertical.setPageIncrement(canvasBounds.height); - } - } - - /* - * Called when the image canvas' horizontal scrollbar is selected. - */ - void scrollHorizontally(ScrollBar scrollBar) { - if (image == null) return; - Rectangle canvasBounds = imageCanvas.getClientArea(); - int width = Math.round(imageData.width * xscale); - int height = Math.round(imageData.height * yscale); - if (width > canvasBounds.width) { - // Only scroll if the image is bigger than the canvas. - int x = -scrollBar.getSelection(); - if (x + width < canvasBounds.width) { - // Don't scroll past the end of the image. - x = canvasBounds.width - width; - } - imageCanvas.scroll(x, iy, ix, iy, width, height, false); - ix = x; - } - } - - /* - * Called when the image canvas' vertical scrollbar is selected. - */ - void scrollVertically(ScrollBar scrollBar) { - if (image == null) return; - Rectangle canvasBounds = imageCanvas.getClientArea(); - int width = Math.round(imageData.width * xscale); - int height = Math.round(imageData.height * yscale); - if (height > canvasBounds.height) { - // Only scroll if the image is bigger than the canvas. - int y = -scrollBar.getSelection(); - if (y + height < canvasBounds.height) { - // Don't scroll past the end of the image. - y = canvasBounds.height - height; - } - imageCanvas.scroll(ix, y, ix, iy, width, height, false); - iy = y; - } - } - - /* - * Called when the palette canvas' vertical scrollbar is selected. - */ - void scrollPalette(ScrollBar scrollBar) { - if (image == null) return; - Rectangle canvasBounds = paletteCanvas.getClientArea(); - int paletteHeight = imageData.palette.getRGBs().length * 10 + 20; - if (paletteHeight > canvasBounds.height) { - // Only scroll if the palette is bigger than the canvas. - int y = -scrollBar.getSelection(); - if (y + paletteHeight < canvasBounds.height) { - // Don't scroll past the end of the palette. - y = canvasBounds.height - paletteHeight; - } - paletteCanvas.scroll(0, y, 0, py, paletteWidth, paletteHeight, false); - py = y; - } - } - - /* - * Return a String containing a line-by-line dump of - * the data in the current imageData. The lineDelimiter - * parameter must be a string of length 1 or 2. - */ - String dataHexDump(String lineDelimiter) { - if (image == null) return ""; - char[] dump = new char[imageData.height * (6 + 3 * imageData.bytesPerLine + lineDelimiter.length())]; - int index = 0; - for (int i = 0; i < imageData.data.length; i++) { - if (i % imageData.bytesPerLine == 0) { - int line = i / imageData.bytesPerLine; - dump[index++] = Character.forDigit(line / 1000 % 10, 10); - dump[index++] = Character.forDigit(line / 100 % 10, 10); - dump[index++] = Character.forDigit(line / 10 % 10, 10); - dump[index++] = Character.forDigit(line % 10, 10); - dump[index++] = ':'; - dump[index++] = ' '; - } - byte b = imageData.data[i]; - dump[index++] = Character.forDigit((b & 0xF0) >> 4, 16); - dump[index++] = Character.forDigit(b & 0x0F, 16); - dump[index++] = ' '; - if ((i + 1) % imageData.bytesPerLine == 0) { - dump[index++] = lineDelimiter.charAt(0); - if (lineDelimiter.length() > 1) - dump[index++] = lineDelimiter.charAt(1); - } - } - return new String(dump); - } - - /* - * Open an error dialog displaying the specified information. - */ - void showErrorDialog(String operation, String filename, Exception e) { - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR); - String message = createMsg(bundle.getString("Error"), new String[] {operation, filename}); - String errorMessage = ""; - if (e != null) { - if (e instanceof SWTException) { - SWTException swte = (SWTException) e; - errorMessage = swte.getMessage(); - if (swte.throwable != null) { - errorMessage += ":\n" + swte.throwable.toString(); - } - } else { - errorMessage = e.toString(); - } - } - box.setMessage(message + errorMessage); - box.open(); - } - - /* - * Return a String describing how to analyze the bytes - * in the hex dump. - */ - static String depthInfo(int depth) { - Object[] args = {new Integer(depth), ""}; - switch (depth) { - case 1: - args[1] = createMsg(bundle.getString("Multi_pixels"), - new Object[] {new Integer(8), " [01234567]"}); - break; - case 2: - args[1] = createMsg(bundle.getString("Multi_pixels"), - new Object[] {new Integer(4), "[00112233]"}); - break; - case 4: - args[1] = createMsg(bundle.getString("Multi_pixels"), - new Object[] {new Integer(2), "[00001111]"}); - break; - case 8: - args[1] = bundle.getString("One_byte"); - break; - case 16: - args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(2)); - break; - case 24: - args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(3)); - break; - case 32: - args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(4)); - break; - default: - args[1] = bundle.getString("Unsupported_lc"); - } - return createMsg(bundle.getString("Depth_info"), args); - } - - /* - * Return the specified number of milliseconds. - * If the specified number of milliseconds is too small - * to see a visual change, then return a higher number. - */ - static int visibleDelay(int ms) { - if (ms < 20) return ms + 30; - if (ms < 30) return ms + 10; - return ms; - } - - /* - * Return the specified byte value as a hex string, - * preserving leading 0's. - */ - static String toHexByteString(int i) { - if (i <= 0x0f) - return "0" + Integer.toHexString(i); - return Integer.toHexString(i & 0xff); - } - - /* - * Return the specified 4-byte value as a hex string, - * preserving leading 0's. - * (a bit 'brute force'... should probably use a loop...) - */ - static String toHex4ByteString(int i) { - String hex = Integer.toHexString(i); - if (hex.length() == 1) - return "0000000" + hex; - if (hex.length() == 2) - return "000000" + hex; - if (hex.length() == 3) - return "00000" + hex; - if (hex.length() == 4) - return "0000" + hex; - if (hex.length() == 5) - return "000" + hex; - if (hex.length() == 6) - return "00" + hex; - if (hex.length() == 7) - return "0" + hex; - return hex; - } - - /* - * Return a String describing the specified - * transparent or background pixel. - */ - static String pixelInfo(int pixel) { - if (pixel == -1) - return pixel + " (" + bundle.getString("None_lc") + ")"; - else - return pixel + " (0x" + Integer.toHexString(pixel) + ")"; - } - - /* - * Return a String describing the specified disposal method. - */ - static String disposalString(int disposalMethod) { - switch (disposalMethod) { - case SWT.DM_FILL_NONE: return bundle.getString("None_lc"); - case SWT.DM_FILL_BACKGROUND: return bundle.getString("Background_lc"); - case SWT.DM_FILL_PREVIOUS: return bundle.getString("Previous_lc"); - } - return bundle.getString("Unspecified_lc"); - } - - /* - * Return a String describing the specified image file type. - */ - static String fileTypeString(int filetype) { - if (filetype == SWT.IMAGE_BMP) - return "BMP"; - if (filetype == SWT.IMAGE_GIF) - return "GIF"; - if (filetype == SWT.IMAGE_ICO) - return "ICO"; - if (filetype == SWT.IMAGE_JPEG) - return "JPEG"; - if (filetype == SWT.IMAGE_PNG) - return "PNG"; - return bundle.getString("Unknown_ac"); - } - - /* - * Return the specified file's image type, based on its extension. - * Note that this is not a very robust way to determine image type, - * and it is only to be used in the absence of any better method. - */ - static int determineFileType(String filename) { - String ext = filename.substring(filename.lastIndexOf('.') + 1); - if (ext.equalsIgnoreCase("bmp")) - return SWT.IMAGE_BMP; - if (ext.equalsIgnoreCase("gif")) - return SWT.IMAGE_GIF; - if (ext.equalsIgnoreCase("ico")) - return SWT.IMAGE_ICO; - if (ext.equalsIgnoreCase("jpg") || ext.equalsIgnoreCase("jpeg")) - return SWT.IMAGE_JPEG; - if (ext.equalsIgnoreCase("png")) - return SWT.IMAGE_PNG; - return SWT.IMAGE_UNDEFINED; - } - - static String createMsg(String msg, Object[] args) { - MessageFormat formatter = new MessageFormat(msg); - return formatter.format(args); - } - - static String createMsg(String msg, Object arg) { - MessageFormat formatter = new MessageFormat(msg); - return formatter.format(new Object[]{arg}); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java deleted file mode 100755 index defb307530..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java +++ /dev/null @@ -1,378 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.javaviewer; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import java.util.*; -import java.io.*; - -class JavaLineStyler implements LineStyleListener { - JavaScanner scanner = new JavaScanner(); - int[] tokenColors; - Color[] colors; - Vector blockComments = new Vector(); - - public static final int EOF= -1; - public static final int EOL= 10; - - public static final int WORD= 0; - public static final int WHITE= 1; - public static final int KEY= 2; - public static final int COMMENT= 3; - public static final int STRING= 5; - public static final int OTHER= 6; - public static final int NUMBER= 7; - - public static final int MAXIMUM_TOKEN= 8; - -public JavaLineStyler() { - initializeColors(); - scanner = new JavaScanner(); -} - -Color getColor(int type) { - if (type < 0 || type >= tokenColors.length) { - return null; - } - return colors[tokenColors[type]]; -} - -boolean inBlockComment(int start, int end) { - for (int i=0; i<blockComments.size(); i++) { - int[] offsets = (int[])blockComments.elementAt(i); - // start of comment in the line - if ((offsets[0] >= start) && (offsets[0] <= end)) return true; - // end of comment in the line - if ((offsets[1] >= start) && (offsets[1] <= end)) return true; - if ((offsets[0] <= start) && (offsets[1] >= end)) return true; - } - return false; -} - -void initializeColors() { - Display display = Display.getDefault(); - colors= new Color[] { - new Color(display, new RGB(0, 0, 0)), // black - new Color(display, new RGB(255, 0, 0)), // red - new Color(display, new RGB(0, 255, 0)), // green - new Color(display, new RGB(0, 0, 255)) // blue - }; - tokenColors= new int[MAXIMUM_TOKEN]; - tokenColors[WORD]= 0; - tokenColors[WHITE]= 0; - tokenColors[KEY]= 3; - tokenColors[COMMENT]= 1; - tokenColors[STRING]= 2; - tokenColors[OTHER]= 0; - tokenColors[NUMBER]= 0; -} - -void disposeColors() { - for (int i=0;i<colors.length;i++) { - colors[i].dispose(); - } -} - -/** - * Event.detail line start offset (input) - * Event.text line text (input) - * LineStyleEvent.styles Enumeration of StyleRanges, need to be in order. (output) - * LineStyleEvent.background line background color (output) - */ -public void lineGetStyle(LineStyleEvent event) { - Vector styles = new Vector(); - int token; - StyleRange lastStyle; - // If the line is part of a block comment, create one style for the entire line. - if (inBlockComment(event.lineOffset, event.lineOffset + event.lineText.length())) { - styles.addElement(new StyleRange(event.lineOffset, event.lineText.length(), getColor(COMMENT), null)); - event.styles = new StyleRange[styles.size()]; - styles.copyInto(event.styles); - return; - } - Color defaultFgColor = ((Control)event.widget).getForeground(); - scanner.setRange(event.lineText); - token = scanner.nextToken(); - while (token != EOF) { - if (token == OTHER) { - // do nothing for non-colored tokens - } else if (token != WHITE) { - Color color = getColor(token); - // Only create a style if the token color is different than the - // widget's default foreground color and the token's style is not - // bold. Keywords are bolded. - if ((!color.equals(defaultFgColor)) || (token == KEY)) { - StyleRange style = new StyleRange(scanner.getStartOffset() + event.lineOffset, scanner.getLength(), color, null); - if (token == KEY) { - style.fontStyle = SWT.BOLD; - } - if (styles.isEmpty()) { - styles.addElement(style); - } else { - // Merge similar styles. Doing so will improve performance. - lastStyle = (StyleRange)styles.lastElement(); - if (lastStyle.similarTo(style) && (lastStyle.start + lastStyle.length == style.start)) { - lastStyle.length += style.length; - } else { - styles.addElement(style); - } - } - } - } else if ((!styles.isEmpty()) && ((lastStyle=(StyleRange)styles.lastElement()).fontStyle == SWT.BOLD)) { - int start = scanner.getStartOffset() + event.lineOffset; - lastStyle = (StyleRange)styles.lastElement(); - // A font style of SWT.BOLD implies that the last style - // represents a java keyword. - if (lastStyle.start + lastStyle.length == start) { - // Have the white space take on the style before it to - // minimize the number of style ranges created and the - // number of font style changes during rendering. - lastStyle.length += scanner.getLength(); - } - } - token= scanner.nextToken(); - } - event.styles = new StyleRange[styles.size()]; - styles.copyInto(event.styles); -} -public void parseBlockComments(String text) { - blockComments = new Vector(); - StringReader buffer = new StringReader(text); - int ch; - boolean blkComment = false; - int cnt = 0; - int[] offsets = new int[2]; - boolean done = false; - - try { - while (!done) { - switch (ch = buffer.read()) { - case -1 : { - if (blkComment) { - offsets[1] = cnt; - blockComments.addElement(offsets); - } - done = true; - break; - } - case '/' : { - ch = buffer.read(); - if ((ch == '*') && (!blkComment)) { - offsets = new int[2]; - offsets[0] = cnt; - blkComment = true; - cnt++; - } else { - cnt++; - } - cnt++; - break; - } - case '*' : { - if (blkComment) { - ch = buffer.read(); - cnt++; - if (ch == '/') { - blkComment = false; - offsets[1] = cnt; - blockComments.addElement(offsets); - } - } - cnt++; - break; - } - default : { - cnt++; - break; - } - } - } - } catch(IOException e) { - // ignore errors - } -} - -/** - * A simple fuzzy scanner for Java - */ -public class JavaScanner { - - protected Hashtable fgKeys= null; - protected StringBuffer fBuffer= new StringBuffer(); - protected String fDoc; - protected int fPos; - protected int fEnd; - protected int fStartToken; - protected boolean fEofSeen= false; - - private String[] fgKeywords= { - "abstract", - "boolean", "break", "byte", - "case", "catch", "char", "class", "continue", - "default", "do", "double", - "else", "extends", - "false", "final", "finally", "float", "for", - "if", "implements", "import", "instanceof", "int", "interface", - "long", - "native", "new", "null", - "package", "private", "protected", "public", - "return", - "short", "static", "super", "switch", "synchronized", - "this", "throw", "throws", "transient", "true", "try", - "void", "volatile", - "while" - }; - - public JavaScanner() { - initialize(); - } - - /** - * Returns the ending location of the current token in the document. - */ - public final int getLength() { - return fPos - fStartToken; - } - - /** - * Initialize the lookup table. - */ - void initialize() { - fgKeys= new Hashtable(); - Integer k= new Integer(KEY); - for (int i= 0; i < fgKeywords.length; i++) - fgKeys.put(fgKeywords[i], k); - } - - /** - * Returns the starting location of the current token in the document. - */ - public final int getStartOffset() { - return fStartToken; - } - - /** - * Returns the next lexical token in the document. - */ - public int nextToken() { - int c; - fStartToken= fPos; - while (true) { - switch (c= read()) { - case EOF: - return EOF; - case '/': // comment - c= read(); - if (c == '/') { - while (true) { - c= read(); - if ((c == EOF) || (c == EOL)) { - unread(c); - return COMMENT; - } - } - } else { - unread(c); - } - return OTHER; - case '\'': // char const - character: for(;;) { - c= read(); - switch (c) { - case '\'': - return STRING; - case EOF: - unread(c); - return STRING; - case '\\': - c= read(); - break; - } - } - - case '"': // string - string: for (;;) { - c= read(); - switch (c) { - case '"': - return STRING; - case EOF: - unread(c); - return STRING; - case '\\': - c= read(); - break; - } - } - - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - do { - c= read(); - } while(Character.isDigit((char)c)); - unread(c); - return NUMBER; - default: - if (Character.isWhitespace((char)c)) { - do { - c= read(); - } while(Character.isWhitespace((char)c)); - unread(c); - return WHITE; - } - if (Character.isJavaIdentifierStart((char)c)) { - fBuffer.setLength(0); - do { - fBuffer.append((char)c); - c= read(); - } while(Character.isJavaIdentifierPart((char)c)); - unread(c); - Integer i= (Integer) fgKeys.get(fBuffer.toString()); - if (i != null) - return i.intValue(); - return WORD; - } - return OTHER; - } - } - } - - /** - * Returns next character. - */ - protected int read() { - if (fPos <= fEnd) { - return fDoc.charAt(fPos++); - } - return EOF; - } - - public void setRange(String text) { - fDoc= text; - fPos= 0; - fEnd= fDoc.length() -1; - } - - protected void unread(int c) { - if (c != EOF) - fPos--; - } -} - - - - - -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java deleted file mode 100755 index aa23d580e9..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java +++ /dev/null @@ -1,180 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.javaviewer; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -import java.util.*; -import java.io.*; -import java.text.*; - -/** - */ -public class JavaViewer { - Shell shell; - StyledText text; - JavaLineStyler lineStyler = new JavaLineStyler(); - FileDialog fileDialog; - static ResourceBundle resources = ResourceBundle.getBundle("examples_javaviewer"); - -Menu createFileMenu() { - Menu bar = shell.getMenuBar (); - Menu menu = new Menu (bar); - MenuItem item; - - // Open - item = new MenuItem (menu, SWT.CASCADE); - item.setText (resources.getString("Open_menuitem")); - item.setAccelerator(SWT.MOD1 + 'O'); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - openFile(); - } - }); - - // Exit - item = new MenuItem (menu, SWT.PUSH); - item.setText (resources.getString("Exit_menuitem")); - item.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - menuFileExit (); - } - }); - return menu; -} - -void createMenuBar () { - Menu bar = new Menu (shell, SWT.BAR); - shell.setMenuBar (bar); - - MenuItem fileItem = new MenuItem (bar, SWT.CASCADE); - fileItem.setText (resources.getString("File_menuitem")); - fileItem.setMenu (createFileMenu ()); - -} - -void createShell (Display display) { - shell = new Shell (display); - shell.setText (resources.getString("Window_title")); - GridLayout layout = new GridLayout(); - layout.numColumns = 1; - shell.setLayout(layout); - shell.addShellListener (new ShellAdapter () { - public void shellClosed (ShellEvent e) { - lineStyler.disposeColors(); - text.removeLineStyleListener(lineStyler); - } - }); -} -void createStyledText() { - text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); - GridData spec = new GridData(); - spec.horizontalAlignment = GridData.FILL; - spec.grabExcessHorizontalSpace = true; - spec.verticalAlignment = GridData.FILL; - spec.grabExcessVerticalSpace = true; - text.setLayoutData(spec); - text.addLineStyleListener(lineStyler); - text.setEditable(false); - Color bg = Display.getDefault().getSystemColor(SWT.COLOR_GRAY); - text.setBackground(bg); -} - -void displayError(String msg) { - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR); - box.setMessage(msg); - box.open(); -} - -public static void main (String [] args) { - Display display = new Display(); - JavaViewer example = new JavaViewer (); - Shell shell = example.open (display); - while (!shell.isDisposed ()) - if (!display.readAndDispatch ()) display.sleep (); - display.dispose (); -} - -public Shell open (Display display) { - createShell (display); - createMenuBar (); - createStyledText (); - shell.setSize(500, 400); - shell.open (); - return shell; -} - -void openFile() { - final String textString; - if (fileDialog == null) { - fileDialog = new FileDialog(shell, SWT.OPEN); - } - - fileDialog.setFilterExtensions(new String[] {"*.java", "*.*"}); - fileDialog.open(); - String name = fileDialog.getFileName(); - - if ((name == null) || (name.length() == 0)) return; - - File file = new File(fileDialog.getFilterPath(), name); - if (!file.exists()) { - String message = MessageFormat.format(resources.getString("Err_file_no_exist"), new String[] {file.getName()}); - displayError(message); - return; - } - - try { - FileInputStream stream= new FileInputStream(file.getPath()); - try { - Reader in = new BufferedReader(new InputStreamReader(stream)); - char[] readBuffer= new char[2048]; - StringBuffer buffer= new StringBuffer((int) file.length()); - int n; - while ((n = in.read(readBuffer)) > 0) { - buffer.append(readBuffer, 0, n); - } - textString = buffer.toString(); - stream.close(); - } - catch (IOException e) { - // Err_file_io - String message = MessageFormat.format(resources.getString("Err_file_io"), new String[] {file.getName()}); - displayError(message); - return; - } - } - catch (FileNotFoundException e) { - String message = MessageFormat.format(resources.getString("Err_not_found"), new String[] {file.getName()}); - displayError(message); - return; - } - // Guard against superfluous mouse move events -- defer action until later - Display display = text.getDisplay(); - display.asyncExec(new Runnable() { - public void run() { - text.setText(textString); - } - }); - - // parse the block comments up front since block comments can go across - // lines - inefficient way of doing this - lineStyler.parseBlockComments(textString); -} - -void menuFileExit () { - shell.close (); -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java deleted file mode 100644 index d0c1fa368f..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java +++ /dev/null @@ -1,179 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.layoutexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class FillLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Button horizontal, vertical; - /* The example layout instance */ - FillLayout fillLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor; - CCombo combo; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - FillLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Add common controls */ - super.createChildWidgets (); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - table.addSelectionListener (new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - resetEditors (); - index = table.getSelectionIndex (); - if (index == -1) return; - TableItem oldItem = comboEditor.getItem (); - newItem = table.getItem (index); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - } - }); - - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - item.setText (0, String.valueOf (table.indexOf (item))); - item.setText (1, "Button"); - data.addElement ("Button"); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Controls the type of FillLayout */ - Group typeGroup = new Group (controlGroup, SWT.NONE); - typeGroup.setText (LayoutExample.getResourceString ("Type")); - typeGroup.setLayout (new GridLayout ()); - typeGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - horizontal = new Button (typeGroup, SWT.RADIO); - horizontal.setText ("SWT.HORIZONTAL"); - horizontal.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - horizontal.setSelection(true); - horizontal.addSelectionListener (selectionListener); - vertical = new Button (typeGroup, SWT.RADIO); - vertical.setText ("SWT.VERTICAL"); - vertical.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - vertical.addSelectionListener (selectionListener); - - /* Add common controls */ - super.createControlWidgets (); - - /* Position the sash */ - sash.setWeights (new int [] {4,1}); - } - - /** - * Creates the example layout. - */ - void createLayout () { - fillLayout = new FillLayout (); - layoutComposite.setLayout (fillLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - } - - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tFillLayout fillLayout = new FillLayout ();\n"); - if (fillLayout.type == SWT.VERTICAL) { - code.append ("\t\tfillLayout.type = SWT.VERTICAL;\n"); - } - code.append ("\t\tshell.setLayout (fillLayout);\n"); - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control, i)); - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] {"","Control"}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "FillLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - TableItem oldItem = comboEditor.getItem (); - comboEditor.setEditor (null, null, -1); - if (oldItem != null) { - int row = table.indexOf (oldItem); - data.insertElementAt (combo.getText (), row); - oldItem.setText (1, data.elementAt (row).toString ()); - combo.dispose (); - } - setLayoutState (); - refreshLayoutComposite (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - if (vertical.getSelection()) { - fillLayout.type = SWT.VERTICAL; - } else { - fillLayout.type = SWT.HORIZONTAL; - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java deleted file mode 100644 index b2c9e5d536..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java +++ /dev/null @@ -1,762 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.layoutexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.custom.*; - -class FormLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Combo marginHeight, marginWidth; - /* The example layout instance */ - FormLayout formLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor, widthEditor, heightEditor; - TableEditor leftEditor, rightEditor, topEditor, bottomEditor; - CCombo combo; - Text widthText, heightText; - Button leftAttach, rightAttach, topAttach, bottomAttach; - - /* Constants */ - final int COMBO_COL = 1; - final int WIDTH_COL = 2; - final int HEIGHT_COL = 3; - final int LEFT_COL = 4; - final int RIGHT_COL = 5; - final int TOP_COL = 6; - final int BOTTOM_COL = 7; - - final int MODIFY_COLS = 4; // The number of columns with combo or text editors - final int TOTAL_COLS = 8; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - FormLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Returns the constant for the alignment for an - * attachment given a string. - */ - int alignmentConstant (String align) { - if (align.equals("LEFT")) return SWT.LEFT; - if (align.equals("RIGHT")) return SWT.RIGHT; - if (align.equals("TOP")) return SWT.TOP; - if (align.equals("BOTTOM")) return SWT.BOTTOM; - if (align.equals("CENTER")) return SWT.CENTER; - return SWT.DEFAULT; - } - - /** - * Returns a string representing the alignment for an - * attachment given a constant. - */ - String alignmentString (int align) { - switch (align) { - case SWT.LEFT: return "LEFT"; - case SWT.RIGHT: return "RIGHT"; - case SWT.TOP: return "TOP"; - case SWT.BOTTOM: return "BOTTOM"; - case SWT.CENTER: return "CENTER"; - } - return "DEFAULT"; - } - - /** - * Update the attachment field in case the type of control - * has changed. - */ - String checkAttachment (String oldAttach, FormAttachment newAttach) { - String controlClass = newAttach.control.getClass().toString (); - String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); - int i = 0; - while (i < oldAttach.length () && !Character.isDigit(oldAttach.charAt (i))) { - i++; - } - String index = oldAttach.substring (i, oldAttach.indexOf (',')); - return controlType + index + "," + newAttach.offset + ":" + alignmentString (newAttach.alignment); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Add common controls */ - super.createChildWidgets (); - - /* Resize the columns */ - table.getColumn (LEFT_COL).setWidth (100); - table.getColumn (RIGHT_COL).setWidth (100); - table.getColumn (TOP_COL).setWidth (100); - table.getColumn (BOTTOM_COL).setWidth (100); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - widthEditor = new TableEditor (table); - heightEditor = new TableEditor (table); - leftEditor = new TableEditor (table); - rightEditor = new TableEditor (table); - topEditor = new TableEditor (table); - bottomEditor = new TableEditor (table); - table.addMouseListener (new MouseAdapter () { - public void mouseDown(MouseEvent e) { - resetEditors(); - index = table.getSelectionIndex (); - Point pt = new Point (e.x, e.y); - newItem = table.getItem (pt); - if (newItem == null) return; - TableItem oldItem = comboEditor.getItem (); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - - widthText = new Text (table, SWT.SINGLE); - widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]); - createTextEditor (widthText, widthEditor, WIDTH_COL); - - heightText = new Text (table, SWT.SINGLE); - heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]); - createTextEditor (heightText, heightEditor, HEIGHT_COL); - - leftAttach = new Button (table, SWT.PUSH); - leftAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - leftEditor.horizontalAlignment = SWT.LEFT; - leftEditor.grabHorizontal = true; - leftEditor.minimumWidth = leftAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - leftEditor.setEditor (leftAttach, newItem, LEFT_COL); - leftAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Left_Attachment")); - dialog.setColumn (LEFT_COL); - String attach = dialog.open (); - newItem.setText (LEFT_COL, attach); - resetEditors (); - } - }); - - rightAttach = new Button (table, SWT.PUSH); - rightAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - rightEditor.horizontalAlignment = SWT.LEFT; - rightEditor.grabHorizontal = true; - rightEditor.minimumWidth = rightAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - rightEditor.setEditor (rightAttach, newItem, RIGHT_COL); - rightAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Right_Attachment")); - dialog.setColumn (RIGHT_COL); - String attach = dialog.open (); - newItem.setText (RIGHT_COL, attach); - if (newItem.getText (LEFT_COL).endsWith (")")) newItem.setText (LEFT_COL, ""); - resetEditors (); - } - }); - - topAttach = new Button (table, SWT.PUSH); - topAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - topEditor.horizontalAlignment = SWT.LEFT; - topEditor.grabHorizontal = true; - topEditor.minimumWidth = topAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - topEditor.setEditor (topAttach, newItem, TOP_COL); - topAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Top_Attachment")); - dialog.setColumn (TOP_COL); - String attach = dialog.open (); - newItem.setText (TOP_COL, attach); - resetEditors (); - } - }); - bottomAttach = new Button (table, SWT.PUSH); - bottomAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - bottomEditor.horizontalAlignment = SWT.LEFT; - bottomEditor.grabHorizontal = true; - bottomEditor.minimumWidth = bottomAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - bottomEditor.setEditor (bottomAttach, newItem, BOTTOM_COL); - bottomAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Bottom_Attachment")); - dialog.setColumn (BOTTOM_COL); - String attach = dialog.open (); - newItem.setText (BOTTOM_COL, attach); - if (newItem.getText (TOP_COL).endsWith (")")) newItem.setText (TOP_COL, ""); - resetEditors (); - } - }); - - for (int i=0; i<table.getColumnCount (); i++) { - Rectangle rect = newItem.getBounds (i); - if (rect.contains (pt)) { - switch (i) { - case 0: - resetEditors (); - break; - case COMBO_COL : - combo.setFocus (); - break; - case WIDTH_COL : - widthText.setFocus (); - break; - case HEIGHT_COL : - heightText.setFocus (); - break; - default : - break; - } - } - } - } - }); - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - String [] insert = new String [] { - String.valueOf (table.indexOf (item)), "Button", "-1", "-1", - "0,0 (" + LayoutExample.getResourceString ("Default") + ")", "", - "0,0 (" + LayoutExample.getResourceString ("Default") + ")", ""}; - item.setText (insert); - data.addElement (insert); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Controls the margins and spacing of the FormLayout */ - String [] marginValues = new String [] {"0","3","5","10"}; - Group marginGroup = new Group (controlGroup, SWT.NONE); - marginGroup.setText (LayoutExample.getResourceString ("Margins")); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - marginGroup.setLayout (layout); - marginGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - new Label (marginGroup, SWT.NONE).setText ("marginHeight"); - marginHeight = new Combo (marginGroup, SWT.NONE); - marginHeight.setItems (marginValues); - marginHeight.select (0); - marginHeight.addSelectionListener (selectionListener); - marginHeight.addTraverseListener (traverseListener); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginHeight.setLayoutData (data); - new Label (marginGroup, SWT.NONE).setText ("marginWidth"); - marginWidth = new Combo (marginGroup, SWT.NONE); - marginWidth.setItems (marginValues); - marginWidth.select (0); - marginWidth.addSelectionListener (selectionListener); - marginWidth.addTraverseListener (traverseListener); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginWidth.setLayoutData (data); - - /* Add common controls */ - super.createControlWidgets (); - - /* Position the sash */ - sash.setWeights (new int [] {6,4}); - } - - /** - * Creates the example layout. - */ - void createLayout () { - formLayout = new FormLayout (); - layoutComposite.setLayout (formLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - widthText.dispose (); - heightText.dispose (); - leftAttach.dispose (); - rightAttach.dispose (); - topAttach.dispose (); - bottomAttach.dispose (); - } - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tFormLayout formLayout = new FormLayout ();\n"); - if (formLayout.marginHeight != 0) { - code.append ("\t\tformLayout.marginHeight = " + formLayout.marginHeight + ";\n"); - } - if (formLayout.marginWidth != 0) { - code.append ("\t\tformLayout.marginWidth = " + formLayout.marginWidth + ";\n"); - } - code.append ("\t\tshell.setLayout (formLayout);\n"); - - boolean first = true; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control, i)); - FormData data = (FormData) control.getLayoutData (); - if (data != null) { - code.append ("\t\t"); - if (first) { - code.append ("FormData "); - first = false; - } - code.append ("data = new FormData ();\n"); - if (data.width != SWT.DEFAULT) { - code.append ("\t\tdata.width = " + data.width + ";\n"); - } - if (data.height != SWT.DEFAULT) { - code.append ("\t\tdata.height = " + data.height + ";\n"); - } - if (data.left != null) { - if (data.left.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (LEFT_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.left = new FormAttachment (" + names [index] + ", " + data.left.offset + ", SWT." + alignmentString (data.left.alignment) + ");\n"); - } else { - if (data.right != null || (data.left.numerator != 0 ||data.left.offset != 0)) { - code.append ("\t\tdata.left = new FormAttachment (" + data.left.numerator + ", " + data.left.offset + ");\n"); - } - } - } - if (data.right != null) { - if (data.right.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (RIGHT_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.right = new FormAttachment (" + names [index] + ", " + data.right.offset + ", SWT." + alignmentString (data.right.alignment) + ");\n"); - } else { - code.append ("\t\tdata.right = new FormAttachment (" + data.right.numerator + ", " + data.right.offset + ");\n"); - } - } - if (data.top != null) { - if (data.top.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (TOP_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.top = new FormAttachment (" + names [index] + ", " + data.top.offset + ", SWT." + alignmentString (data.top.alignment) + ");\n"); - } else { - if (data.bottom != null || (data.top.numerator != 0 ||data.top.offset != 0)) { - code.append ("\t\tdata.top = new FormAttachment (" + data.top.numerator + ", " + data.top.offset + ");\n"); - } - } - } - if (data.bottom != null) { - if (data.bottom.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (BOTTOM_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.bottom = new FormAttachment (" + names [index] + ", " + data.bottom.offset + ", SWT." + alignmentString (data.bottom.alignment) + ");\n"); - } else { - code.append ("\t\tdata.bottom = new FormAttachment (" + data.bottom.numerator + ", " + data.bottom.offset + ");\n"); - } - } - code.append ("\t\t" + names [i] + ".setLayoutData (data);\n"); - } - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] { - "", - "Control", - "width", - "height", - "left", - "right", - "top", - "bottom" - }; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "FormLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - TableItem oldItem = comboEditor.getItem (); - if (oldItem != null) { - int row = table.indexOf (oldItem); - try { - new Integer (widthText.getText ()).intValue (); - } catch (NumberFormatException e) { - widthText.setText (oldItem.getText (WIDTH_COL)); - } - try { - new Integer (heightText.getText ()).intValue (); - } catch (NumberFormatException e) { - heightText.setText (oldItem.getText (HEIGHT_COL)); - } - String [] insert = new String [] {String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()}; - data.setElementAt (insert, row); - for (int i = 0 ; i < MODIFY_COLS; i++) { - oldItem.setText (i, ((String [])data.elementAt (row)) [i]); - } - if (!tab) disposeEditors (); - } - setLayoutState (); - refreshLayoutComposite (); - setLayoutData (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets an attachment to the edge of a widget using the - * information in the table. - */ - FormAttachment setAttachment (String attachment) { - String control, align; - int position, offset; - int comma = attachment.indexOf (','); - char first = attachment.charAt (0); - if (Character.isLetter(first)) { - /* Case where there is a control */ - control = attachment.substring (0, comma); - int i = 0; - while (i < control.length () && !Character.isDigit (control.charAt (i))) { - i++; - } - String end = control.substring (i); - int index = new Integer (end).intValue (); - Control attachControl = children [index]; - int colon = attachment.indexOf (':'); - try { - offset = new Integer (attachment.substring (comma + 1, colon)).intValue (); - } catch (NumberFormatException e) { - offset = 0; - } - align = attachment.substring (colon + 1); - return new FormAttachment (attachControl, offset, alignmentConstant (align)); - } else { - /* Case where there is a position */ - try { - position = new Integer (attachment.substring (0,comma)).intValue (); - } catch (NumberFormatException e) { - position = 0; - } - try { - offset = new Integer (attachment.substring (comma + 1)).intValue (); - } catch (NumberFormatException e) { - offset = 0; - } - return new FormAttachment (position, offset); - } - } - - /** - * Sets the layout data for the children of the layout. - */ - void setLayoutData () { - Control [] children = layoutComposite.getChildren (); - TableItem [] items = table.getItems (); - FormData data; - int width, height; - String left, right, top, bottom; - for (int i = 0; i < children.length; i++) { - width = new Integer (items [i].getText (WIDTH_COL)).intValue (); - height = new Integer (items [i].getText (HEIGHT_COL)).intValue (); - data = new FormData (); - if (width > 0) data.width = width; - if (height > 0) data.height = height; - - left = items [i].getText (LEFT_COL); - if (left.length () > 0) { - data.left = setAttachment (left); - if (data.left.control != null) { - String attachment = checkAttachment (left, data.left); - items [i].setText (LEFT_COL, attachment); - } - } - right = items [i].getText (RIGHT_COL); - if (right.length () > 0) { - data.right = setAttachment (right); - if (data.right.control != null) { - String attachment = checkAttachment (right, data.right); - items [i].setText (RIGHT_COL, attachment); - } - } - top = items [i].getText (TOP_COL); - if (top.length () > 0 ) { - data.top = setAttachment (top); - if (data.top.control != null) { - String attachment = checkAttachment (top, data.top); - items [i].setText (TOP_COL, attachment); - } - } - bottom = items [i].getText (BOTTOM_COL); - if (bottom.length () > 0) { - data.bottom = setAttachment (bottom); - if (data.bottom.control != null) { - String attachment = checkAttachment (bottom, data.bottom); - items [i].setText (BOTTOM_COL, attachment); - } - } - children [i].setLayoutData (data); - } - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - /* Set the margins and spacing */ - try { - formLayout.marginHeight = new Integer (marginHeight.getText ()).intValue (); - } catch (NumberFormatException e) { - formLayout.marginHeight = 0; - marginHeight.select (0); - } - try { - formLayout.marginWidth = new Integer (marginWidth.getText ()).intValue (); - } catch (NumberFormatException e) { - formLayout.marginWidth = 0; - marginWidth.select (0); - } - } - - - /** - * <code>AttachDialog</code> is the class that creates a - * dialog specific for this example. It creates a dialog - * with controls to set the values in a FormAttachment. - */ - public class AttachDialog extends Dialog { - String result = ""; - String controlInput, positionInput, alignmentInput, offsetInput; - int col = 0; - - public AttachDialog (Shell parent, int style) { - super (parent, style); - } - - public AttachDialog (Shell parent) { - this (parent, 0); - } - - public void setColumn (int col) { - this.col = col; - } - - public String open () { - Shell parent = getParent (); - final Shell shell = new Shell (parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); - shell.setText (getText ()); - GridLayout layout = new GridLayout (); - layout.numColumns = 3; - layout.makeColumnsEqualWidth = true; - shell.setLayout (layout); - - /* Find out what was previously set as an attachment */ - TableItem newItem = leftEditor.getItem (); - result = newItem.getText (col); - String oldAttach = result; - String oldPos = "0", oldControl = "", oldAlign = "DEFAULT", oldOffset = "0"; - boolean isControl = false; - if (oldAttach.length () != 0) { - char first = oldAttach.charAt (0); - if (Character.isLetter(first)) { - /* We have a control */ - isControl = true; - oldControl = oldAttach.substring (0, oldAttach.indexOf (',')); - oldAlign = oldAttach.substring (oldAttach.indexOf (':') + 1); - oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1, oldAttach.indexOf (':')); - } else { - /* We have a position */ - oldPos = oldAttach.substring (0, oldAttach.indexOf (',')); - oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1); - if (oldOffset.endsWith (")")) { // i.e. (Default) - oldOffset = oldOffset.substring (0, oldOffset.indexOf (' ')); - } - } - } - - /* Add position field */ - final Button posButton = new Button (shell, SWT.RADIO); - posButton.setText (LayoutExample.getResourceString ("Position")); - posButton.setSelection (!isControl); - final Combo position = new Combo (shell, SWT.NONE); - position.setItems (new String [] {"0","25","50","75","100"}); - position.setText (oldPos); - position.setEnabled (!isControl); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - position.setLayoutData (data); - - /* Add control field */ - final Button contButton = new Button (shell, SWT.RADIO); - contButton.setText (LayoutExample.getResourceString ("Control")); - contButton.setSelection (isControl); - final Combo control = new Combo (shell, SWT.READ_ONLY); - TableItem [] items = table.getItems (); - TableItem currentItem = leftEditor.getItem (); - for (int i = 0; i < table.getItemCount (); i++) { - if (items [i].getText (0).length() > 0) { - if (items [i] != currentItem) { - control.add (items [i].getText (COMBO_COL) + i); - } - } - } - if (oldControl.length () != 0) control.setText (oldControl); - else control.select (0); - control.setEnabled (isControl); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - control.setLayoutData (data); - - /* Add alignment field */ - new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Alignment")); - final Combo alignment = new Combo (shell, SWT.NONE); - String[] alignmentValues; - if (col == LEFT_COL || col == RIGHT_COL) { - alignmentValues = new String [] {"SWT.LEFT", "SWT.RIGHT", "SWT.CENTER", "SWT.DEFAULT"}; - } else { - // col == TOP_COL || col == BOTTOM_COL - alignmentValues = new String [] {"SWT.TOP", "SWT.BOTTOM", "SWT.CENTER", "SWT.DEFAULT"}; - } - alignment.setItems (alignmentValues); - alignment.setText ("SWT." + oldAlign); - alignment.setEnabled (isControl); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - alignment.setLayoutData (data); - - /* Add offset field */ - new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Offset")); - final Text offset = new Text (shell, SWT.SINGLE | SWT.BORDER); - offset.setText (oldOffset); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - offset.setLayoutData (data); - - /* Add listeners for choosing between position and control */ - posButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - position.setEnabled (true); - control.setEnabled (false); - alignment.setEnabled(false); - } - }); - contButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - position.setEnabled (false); - control.setEnabled (true); - alignment.setEnabled(true); - } - }); - - Button clear = new Button (shell, SWT.PUSH); - clear.setText (LayoutExample.getResourceString ("Clear")); - clear.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_END)); - clear.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - result = ""; - shell.close (); - } - }); - /* OK button sets data into table */ - Button ok = new Button (shell, SWT.PUSH); - ok.setText (LayoutExample.getResourceString ("OK")); - ok.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_CENTER)); - ok.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - controlInput = control.getText (); - alignmentInput = alignment.getText ().substring (4); - positionInput = position.getText (); - if (positionInput.length () == 0) positionInput = "0"; - try { - new Integer (positionInput).intValue (); - } catch (NumberFormatException except) { - positionInput = "0"; - } - offsetInput = offset.getText (); - if (offsetInput.length () == 0) offsetInput = "0"; - try { - new Integer (offsetInput).intValue (); - } catch (NumberFormatException except) { - offsetInput = "0"; - } - if (posButton.getSelection() || controlInput.length () == 0) { - result = positionInput + "," + offsetInput; - } else { - result = controlInput + "," + offsetInput + ":" + alignmentInput; - } - shell.close (); - } - }); - Button cancel = new Button (shell, SWT.PUSH); - cancel.setText (LayoutExample.getResourceString ("Cancel")); - cancel.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING)); - cancel.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - shell.close (); - } - }); - - shell.setDefaultButton (ok); - shell.pack (); - /* Center the dialog */ - Point center = parent.getLocation (); - center.x = center.x + (parent.getBounds ().width / 2) - (shell.getBounds ().width / 2); - center.y = center.y + (parent.getBounds ().height / 2) - (shell.getBounds ().height / 2); - shell.setLocation (center); - shell.open (); - Display display = shell.getDisplay (); - while (!shell.isDisposed ()) { - if (display.readAndDispatch ()) display.sleep (); - } - - return result; - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java deleted file mode 100644 index 3e9d5513a4..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java +++ /dev/null @@ -1,590 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.layoutexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.graphics.*; - -class GridLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Text numColumns; - Button makeColumnsEqualWidth; - Combo marginHeight, marginWidth, horizontalSpacing, verticalSpacing; - /* The example layout instance */ - GridLayout gridLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor, widthEditor, heightEditor; - TableEditor vAlignEditor, hAlignEditor, hIndentEditor; - TableEditor hSpanEditor, vSpanEditor, hGrabEditor, vGrabEditor; - CCombo combo, vAlign, hAlign, hGrab, vGrab; - Text widthText, heightText, hIndent, hSpan, vSpan; - - /* Constants */ - final int COMBO_COL = 1; - final int WIDTH_COL = 2; - final int HEIGHT_COL = 3; - final int HALIGN_COL = 4; - final int VALIGN_COL = 5; - final int HINDENT_COL = 6; - final int HSPAN_COL = 7; - final int VSPAN_COL = 8; - final int HGRAB_COL = 9; - final int VGRAB_COL = 10; - - final int TOTAL_COLS = 11; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - GridLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Create the TraverseListener */ - final TraverseListener traverseListener = new TraverseListener () { - public void keyTraversed (TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_TAB_NEXT) - resetEditors (); - if (e.detail == SWT.TRAVERSE_ESCAPE) - disposeEditors (); - }; - }; - - /* Add common controls */ - super.createChildWidgets (); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - widthEditor = new TableEditor (table); - heightEditor = new TableEditor (table); - vAlignEditor = new TableEditor (table); - hAlignEditor = new TableEditor (table); - hIndentEditor = new TableEditor (table); - hSpanEditor = new TableEditor (table); - vSpanEditor = new TableEditor (table); - hGrabEditor = new TableEditor (table); - vGrabEditor = new TableEditor (table); - table.addMouseListener (new MouseAdapter () { - public void mouseDown(MouseEvent e) { - resetEditors(); - index = table.getSelectionIndex (); - Point pt = new Point (e.x, e.y); - newItem = table.getItem (pt); - if (newItem == null) return; - TableItem oldItem = comboEditor.getItem (); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - - widthText = new Text (table, SWT.SINGLE); - widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]); - createTextEditor (widthText, widthEditor, WIDTH_COL); - - heightText = new Text (table, SWT.SINGLE); - heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]); - createTextEditor (heightText, heightEditor, HEIGHT_COL); - String [] alignValues = new String [] {"BEGINNING","CENTER","END","FILL"}; - hAlign = new CCombo (table, SWT.NONE); - hAlign.setItems (alignValues); - hAlign.setText (newItem.getText (HALIGN_COL)); - hAlignEditor.horizontalAlignment = SWT.LEFT; - hAlignEditor.grabHorizontal = true; - hAlignEditor.minimumWidth = 50; - hAlignEditor.setEditor (hAlign, newItem, HALIGN_COL); - hAlign.addTraverseListener (traverseListener); - - vAlign = new CCombo (table, SWT.NONE); - vAlign.setItems (alignValues); - vAlign.setText (newItem.getText (VALIGN_COL)); - vAlignEditor.horizontalAlignment = SWT.LEFT; - vAlignEditor.grabHorizontal = true; - vAlignEditor.minimumWidth = 50; - vAlignEditor.setEditor (vAlign, newItem, VALIGN_COL); - vAlign.addTraverseListener (traverseListener); - - hIndent = new Text (table, SWT.SINGLE); - hIndent.setText (((String [])data.elementAt (index)) [HINDENT_COL]); - createTextEditor (hIndent, hIndentEditor, HINDENT_COL); - - hSpan = new Text (table, SWT.SINGLE); - hSpan.setText (((String [])data.elementAt (index)) [HSPAN_COL]); - createTextEditor (hSpan, hSpanEditor, HSPAN_COL); - - vSpan = new Text (table, SWT.SINGLE); - vSpan.setText (((String [])data.elementAt (index)) [VSPAN_COL]); - createTextEditor (vSpan, vSpanEditor, VSPAN_COL); - - String [] boolValues = new String [] {"false","true"}; - hGrab = new CCombo (table, SWT.NONE); - hGrab.setItems (boolValues); - hGrab.setText (newItem.getText (HGRAB_COL)); - hGrabEditor.horizontalAlignment = SWT.LEFT; - hGrabEditor.grabHorizontal = true; - hGrabEditor.minimumWidth = 50; - hGrabEditor.setEditor (hGrab, newItem, HGRAB_COL); - hGrab.addTraverseListener (traverseListener);; - - vGrab = new CCombo (table, SWT.NONE); - vGrab.setItems (boolValues); - vGrab.setText (newItem.getText (VGRAB_COL)); - vGrabEditor.horizontalAlignment = SWT.LEFT; - vGrabEditor.grabHorizontal = true; - vGrabEditor.minimumWidth = 50; - vGrabEditor.setEditor (vGrab, newItem, VGRAB_COL); - vGrab.addTraverseListener (traverseListener); - - for (int i=0; i<table.getColumnCount (); i++) { - Rectangle rect = newItem.getBounds (i); - if (rect.contains (pt)) { - switch (i) { - case COMBO_COL : - combo.setFocus (); - break; - case WIDTH_COL : - widthText.setFocus (); - break; - case HEIGHT_COL : - heightText.setFocus (); - break; - case HALIGN_COL : - hAlign.setFocus (); - break; - case VALIGN_COL : - vAlign.setFocus (); - break; - case HINDENT_COL : - hIndent.setFocus (); - break; - case HSPAN_COL : - hSpan.setFocus (); - break; - case VSPAN_COL : - vSpan.setFocus (); - break; - case HGRAB_COL : - hGrab.setFocus (); - break; - case VGRAB_COL : - vGrab.setFocus (); - break; - default : - resetEditors (); - break; - } - } - } - } - }); - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - String [] insert = new String [] { - String.valueOf (table.indexOf (item)), "Button", - "-1","-1","BEGINNING","CENTER", - "0","1","1","false","false"}; - item.setText (insert); - data.addElement (insert); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Rearrange the layout of the control group */ - size.setLayoutData (new GridData ()); - - /* Controls the margins and spacing of the GridLayout */ - String [] marginValues = new String [] {"0","3","5","10"}; - Group marginGroup = new Group (controlGroup, SWT.NONE); - marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing")); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.verticalSpan = 2; - marginGroup.setLayoutData (data); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - marginGroup.setLayout (layout); - new Label (marginGroup, SWT.NONE).setText ("marginHeight"); - marginHeight = new Combo (marginGroup, SWT.NONE); - marginHeight.setItems (marginValues); - marginHeight.select (2); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginHeight.setLayoutData (data); - marginHeight.addSelectionListener (selectionListener); - marginHeight.addTraverseListener (traverseListener); - new Label (marginGroup, SWT.NONE).setText ("marginWidth"); - marginWidth = new Combo (marginGroup, SWT.NONE); - marginWidth.setItems (marginValues); - marginWidth.select (2); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginWidth.setLayoutData (data); - marginWidth.addSelectionListener (selectionListener); - marginWidth.addTraverseListener (traverseListener); - new Label (marginGroup, SWT.NONE).setText ("horizontalSpacing"); - horizontalSpacing = new Combo (marginGroup, SWT.NONE); - horizontalSpacing.setItems (marginValues); - horizontalSpacing.select (2); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - horizontalSpacing.setLayoutData (data); - horizontalSpacing.addSelectionListener (selectionListener); - horizontalSpacing.addTraverseListener (traverseListener); - new Label (marginGroup, SWT.NONE).setText ("verticalSpacing"); - verticalSpacing = new Combo (marginGroup, SWT.NONE); - verticalSpacing.setItems (marginValues); - verticalSpacing.select (2); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - verticalSpacing.setLayoutData (data); - verticalSpacing.addSelectionListener (selectionListener); - verticalSpacing.addTraverseListener (traverseListener); - - /* Controls the columns in the GridLayout */ - Group columnGroup = new Group (controlGroup, SWT.NONE); - columnGroup.setText (LayoutExample.getResourceString ("Columns")); - layout = new GridLayout (); - layout.numColumns = 2; - columnGroup.setLayout (layout); - data = new GridData (GridData.VERTICAL_ALIGN_FILL); - columnGroup.setLayoutData (data); - numColumns = new Text (columnGroup, SWT.BORDER); - numColumns.setText ("1"); - numColumns.addSelectionListener (selectionListener); - numColumns.addTraverseListener (traverseListener); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 15; - numColumns.setLayoutData (data); - new Label (columnGroup, SWT.NONE).setText ("numColumns"); - makeColumnsEqualWidth = new Button (columnGroup, SWT.CHECK); - makeColumnsEqualWidth.setText ("makeColumnsEqualWidth"); - makeColumnsEqualWidth.addSelectionListener (selectionListener); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - data.horizontalIndent = 14; - makeColumnsEqualWidth.setLayoutData (data); - - /* Add common controls */ - super.createControlWidgets (); - controlGroup.pack(); - } - - /** - * Creates the example layout. - */ - void createLayout () { - gridLayout = new GridLayout (); - layoutComposite.setLayout (gridLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - widthText.dispose (); - heightText.dispose (); - hAlign.dispose (); - vAlign.dispose (); - hIndent.dispose (); - hSpan.dispose (); - vSpan.dispose (); - hGrab.dispose (); - vGrab.dispose (); - } - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tGridLayout gridLayout = new GridLayout ();\n"); - if (gridLayout.numColumns != 1) { - code.append ("\t\tgridLayout.numColumns = " + gridLayout.numColumns + ";\n"); - } - if (gridLayout.makeColumnsEqualWidth) { - code.append ("\t\tgridLayout.makeColumnsEqualWidth = true;\n"); - } - if (gridLayout.marginHeight != 5) { - code.append ("\t\tgridLayout.marginHeight = " + gridLayout.marginHeight + ";\n"); - } - if (gridLayout.marginWidth != 5) { - code.append ("\t\tgridLayout.marginWidth = " + gridLayout.marginWidth + ";\n"); - } - if (gridLayout.horizontalSpacing != 5) { - code.append ("\t\tgridLayout.horizontalSpacing = " + gridLayout.horizontalSpacing + ";\n"); - } - if (gridLayout.verticalSpacing != 5) { - code.append ("\t\tgridLayout.verticalSpacing = " + gridLayout.verticalSpacing + ";\n"); - } - code.append ("\t\tshell.setLayout (gridLayout);\n"); - - boolean first = true; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control, i)); - GridData data = (GridData) control.getLayoutData (); - if (data != null) { - code.append ("\t\t"); - if (first) { - code.append ("GridData "); - first = false; - } - code.append ("data = new GridData ();\n"); - if (data.widthHint != SWT.DEFAULT) { - code.append ("\t\tdata.widthHint = " + data.widthHint + ";\n"); - } - if (data.heightHint != SWT.DEFAULT) { - code.append ("\t\tdata.heightHint = " + data.heightHint + ";\n"); - } - if (data.horizontalAlignment != GridData.BEGINNING) { - String alignment; - int hAlignment = data.horizontalAlignment; - if (hAlignment == GridData.CENTER) alignment = "GridData.CENTER"; - else if (hAlignment == GridData.END) alignment = "GridData.END"; - else alignment = "GridData.FILL"; - code.append ("\t\tdata.horizontalAlignment = " + alignment + ";\n"); - } - if (data.verticalAlignment != GridData.CENTER) { - String alignment; - int vAlignment = data.verticalAlignment; - if (vAlignment == GridData.BEGINNING) alignment = "GridData.BEGINNING"; - else if (vAlignment == GridData.END) alignment = "GridData.END"; - else alignment = "GridData.FILL"; - code.append ("\t\tdata.verticalAlignment = " + alignment + ";\n"); - } - if (data.horizontalIndent != 0) { - code.append ("\t\tdata.horizontalIndent = " + data.horizontalIndent + ";\n"); - } - if (data.horizontalSpan != 1) { - code.append ("\t\tdata.horizontalSpan = " + data.horizontalSpan + ";\n"); - } - if (data.verticalSpan != 1) { - code.append ("\t\tdata.verticalSpan = " + data.verticalSpan + ";\n"); - } - if (data.grabExcessHorizontalSpace) { - code.append ("\t\tdata.grabExcessHorizontalSpace = true;\n"); - } - if (data.grabExcessVerticalSpace) { - code.append ("\t\tdata.grabExcessVerticalSpace = true;\n"); - } - if (code.substring (code.length () - 33).equals ("GridData data = new GridData ();\n")) { - code.delete (code.length () - 33, code.length ()); - first = true; - } else if (code.substring (code.length () - 24).equals ("data = new GridData ();\n")) { - code.delete (code.length () - 24, code.length ()); - } else { - code.append ("\t\t" + names [i] + ".setLayoutData (data);\n"); - } - } - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] { - "", - "Control", - "width", - "height", - "horizontalAlignment", - "verticalAlignment", - "horizontalIndent", - "horizontalSpan", - "verticalSpan", - "grabExcessHorizontalSpace", - "grabExcessVerticalSpace" - }; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "GridLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - TableItem oldItem = comboEditor.getItem (); - if (oldItem != null) { - int row = table.indexOf (oldItem); - try { - new Integer (widthText.getText ()).intValue (); - } catch (NumberFormatException e) { - widthText.setText (oldItem.getText (WIDTH_COL)); - } - try { - new Integer (heightText.getText ()).intValue (); - } catch (NumberFormatException e) { - heightText.setText (oldItem.getText (HEIGHT_COL)); - } - try { - new Integer (hIndent.getText ()).intValue (); - } catch (NumberFormatException e) { - hIndent.setText (oldItem.getText (HINDENT_COL)); - } - try { - new Integer (hSpan.getText ()).intValue (); - } catch (NumberFormatException e) { - hSpan.setText (oldItem.getText (HSPAN_COL)); - } - try { - new Integer (vSpan.getText ()).intValue (); - } catch (NumberFormatException e) { - vSpan.setText (oldItem.getText (VSPAN_COL)); - } - String [] insert = new String [] { - String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText (), - hAlign.getText (), vAlign.getText (), hIndent.getText (), - hSpan.getText (), vSpan.getText (), hGrab.getText (), vGrab.getText () - }; - data.setElementAt (insert, row); - for (int i = 0; i < TOTAL_COLS; i++) { - oldItem.setText (i, ((String [])data.elementAt (row)) [i]); - } - if (!tab) disposeEditors (); - } - setLayoutState (); - refreshLayoutComposite (); - setLayoutData (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets the layout data for the children of the layout. - */ - void setLayoutData () { - Control [] children = layoutComposite.getChildren (); - TableItem [] items = table.getItems (); - GridData data; - int hIndent, hSpan, vSpan; - String vAlign, hAlign, vGrab, hGrab; - for (int i = 0; i < children.length; i++) { - data = new GridData (); - /* Set widthHint and heightHint */ - data.widthHint = new Integer (items [i].getText (WIDTH_COL)).intValue (); - data.heightHint = new Integer (items [i].getText (HEIGHT_COL)).intValue (); - /* Set vertical alignment and horizontal alignment */ - hAlign = items [i].getText (HALIGN_COL); - if (hAlign.equals ("CENTER")) { - data.horizontalAlignment = GridData.CENTER; - } else if (hAlign.equals ("END")) { - data.horizontalAlignment = GridData.END; - } else if (hAlign.equals ("FILL")) { - data.horizontalAlignment = GridData.FILL; - } else { - data.horizontalAlignment = GridData.BEGINNING; - } - vAlign = items [i].getText (VALIGN_COL); - if (vAlign.equals ("BEGINNING")) { - data.verticalAlignment = GridData.BEGINNING; - } else if (vAlign.equals ("END")) { - data.verticalAlignment = GridData.END; - } else if (vAlign.equals ("FILL")) { - data.verticalAlignment = GridData.FILL; - } else { - data.verticalAlignment = GridData.CENTER; - } - /* Set indents and spans */ - hIndent = new Integer (items [i].getText (HINDENT_COL)).intValue (); - data.horizontalIndent = hIndent; - hSpan = new Integer (items [i].getText (HSPAN_COL)).intValue (); - data.horizontalSpan = hSpan; - vSpan = new Integer (items [i].getText (VSPAN_COL)).intValue (); - data.verticalSpan = vSpan; - /* Set grabbers */ - hGrab = items [i].getText (HGRAB_COL); - if (hGrab.equals ("true")) { - data.grabExcessHorizontalSpace = true; - } else { - data.grabExcessHorizontalSpace = false; - } - vGrab = items [i].getText (VGRAB_COL); - if (vGrab.equals ("true")) { - data.grabExcessVerticalSpace = true; - } else { - data.grabExcessVerticalSpace = false; - } - children [i].setLayoutData (data); - } - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - /* Set the columns for the layout */ - try { - gridLayout.numColumns = new Integer (numColumns.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.numColumns = 1; - } - gridLayout.makeColumnsEqualWidth = makeColumnsEqualWidth.getSelection (); - - /* Set the margins and spacing */ - try { - gridLayout.marginHeight = new Integer (marginHeight.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.marginHeight = 5; - marginHeight.select (2); - } - try { - gridLayout.marginWidth = new Integer (marginWidth.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.marginWidth = 5; - marginWidth.select (2); - } - try { - gridLayout.horizontalSpacing = new Integer (horizontalSpacing.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.horizontalSpacing = 5; - horizontalSpacing.select (2); - } - try { - gridLayout.verticalSpacing = new Integer (verticalSpacing.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.verticalSpacing = 5; - verticalSpacing.select (2); - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java deleted file mode 100644 index 6f88135c9b..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.layoutexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; - -import java.text.*; -import java.util.*; - -public class LayoutExample { - private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_layout"); - private TabFolder tabFolder; - - /** - * Creates an instance of a LayoutExample embedded inside - * the supplied parent Composite. - * - * @param parent the container of the example - */ - public LayoutExample(Composite parent) { - tabFolder = new TabFolder (parent, SWT.NULL); - Tab [] tabs = new Tab [] { - new FillLayoutTab (this), - new RowLayoutTab (this), - new GridLayoutTab (this), - new FormLayoutTab (this), - }; - for (int i=0; i<tabs.length; i++) { - TabItem item = new TabItem (tabFolder, SWT.NULL); - item.setText (tabs [i].getTabText ()); - item.setControl (tabs [i].createTabFolderPage (tabFolder)); - } - } - - /** - * Grabs input focus. - */ - public void setFocus() { - tabFolder.setFocus(); - } - - /** - * Disposes of all resources associated with a particular - * instance of the LayoutExample. - */ - public void dispose() { - tabFolder = null; - } - - /** - * Invokes as a standalone program. - */ - public static void main(String[] args) { - final Display display = new Display(); - final Shell shell = new Shell(display); - shell.setLayout(new FillLayout()); - new LayoutExample(shell); - shell.setText(getResourceString("window.title")); - shell.addShellListener (new ShellAdapter () { - public void shellClosed(ShellEvent e) { - Shell [] shells = display.getShells(); - for (int i = 0; i < shells.length; i++) { - if (shells [i] != shell) shells [i].close (); - } - } - }); - shell.open(); - while (! shell.isDisposed()) { - if (! display.readAndDispatch()) display.sleep(); - } - } - - /** - * Gets a string from the resource bundle. - * We don't want to crash because of a missing String. - * Returns the key if not found. - */ - static String getResourceString(String key) { - try { - return resourceBundle.getString(key); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } - - /** - * Gets a string from the resource bundle and binds it - * with the given arguments. If the key is not found, - * return the key. - */ - static String getResourceString(String key, Object[] args) { - try { - return MessageFormat.format(getResourceString(key), args); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java deleted file mode 100644 index 6843ae551a..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java +++ /dev/null @@ -1,413 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.layoutexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.custom.*; - -class RowLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Button horizontal, vertical; - Button wrap, pack, justify; - Combo marginRight, marginLeft, marginTop, marginBottom, spacing; - /* The example layout instance */ - RowLayout rowLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor, widthEditor, heightEditor; - CCombo combo; - Text widthText, heightText; - - /* Constants */ - final int COMBO_COL = 1; - final int WIDTH_COL = 2; - final int HEIGHT_COL = 3; - - final int TOTAL_COLS = 4; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - RowLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Add common controls */ - super.createChildWidgets (); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - widthEditor = new TableEditor (table); - heightEditor = new TableEditor (table); - table.addMouseListener (new MouseAdapter () { - public void mouseDown(MouseEvent e) { - resetEditors(); - index = table.getSelectionIndex (); - Point pt = new Point (e.x, e.y); - newItem = table.getItem (pt); - if (newItem == null) return; - TableItem oldItem = comboEditor.getItem (); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - - widthText = new Text (table, SWT.SINGLE); - widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]); - createTextEditor (widthText, widthEditor, WIDTH_COL); - - heightText = new Text (table, SWT.SINGLE); - heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]); - createTextEditor (heightText, heightEditor, HEIGHT_COL); - - for (int i=0; i<table.getColumnCount (); i++) { - Rectangle rect = newItem.getBounds (i); - if (rect.contains (pt)) { - switch (i) { - case COMBO_COL : - combo.setFocus (); - break; - case WIDTH_COL : - widthText.setFocus (); - break; - case HEIGHT_COL : - heightText.setFocus (); - break; - default : - resetEditors (); - break; - } - } - } - } - }); - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - String [] insert = new String [] { - String.valueOf (table.indexOf (item)), - "Button", "-1", "-1"}; - item.setText (insert); - data.addElement (insert); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Controls the type of RowLayout */ - Group typeGroup = new Group (controlGroup, SWT.NONE); - typeGroup.setText (LayoutExample.getResourceString ("Type")); - typeGroup.setLayout (new GridLayout ()); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - typeGroup.setLayoutData (data); - horizontal = new Button (typeGroup, SWT.RADIO); - horizontal.setText ("SWT.HORIZONTAL"); - horizontal.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - horizontal.setSelection(true); - horizontal.addSelectionListener (selectionListener); - vertical = new Button (typeGroup, SWT.RADIO); - vertical.setText ("SWT.VERTICAL"); - vertical.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - vertical.addSelectionListener (selectionListener); - - /* Controls the margins and spacing of the RowLayout */ - String [] marginValues = new String [] {"0","3","5","10"}; - Group marginGroup = new Group (controlGroup, SWT.NONE); - marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing")); - data = new GridData (GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING); - data.verticalSpan = 2; - marginGroup.setLayoutData (data); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - marginGroup.setLayout (layout); - new Label (marginGroup, SWT.NONE).setText ("marginRight"); - marginRight = new Combo (marginGroup, SWT.NONE); - marginRight.setItems (marginValues); - marginRight.select (1); - marginRight.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - marginRight.addSelectionListener (selectionListener); - marginRight.addTraverseListener (traverseListener); - new Label (marginGroup, SWT.NONE).setText ("marginLeft"); - marginLeft = new Combo (marginGroup, SWT.NONE); - marginLeft.setItems (marginValues); - marginLeft.select (1); - marginLeft.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - marginLeft.addSelectionListener (selectionListener); - marginLeft.addTraverseListener(traverseListener); - new Label (marginGroup, SWT.NONE).setText ("marginTop"); - marginTop = new Combo (marginGroup, SWT.NONE); - marginTop.setItems (marginValues); - marginTop.select (1); - marginTop.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - marginTop.addSelectionListener (selectionListener); - marginTop.addTraverseListener(traverseListener); - new Label (marginGroup, SWT.NONE).setText ("marginBottom"); - marginBottom = new Combo (marginGroup, SWT.NONE); - marginBottom.setItems (marginValues); - marginBottom.select (1); - marginBottom.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - marginBottom.addSelectionListener (selectionListener); - marginBottom.addTraverseListener(traverseListener); - new Label (marginGroup, SWT.NONE).setText ("spacing"); - spacing = new Combo (marginGroup, SWT.NONE); - spacing.setItems (marginValues); - spacing.select (1); - spacing.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - spacing.addSelectionListener (selectionListener); - spacing.addTraverseListener(traverseListener); - - /* Controls other parameters of the RowLayout */ - Group specGroup = new Group (controlGroup, SWT.NONE); - specGroup.setText (LayoutExample.getResourceString ("Properties")); - specGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - specGroup.setLayout (new GridLayout ()); - wrap = new Button (specGroup, SWT.CHECK); - wrap.setText ("wrap"); - wrap.setSelection (true); - wrap.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - wrap.addSelectionListener (selectionListener); - pack = new Button (specGroup, SWT.CHECK); - pack.setText ("pack"); - pack.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - pack.setSelection (true); - pack.addSelectionListener (selectionListener); - justify = new Button (specGroup, SWT.CHECK); - justify.setText ("justify"); - justify.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - justify.addSelectionListener (selectionListener); - - /* Add common controls */ - super.createControlWidgets (); - - /* Position the sash */ - sash.setWeights (new int [] {6,5}); - } - - /** - * Creates the example layout. - */ - void createLayout () { - rowLayout = new RowLayout (); - layoutComposite.setLayout (rowLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - widthText.dispose (); - heightText.dispose (); - } - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tRowLayout rowLayout = new RowLayout ();\n"); - if (rowLayout.type == SWT.VERTICAL) { - code.append ("\t\trowLayout.type = SWT.VERTICAL;\n"); - } - if (rowLayout.wrap == false) { - code.append ("\t\trowLayout.wrap = false;\n"); - } - if (rowLayout.pack == false) { - code.append ("\t\trowLayout.pack = false;\n"); - } - if (rowLayout.justify == true) { - code.append ("\t\trowLayout.justify = true;\n"); - } - if (rowLayout.marginLeft != 3) { - code.append ("\t\trowLayout.marginLeft = " + rowLayout.marginLeft + ";\n"); - } - if (rowLayout.marginRight != 3) { - code.append ("\t\trowLayout.marginRight = " + rowLayout.marginRight + ";\n"); - } - if (rowLayout.marginTop != 3) { - code.append ("\t\trowLayout.marginTop = " + rowLayout.marginTop + ";\n"); - } - if (rowLayout.marginBottom != 3) { - code.append ("\t\trowLayout.marginBottom = " + rowLayout.marginBottom + ";\n"); - } - if (rowLayout.spacing != 3) { - code.append ("\t\trowLayout.spacing = " + rowLayout.spacing + ";\n"); - } - code.append ("\t\tshell.setLayout (rowLayout);\n"); - - boolean first = true; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control,i)); - RowData data = (RowData) control.getLayoutData (); - if (data != null) { - if (data.width != -1 || data.height != -1) { - code.append ("\t\t"); - if (first) { - code.append ("RowData "); - first = false; - } - if (data.width == -1) { - code.append ("data = new RowData (SWT.DEFAULT, " + data.height + ");\n"); - } else if (data.height == -1) { - code.append ("data = new RowData (" + data.width + ", SWT.DEFAULT);\n"); - } else { - code.append ("data = new RowData (" + data.width + ", " + data.height + ");\n"); - } - code.append ("\t\t" + names [i] + ".setLayoutData (data);\n"); - } - } - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] { - "", - "Control", - "width", - "height" - }; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "RowLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - TableItem oldItem = comboEditor.getItem (); - if (oldItem != null) { - int row = table.indexOf (oldItem); - /* Make sure user has entered valid data */ - try { - new Integer (widthText.getText ()).intValue (); - } catch (NumberFormatException e) { - widthText.setText (oldItem.getText (WIDTH_COL)); - } - try { - new Integer (heightText.getText ()).intValue (); - } catch (NumberFormatException e) { - heightText.setText (oldItem.getText (HEIGHT_COL)); - } - String [] insert = new String [] { - String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()}; - data.setElementAt (insert, row); - for (int i = 0 ; i < TOTAL_COLS; i++) { - oldItem.setText (i, ((String [])data.elementAt (row)) [i]); - } - if (!tab) disposeEditors (); - } - setLayoutState (); - refreshLayoutComposite (); - setLayoutData (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets the layout data for the children of the layout. - */ - void setLayoutData () { - Control [] children = layoutComposite.getChildren (); - TableItem [] items = table.getItems (); - RowData data; - int width, height; - for (int i = 0; i < children.length; i++) { - width = new Integer (items [i].getText (WIDTH_COL)).intValue (); - height = new Integer (items [i].getText (HEIGHT_COL)).intValue (); - data = new RowData (width, height); - children [i].setLayoutData (data); - } - - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - /* Set the type of layout */ - if (vertical.getSelection ()) { - rowLayout.type = SWT.VERTICAL; - } else { - rowLayout.type = SWT.HORIZONTAL; - } - - /* Set the margins and spacing */ - try { - rowLayout.marginRight = new Integer (marginRight.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.marginRight = 3; - marginRight.select (1); - } - try { - rowLayout.marginLeft = new Integer (marginLeft.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.marginLeft = 3; - marginLeft.select (1); - } - try { - rowLayout.marginTop = new Integer (marginTop.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.marginTop = 3; - marginTop.select (1); - } - try { - rowLayout.marginBottom = new Integer (marginBottom.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.marginBottom = 3; - marginBottom.select (1); - } - try { - rowLayout.spacing = new Integer (spacing.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.spacing = 3; - spacing.select (1); - } - - /* Set the other layout properties */ - rowLayout.wrap = wrap.getSelection (); - rowLayout.pack = pack.getSelection (); - rowLayout.justify = justify.getSelection (); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java deleted file mode 100644 index 89c95794c7..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java +++ /dev/null @@ -1,646 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.layoutexample; - - -import java.util.Vector; - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -/** - * <code>Tab</code> is the abstract superclass of every page - * in the example's tab folder. Each page in the tab folder - * displays a layout, and allows the user to manipulate the - * layout. - * - * A typical page in a Tab contains a two column composite. - * The left column contains the layout group, which contains - * the "layout composite" (the one that has the example layout). - * The right column contains the "control" group. The "control" - * group allows the user to interact with the example. Typical - * operations are modifying layout parameters, adding children - * to the "layout composite", and modifying child layout data. - * The "Code" button in the "control" group opens a new window - * containing code that will regenerate the layout. This code - * (or parts of it) can be selected and copied to the clipboard. - */ -abstract class Tab { - /* Common groups and composites */ - Composite tabFolderPage; - SashForm sash; - Group layoutGroup, controlGroup, childGroup; - /* The composite that contains the example layout */ - Composite layoutComposite; - /* Common controls for modifying the example layout */ - String [] names; - Control [] children; - Button size, add, delete, clear, code; - /* Common values for working with TableEditors */ - Table table; - int index; - TableItem newItem, lastSelected; - Vector data = new Vector (); - /* Controlling instance */ - final LayoutExample instance; - - /* Listeners */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetEditors (); - }; - }; - - TraverseListener traverseListener = new TraverseListener () { - public void keyTraversed (TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_RETURN) { - e.doit = false; - resetEditors (); - } - }; - }; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - Tab(LayoutExample instance) { - this.instance = instance; - } - - /** - * Creates the "child" group. This is the group that allows - * you to add children to the layout. It exists within the - * controlGroup. - */ - void createChildGroup () { - childGroup = new Group (controlGroup, SWT.NONE); - childGroup.setText (LayoutExample.getResourceString("Children")); - GridLayout layout = new GridLayout (); - layout.numColumns = 3; - childGroup.setLayout (layout); - GridData data = new GridData (GridData.FILL_BOTH); - data.horizontalSpan = 2; - childGroup.setLayoutData (data); - createChildWidgets (); - } - - /** - * Creates the controls for modifying the "children" - * table, and the table itself. - * Subclasses override this method to augment the - * standard table. - */ - void createChildWidgets () { - /* Controls for adding and removing children */ - add = new Button (childGroup, SWT.PUSH); - add.setText (LayoutExample.getResourceString ("Add")); - add.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - delete = new Button (childGroup, SWT.PUSH); - delete.setText (LayoutExample.getResourceString ("Delete")); - delete.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - delete.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetEditors (); - int [] selected = table.getSelectionIndices (); - table.remove (selected); - /* Refresh the control indices of the table */ - for (int i = 0; i < table.getItemCount(); i++) { - table.getItem (i).setText (0, String.valueOf (i)); - } - refreshLayoutComposite (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - }); - clear = new Button (childGroup, SWT.PUSH); - clear.setText (LayoutExample.getResourceString ("Clear")); - clear.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - clear.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetEditors (); - children = layoutComposite.getChildren (); - for (int i = 0; i < children.length; i++) { - children [i].dispose (); - } - table.removeAll (); - data.clear (); - children = new Control [0]; - layoutGroup.layout (true); - } - }); - /* Create the "children" table */ - table = new Table (childGroup, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION); - table.setLinesVisible (true); - table.setHeaderVisible (true); - GridData gridData = new GridData (GridData.FILL_BOTH); - gridData.horizontalSpan = 3; - gridData.heightHint = 150; - table.setLayoutData (gridData); - table.addTraverseListener (traverseListener); - - /* Add columns to the table */ - String [] columnHeaders = getLayoutDataFieldNames (); - for (int i = 0; i < columnHeaders.length; i++) { - TableColumn column = new TableColumn(table, SWT.NONE); - column.setText (columnHeaders [i]); - if (i == 0) column.setWidth (20); - else if (i == 1) column.setWidth (80); - else column.pack (); - } - } - - /** - * Creates the TableEditor with a CCombo in the first column - * of the table. This CCombo lists all the controls that - * the user can select to place on their layout. - */ - void createComboEditor (CCombo combo, TableEditor comboEditor) { - combo.setItems (new String [] { - "Button", "Canvas", "Combo", "Composite", - "CoolBar", "Group", "Label", "List", - "ProgressBar", "Scale", "Slider", "StyledText", - "Table", "Text", "ToolBar", "Tree"}); - combo.setText (newItem.getText (1)); - - /* Set up editor */ - comboEditor.horizontalAlignment = SWT.LEFT; - comboEditor.grabHorizontal = true; - comboEditor.minimumWidth = 50; - comboEditor.setEditor (combo, newItem, 1); - - /* Add listener */ - combo.addTraverseListener(new TraverseListener() { - public void keyTraversed(TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_RETURN) { - resetEditors (); - } - if (e.detail == SWT.TRAVERSE_ESCAPE) { - disposeEditors (); - } - } - }); - } - - /** - * Creates the "control" group. This is the group on the - * right half of each example tab. It contains controls - * for adding new children to the layoutComposite, and - * for modifying the children's layout data. - */ - void createControlGroup () { - controlGroup = new Group (sash, SWT.NONE); - controlGroup.setText (LayoutExample.getResourceString("Parameters")); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - controlGroup.setLayout (layout); - size = new Button (controlGroup, SWT.CHECK); - size.setText (LayoutExample.getResourceString ("Preferred_Size")); - size.setSelection (false); - size.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetEditors (); - if (size.getSelection ()) { - layoutComposite.setLayoutData (new GridData ()); - layoutGroup.layout (true); - } else { - layoutComposite.setLayoutData (new GridData (GridData.FILL_BOTH)); - layoutGroup.layout (true); - } - } - }); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - size.setLayoutData (data); - createControlWidgets (); - } - - /** - * Creates the "control" widget children. - * Subclasses override this method to augment - * the standard controls created. - */ - void createControlWidgets () { - createChildGroup (); - code = new Button (controlGroup, SWT.PUSH); - code.setText (LayoutExample.getResourceString ("Code")); - GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER | GridData.GRAB_HORIZONTAL); - gridData.horizontalSpan = 2; - code.setLayoutData (gridData); - code.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - final Shell shell = new Shell (); - shell.setText (LayoutExample.getResourceString ("Generated_Code")); - shell.setLayout (new FillLayout ()); - final StyledText text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); - String layoutCode = generateCode ().toString (); - if (layoutCode.length () == 0) return; - text.setText (layoutCode); - - Menu bar = new Menu (shell, SWT.BAR); - shell.setMenuBar (bar); - MenuItem editItem = new MenuItem (bar, SWT.CASCADE); - editItem.setText (LayoutExample.getResourceString ("Edit")); - Menu menu = new Menu (bar); - MenuItem select = new MenuItem (menu, SWT.PUSH); - select.setText (LayoutExample.getResourceString ("Select_All")); - select.setAccelerator (SWT.MOD1 + 'A'); - select.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - text.selectAll (); - } - }); - MenuItem copy = new MenuItem (menu, SWT.PUSH); - copy.setText (LayoutExample.getResourceString ("Copy")); - copy.setAccelerator (SWT.MOD1 + 'C'); - copy.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - text.copy (); - } - }); - MenuItem exit = new MenuItem (menu, SWT.PUSH); - exit.setText (LayoutExample.getResourceString ("Exit")); - exit.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - shell.close (); - } - }); - editItem.setMenu (menu); - - shell.pack (); - shell.setSize (400, 500); - shell.open (); - Display display = shell.getDisplay (); - while (!shell.isDisposed ()) - if (!display.readAndDispatch ()) display.sleep (); - } - }); - } - - /** - * Creates the example layout. - * Subclasses override this method. - */ - void createLayout () { - } - - /** - * Creates the composite that contains the example layout. - */ - void createLayoutComposite () { - layoutComposite = new Composite (layoutGroup, SWT.BORDER); - layoutComposite.setLayoutData (new GridData (GridData.FILL_BOTH)); - createLayout (); - } - - /** - * Creates the layout group. This is the group on the - * left half of each example tab. - */ - void createLayoutGroup () { - layoutGroup = new Group (sash, SWT.NONE); - layoutGroup.setText (LayoutExample.getResourceString("Layout")); - layoutGroup.setLayout (new GridLayout ()); - createLayoutComposite (); - } - - /** - * Creates the tab folder page. - * - * @param tabFolder org.eclipse.swt.widgets.TabFolder - * @return the new page for the tab folder - */ - Composite createTabFolderPage (TabFolder tabFolder) { - /* Create a two column page with a SashForm*/ - tabFolderPage = new Composite (tabFolder, SWT.NULL); - tabFolderPage.setLayout (new FillLayout ()); - sash = new SashForm (tabFolderPage, SWT.HORIZONTAL); - - /* Create the "layout" and "control" columns */ - createLayoutGroup (); - createControlGroup (); - - return tabFolderPage; - } - - /** - * Creates the TableEditor with a Text in the given column - * of the table. - */ - void createTextEditor (Text text, TableEditor textEditor, int column) { - text.setFont (table.getFont ()); - text.selectAll (); - textEditor.horizontalAlignment = SWT.LEFT; - textEditor.grabHorizontal = true; - textEditor.setEditor (text, newItem, column); - - text.addTraverseListener(new TraverseListener() { - public void keyTraversed(TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_TAB_NEXT) { - resetEditors (true); - } - if (e.detail == SWT.TRAVERSE_ESCAPE) { - disposeEditors (); - } - } - }); - } - - /** - * Disposes the editors without placing their contents - * into the table. - * Subclasses override this method. - */ - void disposeEditors () { - } - - /** - * Generates the code needed to produce the example layout. - */ - StringBuffer generateCode () { - /* Make sure all information being entered is stored in the table */ - resetEditors (); - - /* Get names for controls in the layout */ - names = new String [children.length]; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - String controlClass = control.getClass ().toString (); - String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); - names [i] = controlType.toLowerCase () + i; - } - - /* Create StringBuffer containing the code */ - StringBuffer code = new StringBuffer (); - code.append ("import org.eclipse.swt.*;\n"); - code.append ("import org.eclipse.swt.custom.*;\n"); - code.append ("import org.eclipse.swt.graphics.*;\n"); - code.append ("import org.eclipse.swt.layout.*;\n"); - code.append ("import org.eclipse.swt.widgets.*;\n\n"); - code.append ("public class MyLayout {\n"); - code.append ("\tpublic static void main (String [] args) {\n"); - code.append ("\t\tDisplay display = new Display ();\n"); - code.append ("\t\tShell shell = new Shell (display);\n"); - - /* Get layout specific code */ - code.append (generateLayoutCode ()); - - code.append ("\n\t\tshell.pack ();\n\t\tshell.open ();\n\n"); - code.append ("\t\twhile (!shell.isDisposed ()) {\n"); - code.append ("\t\t\tif (!display.readAndDispatch ())\n"); - code.append ("\t\t\t\tdisplay.sleep ();\n\t\t}\n\t\tdisplay.dispose ();\n\t}\n}"); - - return code; - } - - /** - * Generates layout specific code for the example layout. - * Subclasses override this method. - */ - StringBuffer generateLayoutCode () { - return new StringBuffer (); - } - - /** - * Returns the StringBuffer for the code which will - * create a child control. - */ - StringBuffer getChildCode (Control control, int i) { - StringBuffer code = new StringBuffer (); - /* Find the type of control */ - String controlClass = control.getClass().toString (); - String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); - /* Find the style of the control */ - String styleString; - if (controlType.equals ("Button")) { - styleString = "SWT.PUSH"; - } else if (controlType.equals ("Text")) { - styleString = "SWT.BORDER"; - } else if (controlType.equals ("StyledText")) { - styleString = "SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL"; - } else if (controlType.equals ("Canvas") || controlType.equals ("Composite") || - controlType.equals ("Table") || controlType.equals ("StyledText") || - controlType.equals ("ToolBar") || controlType.equals ("Tree") || - controlType.equals ("List")) { - styleString = "SWT.BORDER"; - } else styleString = "SWT.NONE"; - /* Write out the control being declared */ - code.append ("\n\t\t" + controlType + " " + names [i] + - " = new " + controlType + " (shell, " + styleString + ");\n"); - /* Add items to those controls that need items */ - if (controlType.equals ("Combo") || controlType.equals ("List")) { - code.append ("\t\t" + names [i] + ".setItems (new String [] {\"Item 1\", \"Item 2\", \"Item 2\"});\n"); - } else if (controlType.equals ("Table")) { - code.append ("\t\t" + names [i] + ".setLinesVisible (true);\n"); - for (int j = 1; j < 3; j++) { - code.append ("\t\tTableItem tableItem" + j + " = new TableItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\ttableItem" + j + ".setText (\"Item" + j + "\");\n"); - } - } else if (controlType.equals ("Tree")) { - for (int j = 1; j < 3; j++) { - code.append ("\t\tTreeItem treeItem" + j + " = new TreeItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\ttreeItem" + j + ".setText (\"Item" + j + "\");\n"); - } - } else if (controlType.equals ("ToolBar")) { - for (int j = 1; j < 3; j++) { - code.append ("\t\tToolItem toolItem" + j + " = new ToolItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\ttoolItem" + j + ".setText (\"Item" + j + "\");\n"); - } - } else if (controlType.equals ("CoolBar")) { - code.append ("\t\tToolBar coolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n"); - code.append ("\t\tToolItem coolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); - code.append ("\t\tcoolToolItem.setText (\"Item 1\");\n"); - code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); - code.append ("\t\tcoolToolItem.setText (\"Item 2\");\n"); - code.append ("\t\tCoolItem coolItem1 = new CoolItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\tcoolItem1.setControl (coolToolBar);\n"); - code.append ("\t\tPoint size = coolToolBar.computeSize (SWT.DEFAULT, SWT.DEFAULT);\n"); - code.append ("\t\tcoolItem1.setSize (coolItem1.computeSize (size.x, size.y));\n"); - code.append ("\t\tcoolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n"); - code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); - code.append ("\t\tcoolToolItem.setText (\"Item 3\");\n"); - code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); - code.append ("\t\tcoolToolItem.setText (\"Item 4\");\n"); - code.append ("\t\tCoolItem coolItem2 = new CoolItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\tcoolItem2.setControl (coolToolBar);\n"); - code.append ("\t\tsize = coolToolBar.computeSize (SWT.DEFAULT, SWT.DEFAULT);\n"); - code.append ("\t\tcoolItem2.setSize (coolItem2.computeSize (size.x, size.y));\n"); - code.append ("\t\t" + names [i] + ".setSize (" + names [i] + ".computeSize (SWT.DEFAULT, SWT.DEFAULT));\n"); - } else if (controlType.equals ("ProgressBar")) { - code.append ("\t\t" + names [i] + ".setSelection (50);\n"); - } - /* Set text for those controls that support it */ - if (controlType.equals ("Button") || - controlType.equals ("Combo") || - controlType.equals ("Group") || - controlType.equals ("Label") || - controlType.equals ("StyledText") || - controlType.equals ("Text")) { - code.append ("\t\t" + names [i] + ".setText (\"" + names [i] + "\");\n"); - } - return code; - } - - /** - * Returns the layout data field names. - * Subclasses override this method. - */ - String [] getLayoutDataFieldNames () { - return new String [] {}; - } - - /** - * Gets the text for the tab folder item. - * Subclasses override this method. - */ - String getTabText () { - return ""; - } - - /** - * Refreshes the composite and draws all controls - * in the layout example. - */ - void refreshLayoutComposite () { - /* Remove children that are already layed out */ - children = layoutComposite.getChildren (); - for (int i = 0; i < children.length; i++) { - children [i].dispose (); - } - /* Add all children listed in the table */ - TableItem [] items = table.getItems (); - children = new Control [items.length]; - String [] itemValues = new String [] { - LayoutExample.getResourceString ("Item",new String [] {"1"}), - LayoutExample.getResourceString ("Item",new String [] {"2"}), - LayoutExample.getResourceString ("Item",new String [] {"3"})}; - for (int i = 0; i < items.length; i++) { - String control = items [i].getText (1); - if (control.equals ("Button")) { - Button button = new Button (layoutComposite, SWT.PUSH); - button.setText (LayoutExample.getResourceString ("Button_Index", new String [] {new Integer (i).toString ()})); - children [i] = button; - } else if (control.equals ("Canvas")) { - Canvas canvas = new Canvas (layoutComposite, SWT.BORDER); - children [i] = canvas; - } else if (control.equals ("Combo")) { - Combo combo = new Combo (layoutComposite, SWT.NONE); - combo.setItems (itemValues); - combo.setText (LayoutExample.getResourceString ("Combo_Index", new String [] {new Integer (i).toString ()})); - children [i] = combo; - } else if (control.equals ("Composite")) { - Composite composite = new Composite (layoutComposite, SWT.BORDER); - children [i] = composite; - } else if (control.equals ("CoolBar")) { - CoolBar coolBar = new CoolBar (layoutComposite, SWT.NONE); - ToolBar toolBar = new ToolBar (coolBar, SWT.BORDER); - ToolItem item = new ToolItem (toolBar, 0); - item.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); - item = new ToolItem (toolBar, 0); - item.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); - CoolItem coolItem1 = new CoolItem (coolBar, 0); - coolItem1.setControl (toolBar); - toolBar = new ToolBar (coolBar, SWT.BORDER); - item = new ToolItem (toolBar, 0); - item.setText (LayoutExample.getResourceString ("Item",new String [] {"3"})); - item = new ToolItem (toolBar, 0); - item.setText (LayoutExample.getResourceString ("Item",new String [] {"4"})); - CoolItem coolItem2 = new CoolItem (coolBar, 0); - coolItem2.setControl (toolBar); - Point size = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT); - coolItem1.setSize(coolItem1.computeSize (size.x, size.y)); - coolItem2.setSize(coolItem2.computeSize (size.x, size.y)); - coolBar.setSize(coolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT)); - children [i] = coolBar; - } else if (control.equals ("Group")) { - Group group = new Group (layoutComposite, SWT.NONE); - group.setText (LayoutExample.getResourceString ("Group_Index", new String [] {new Integer (i).toString ()})); - children [i] = group; - } else if (control.equals ("Label")) { - Label label = new Label (layoutComposite, SWT.NONE); - label.setText (LayoutExample.getResourceString ("Label_Index", new String [] {new Integer (i).toString ()})); - children [i] = label; - } else if (control.equals ("List")) { - List list = new List (layoutComposite, SWT.BORDER); - list.setItems (itemValues); - children [i] = list; - } else if (control.equals ("ProgressBar")) { - ProgressBar progress = new ProgressBar (layoutComposite, SWT.NONE); - progress.setSelection (50); - children [i] = progress; - } else if (control.equals ("Scale")) { - Scale scale = new Scale (layoutComposite, SWT.NONE); - children [i] = scale; - } else if (control.equals ("Slider")) { - Slider slider = new Slider (layoutComposite, SWT.NONE); - children [i] = slider; - } else if (control.equals ("StyledText")) { - StyledText styledText = new StyledText (layoutComposite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); - styledText.setText (LayoutExample.getResourceString ("StyledText_Index", new String [] {new Integer (i).toString ()})); - children [i] = styledText; - } else if (control.equals ("Table")) { - Table table = new Table (layoutComposite, SWT.BORDER); - table.setLinesVisible (true); - TableItem item1 = new TableItem (table, 0); - item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); - TableItem item2 = new TableItem (table, 0); - item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); - children [i] = table; - } else if (control.equals ("Text")) { - Text text = new Text (layoutComposite, SWT.BORDER); - text.setText (LayoutExample.getResourceString ("Text_Index", new String [] {new Integer (i).toString ()})); - children [i] = text; - } else if (control.equals ("ToolBar")) { - ToolBar toolBar = new ToolBar (layoutComposite, SWT.BORDER); - ToolItem item1 = new ToolItem (toolBar, 0); - item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); - ToolItem item2 = new ToolItem (toolBar, 0); - item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); - children [i] = toolBar; - } else { - Tree tree = new Tree (layoutComposite, SWT.BORDER); - TreeItem item1 = new TreeItem (tree, 0); - item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); - TreeItem item2 = new TreeItem (tree, 0); - item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); - children [i] = tree; - } - } - } - - /** - * Takes information from TableEditors and stores it. - * Subclasses override this method. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - } - - /** - * Sets the layout data for the children of the layout. - * Subclasses override this method. - */ - void setLayoutData () { - } - - /** - * Sets the state of the layout. - * Subclasses override this method. - */ - void setLayoutState () { - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java deleted file mode 100755 index fbab24c23b..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.texteditor; - - -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; - -public class Images { - - // Bitmap Images - public Image Bold; - public Image Red; - public Image Green; - public Image Blue; - public Image Erase; - - Image [] AllBitmaps; - -Images () { -} - -public void freeAll () { - for (int i=0; i<AllBitmaps.length; i++) AllBitmaps [i].dispose (); - AllBitmaps = null; -} - -Image createBitmapImage(Display display, String fileName) { - ImageData source = new ImageData(Images.class.getResourceAsStream(fileName+".bmp")); - ImageData mask = new ImageData(Images.class.getResourceAsStream(fileName+"_mask"+".bmp")); - return new Image (display, source, mask); -} - -public void loadAll (Display display) { - // Bitmap Images - Bold = createBitmapImage (display, "bold"); - Red = createBitmapImage (display, "red"); - Green = createBitmapImage (display, "green"); - Blue = createBitmapImage (display, "blue"); - Erase = createBitmapImage (display, "erase"); - - AllBitmaps = new Image [] { - Bold, - Red, - Green, - Blue, - Erase, - }; -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java deleted file mode 100755 index 1e55871502..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java +++ /dev/null @@ -1,348 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.examples.texteditor; - - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -import java.util.*; - -/** - */ -public class TextEditor { - Shell shell; - ToolBar toolBar; - StyledText text; - - Images images = new Images(); - Vector cachedStyles = new Vector(); - Color RED = null; - Color BLUE = null; - Color GREEN = null; - Font font = null; - - boolean isBold = false; - - ExtendedModifyListener extendedModifyListener; - static ResourceBundle resources = ResourceBundle.getBundle("examples_texteditor"); - -Menu createEditMenu() { - Menu bar = shell.getMenuBar (); - Menu menu = new Menu (bar); - - MenuItem item = new MenuItem (menu, SWT.PUSH); - item.setText (resources.getString("Cut_menuitem")); - item.setAccelerator(SWT.MOD1 + 'X'); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - handleCutCopy(); - text.cut(); - } - }); - - item = new MenuItem (menu, SWT.PUSH); - item.setText (resources.getString("Copy_menuitem")); - item.setAccelerator(SWT.MOD1 + 'C'); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - handleCutCopy(); - text.copy(); - } - }); - - item = new MenuItem (menu, SWT.PUSH); - item.setText (resources.getString("Paste_menuitem")); - item.setAccelerator(SWT.MOD1 + 'V'); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - text.paste(); - } - }); - - new MenuItem (menu, SWT.SEPARATOR); - - item = new MenuItem (menu, SWT.PUSH); - item.setText (resources.getString("Font_menuitem")); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - setFont(); - } - }); - return menu; -} - -Menu createFileMenu() { - Menu bar = shell.getMenuBar (); - Menu menu = new Menu (bar); - - MenuItem item = new MenuItem (menu, SWT.PUSH); - item.setText (resources.getString("Exit_menuitem")); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - shell.close (); - } - }); - - return menu; -} - -/* - * Set the text state to bold. - */ -void bold(boolean bold) { - isBold = bold; - Point sel = text.getSelectionRange(); - if ((sel != null) && (sel.y != 0)) { - StyleRange style; - int fontStyle = SWT.NORMAL; - if (isBold) fontStyle = SWT.BOLD; - style = new StyleRange(sel.x, sel.y, null, null, fontStyle); - text.setStyleRange(style); - } - text.setSelectionRange(sel.x + sel.y, 0); -} -/* - * Clear all style data for the selected text. - */ -void clear() { - Point sel = text.getSelectionRange(); - if ((sel != null) && (sel.y != 0)) { - StyleRange style; - style = new StyleRange(sel.x, sel.y, null, null, SWT.NORMAL); - text.setStyleRange(style); - } - text.setSelectionRange(sel.x + sel.y, 0); -} -/* - * Set the foreground color for the selected text. - */ -void fgColor(int color) { - Point sel = text.getSelectionRange(); - if ((sel == null) || (sel.y == 0)) return; - Color fg; - if (color == SWT.COLOR_RED) { - fg = RED; - } else if (color == SWT.COLOR_GREEN) { - fg = GREEN; - } else if (color == SWT.COLOR_BLUE) { - fg = BLUE; - } else { - fg = null; - } - StyleRange style; - for (int i = sel.x; i<sel.x+sel.y; i++) { - StyleRange range = text.getStyleRangeAtOffset(i); - if (range == null) {style = new StyleRange(i, 1, fg, null, SWT.NORMAL);} - else {style = new StyleRange(i, 1, fg, null, range.fontStyle);}; - text.setStyleRange(style); - } - text.setSelectionRange(sel.x + sel.y, 0); -} -void createMenuBar () { - Menu bar = new Menu (shell, SWT.BAR); - shell.setMenuBar (bar); - - MenuItem fileItem = new MenuItem (bar, SWT.CASCADE); - fileItem.setText (resources.getString("File_menuitem")); - fileItem.setMenu (createFileMenu ()); - - MenuItem editItem = new MenuItem (bar, SWT.CASCADE); - editItem.setText (resources.getString("Edit_menuitem")); - editItem.setMenu (createEditMenu ()); -} - -void createShell (Display display) { - shell = new Shell (display); - shell.setText (resources.getString("Window_title")); - images.loadAll (display); - GridLayout layout = new GridLayout(); - layout.numColumns = 1; - shell.setLayout(layout); - shell.addDisposeListener (new DisposeListener () { - public void widgetDisposed (DisposeEvent e) { - if (font != null) font.dispose(); - images.freeAll (); - RED.dispose(); - GREEN.dispose(); - BLUE.dispose(); - } - }); -} -void createStyledText() { - initializeColors(); - text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); - GridData spec = new GridData(); - spec.horizontalAlignment = GridData.FILL; - spec.grabExcessHorizontalSpace = true; - spec.verticalAlignment = GridData.FILL; - spec.grabExcessVerticalSpace = true; - text.setLayoutData(spec); - extendedModifyListener = new ExtendedModifyListener() { - public void modifyText(ExtendedModifyEvent e) { - handleExtendedModify(e); - } - }; - text.addExtendedModifyListener(extendedModifyListener); -} - -void createToolBar() { - toolBar = new ToolBar(shell, SWT.NULL); - - ToolItem item = new ToolItem(toolBar, SWT.CHECK); - item.setImage(images.Bold); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - bold(((ToolItem)event.widget).getSelection()); - } - }); - - item = new ToolItem(toolBar, SWT.SEPARATOR); - - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(images.Red); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - fgColor(SWT.COLOR_RED); - } - }); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(images.Green); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - fgColor(SWT.COLOR_GREEN); - } - }); - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(images.Blue); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - fgColor(SWT.COLOR_BLUE); - } - }); - - item = new ToolItem(toolBar, SWT.SEPARATOR); - - item = new ToolItem(toolBar, SWT.PUSH); - item.setImage(images.Erase); - item.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent event) { - clear(); - } - }); -} -void displayError(String msg) { - MessageBox box = new MessageBox(shell, SWT.ICON_ERROR); - box.setMessage(msg); - box.open(); -} -/* - * Cache the style information for text that has been cut or copied. - */ -void handleCutCopy() { - // Save the cut/copied style info so that during paste we will maintain - // the style information. Cut/copied text is put in the clipboard in - // RTF format, but is not pasted in RTF format. The other way to - // handle the pasting of styles would be to access the Clipboard directly and - // parse the RTF text. - cachedStyles = new Vector(); - Point sel = text.getSelectionRange(); - int startX = sel.x; - for (int i=sel.x; i<=sel.x+sel.y-1; i++) { - StyleRange style = text.getStyleRangeAtOffset(i); - if (style != null) { - style.start = style.start - startX; - if (!cachedStyles.isEmpty()) { - StyleRange lastStyle = (StyleRange)cachedStyles.lastElement(); - if (lastStyle.similarTo(style) && lastStyle.start + lastStyle.length == style.start) { - lastStyle.length++; - } else { - cachedStyles.addElement(style); - } - } else { - cachedStyles.addElement(style); - } - } - } -} -void handleExtendedModify(ExtendedModifyEvent event) { - if (event.length == 0) return; - StyleRange style; - if (event.length == 1 || text.getTextRange(event.start, event.length).equals(text.getLineDelimiter())) { - // Have the new text take on the style of the text to its right (during - // typing) if no style information is active. - int caretOffset = text.getCaretOffset(); - style = null; - if (caretOffset < text.getCharCount()) style = text.getStyleRangeAtOffset(caretOffset); - if (style != null) { - style.start = event.start; - style.length = event.length; - int fontStyle = SWT.NORMAL; - if (isBold) fontStyle = SWT.BOLD; - style.fontStyle = fontStyle; - text.setStyleRange(style); - } else if (isBold) { - StyleRange newStyle = new StyleRange(event.start, event.length, null, null, SWT.BOLD); - text.setStyleRange(newStyle); - } - } else { - // paste occurring, have text take on the styles it had when it was - // cut/copied - for (int i=0; i<cachedStyles.size(); i++) { - style = (StyleRange)cachedStyles.elementAt(i); - StyleRange newStyle = (StyleRange)style.clone(); - newStyle.start = style.start + event.start; - text.setStyleRange(newStyle); - } - } -} - -public static void main (String [] args) { - Display display = new Display (); - TextEditor example = new TextEditor (); - Shell shell = example.open (display); - while (!shell.isDisposed ()) - if (!display.readAndDispatch ()) display.sleep (); - display.dispose (); -} - -public Shell open (Display display) { - createShell (display); - createMenuBar (); - createToolBar (); - createStyledText (); - shell.setSize(500, 300); - shell.open (); - return shell; -} - -void setFont() { - FontDialog fontDialog = new FontDialog(shell); - fontDialog.setFontList((text.getFont()).getFontData()); - FontData fontData = fontDialog.open(); - if(fontData != null) { - if(font != null) - font.dispose(); - font = new Font(shell.getDisplay(), fontData); - text.setFont(font); - } -} - -void initializeColors() { - Display display = Display.getDefault(); - RED = new Color (display, new RGB(255,0,0)); - BLUE = new Color (display, new RGB(0,0,255)); - GREEN = new Color (display, new RGB(0,255,0)); -} -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp Binary files differdeleted file mode 100755 index 84c7ac9a46..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp Binary files differdeleted file mode 100755 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp Binary files differdeleted file mode 100755 index a3184bb26c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp Binary files differdeleted file mode 100755 index 382751efa3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp Binary files differdeleted file mode 100755 index 1d2ace7ee3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp Binary files differdeleted file mode 100755 index f6ab21e471..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp Binary files differdeleted file mode 100755 index cca023fd57..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp Binary files differdeleted file mode 100755 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp Binary files differdeleted file mode 100755 index 88c63be336..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp Binary files differdeleted file mode 100755 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp +++ /dev/null |