X-Git-Url: http://secure.phpeclipse.com

diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/html/TableElementWizardPage.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/html/TableElementWizardPage.java
index cce7813..93b35ec 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/html/TableElementWizardPage.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/wizards/html/TableElementWizardPage.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TableElementWizardPage.java,v 1.1 2004-10-05 20:51:57 jsurfer Exp $
+ * $Id: TableElementWizardPage.java,v 1.2 2006-10-21 23:18:43 pombredanne Exp $
  * Copyright Narushima Hironori. All rights reserved.
  */
 package net.sourceforge.phpeclipse.wizards.html;
@@ -40,246 +40,251 @@ import org.xml.sax.SAXException;
  */
 public class TableElementWizardPage extends EditElementWizardPage {
 
-  final public static int COLUMNS_MAX = 32, ROWS_MAX = 256;
-
-  final static String[] expandStyleLabels = { "Flat", "Table", "Enumerate", };
-
-  TableElementModel model;
-
-  TableViewer viewer;
-
-  CellEditor[] editors;
-
-  Combo expandStyleCombo = null;
-
-  Text colsText, rowsText;
-
-  Button addButton, removeButton, upButton, downButton;
-
-  SelectionListener buttonListener = new SelectionListener() {
-    public void widgetSelected(SelectionEvent ev) {
-      Element e = getCurrentSelection();
-      if (ev.widget == addButton) {
-        model.insertNewRowBefore(e);
-      } else if (ev.widget == removeButton) {
-        model.removeRow(e);
-      } else if (ev.widget == upButton) {
-        model.move(e, -1);
-      } else if (ev.widget == downButton) {
-        model.move(e, 1);
-      }
-      refreshAll();
-    }
-
-    public void widgetDefaultSelected(SelectionEvent e) {
-    }
-  };
-
-  ModifyListener cellCountChangeListener = new ModifyListener() {
-    public void modifyText(ModifyEvent e) {
-      try {
-        if (e.widget == colsText) {
-          int cols = Integer.parseInt(colsText.getText());
-          if (cols < 1)
-            cols = 1;
-          if (cols > COLUMNS_MAX)
-            cols = COLUMNS_MAX;
-          model.setColumnCount(cols);
-        } else if (e.widget == rowsText) {
-          int rows = Integer.parseInt(rowsText.getText());
-          if (rows < 1)
-            rows = 1;
-          if (rows > ROWS_MAX)
-            rows = ROWS_MAX;
-          model.setRowCount(rows);
-        }
-        refreshAll();
-      } catch (NumberFormatException x) {
-      }
-    }
-  };
-
-  public TableElementWizardPage() {
-    super("TableElementWizardPage");
-    setTitle("Table");
-    setDescription("Edit table element and cells modifier.");
-  }
-
-  public String getPreviewText() {
-    if (model == null) {
-      initModel();
-    }
-    return (model != null) ? model.expandCodes() : null;
-  }
-
-  void initModel() {
-    String content = ((EditElementWizard) getWizard()).getSelection().getText().trim();
-    try {
-      model = new TableElementModel(content, getEditType() == NEW);
-    } catch (ParserConfigurationException e) {
-      PHPeclipsePlugin.log(e);
-    } catch (SAXException e) {
-      PHPeclipsePlugin.log(e);
-    } catch (IOException e) {
-      PHPeclipsePlugin.log(e);
-    }
-  }
-
-  protected void createChildControl(Composite parent) {
-    parent.setLayout(new GridLayout(2, false));
-
-    // table settings
-    viewer = new TableViewer(parent, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
-    refreshTableHeaderColumns();
-
-    viewer.setContentProvider(new TableElementContentProvider());
-    viewer.setLabelProvider(new TableElementLabelProvider());
-    viewer.setCellModifier(new TableElementCellModifier(new IPropertyChangeListener() {
-      public void propertyChange(PropertyChangeEvent event) {
-        refreshAll();
-      }
-    }));
-
-    viewer.setInput(model);
-    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-      public void selectionChanged(SelectionChangedEvent event) {
-        refreshButtonState();
-        refreshPreview();
-      }
-    });
-
-    Table table = viewer.getTable();
-    table.setLinesVisible(true);
-    table.setHeaderVisible(true);
-
-    GridData gd = new GridData(GridData.FILL_BOTH);
-    gd.verticalSpan = 2;
-    table.setLayoutData(gd);
-
-    // text input area setting
-    Composite textInputArea = new Composite(parent, SWT.NONE);
-    textInputArea.setLayout(new GridLayout(1, false));
-    textInputArea.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING));
-    rowsText = createNumInputText(textInputArea, "&Rows:");
-    colsText = createNumInputText(textInputArea, "&Columns:");
-
-    // button area.
-    Composite buttonArea = new Composite(parent, SWT.NONE);
-    buttonArea.setLayout(new GridLayout(1, false));
-    buttonArea.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_END));
-    addButton = createButton(buttonArea, "&Add");
-    removeButton = createButton(buttonArea, "&Remove");
-    upButton = createButton(buttonArea, "&Up");
-    downButton = createButton(buttonArea, "&Down");
-
-    // init state
-    TableColumn[] cols = table.getColumns();
-    for (int i = 0; i < cols.length; i++) {
-      cols[i].pack();
-    }
-    refreshTableLengthText();
-    refreshButtonState();
-  }
-
-  Button createButton(Composite parent, String text) {
-    Button button = new Button(parent, SWT.NONE);
-    button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-    button.setText(text);
-    button.addSelectionListener(buttonListener);
-    return button;
-  }
-
-  Text createNumInputText(Composite parent, String label) {
-    Label labe = new Label(parent, SWT.NONE);
-    labe.setText(label);
-
-    Text text = new Text(parent, SWT.BORDER);
-    text.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-    text.setTextLimit(2);
-    text.addVerifyListener(new NumVerifyListener());
-    text.addModifyListener(cellCountChangeListener);
-    return text;
-  }
-
-  void refreshAll() {
-    refreshTableHeaderColumns();
-    refreshTableLengthText();
-    refreshButtonState();
-    refreshPreview();
-    viewer.refresh();
-  }
-
-  void refreshTableHeaderColumns() {
-    if (model == null) {
-      initModel();
-    }
-
-    Table table = viewer.getTable();
-    TableColumn[] cols = table.getColumns();
-    CellEditor[] editors = viewer.getCellEditors();
-
-    String[] props = model.getColumnProperties();
-    viewer.setColumnProperties(props);
-    // modify cell length
-    if (props.length > cols.length) {
-      CellEditor[] newEditors = new CellEditor[props.length];
-      if (editors != null) {
-        System.arraycopy(editors, 0, newEditors, 0, editors.length);
-      }
-      for (int i = cols.length; i < props.length; i++) {
-        TableColumn col = new TableColumn(table, SWT.LEFT);
-        col.setText(TableElementModel.toColumnName(i));
-        newEditors[i] = new TextCellEditor(table);
-      }
-      viewer.setCellEditors(newEditors);
-    } else if (props.length < cols.length) {
-      for (int i = props.length; i < cols.length; i++) {
-        cols[i].dispose();
-        editors[i].dispose();
-      }
-      CellEditor[] newEditors = new CellEditor[props.length];
-      System.arraycopy(editors, 0, newEditors, 0, props.length);
-      viewer.setCellEditors(newEditors);
-    }
-
-    // adjust table fields.
-    viewer.refresh();
-    cols = table.getColumns();
-    for (int i = 0; i < cols.length; i++) {
-      cols[i].pack();
-    }
-  }
-
-  void refreshTableLengthText() {
-    String cols = String.valueOf(model.getColumnCount());
-    if (!cols.equals(colsText.getText())) {
-      colsText.setText(cols);
-    }
-    String rows = String.valueOf(model.getRowCount());
-    if (!rows.equals(rowsText.getText())) {
-      rowsText.setText(rows);
-    }
-  }
-
-  void refreshButtonState() {
-    Element e = getCurrentSelection();
-    boolean enable = (e != null);
-
-    removeButton.setEnabled(enable);
-    int currentIndex = -1;
-    Element[] rows = model.getRows();
-    for (int i = 0; i < rows.length; i++) {
-      if (rows[i].equals(e)) {
-        currentIndex = i;
-      }
-    }
-    upButton.setEnabled(enable && currentIndex > 0);
-    downButton.setEnabled(enable && currentIndex < rows.length - 1);
-  }
-
-  Element getCurrentSelection() {
-    IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
-    return (sel != null) ? (Element) sel.getFirstElement() : null;
-  }
+	final public static int COLUMNS_MAX = 32, ROWS_MAX = 256;
+
+	final static String[] expandStyleLabels = { "Flat", "Table", "Enumerate", };
+
+	TableElementModel model;
+
+	TableViewer viewer;
+
+	CellEditor[] editors;
+
+	Combo expandStyleCombo = null;
+
+	Text colsText, rowsText;
+
+	Button addButton, removeButton, upButton, downButton;
+
+	SelectionListener buttonListener = new SelectionListener() {
+		public void widgetSelected(SelectionEvent ev) {
+			Element e = getCurrentSelection();
+			if (ev.widget == addButton) {
+				model.insertNewRowBefore(e);
+			} else if (ev.widget == removeButton) {
+				model.removeRow(e);
+			} else if (ev.widget == upButton) {
+				model.move(e, -1);
+			} else if (ev.widget == downButton) {
+				model.move(e, 1);
+			}
+			refreshAll();
+		}
+
+		public void widgetDefaultSelected(SelectionEvent e) {
+		}
+	};
+
+	ModifyListener cellCountChangeListener = new ModifyListener() {
+		public void modifyText(ModifyEvent e) {
+			try {
+				if (e.widget == colsText) {
+					int cols = Integer.parseInt(colsText.getText());
+					if (cols < 1)
+						cols = 1;
+					if (cols > COLUMNS_MAX)
+						cols = COLUMNS_MAX;
+					model.setColumnCount(cols);
+				} else if (e.widget == rowsText) {
+					int rows = Integer.parseInt(rowsText.getText());
+					if (rows < 1)
+						rows = 1;
+					if (rows > ROWS_MAX)
+						rows = ROWS_MAX;
+					model.setRowCount(rows);
+				}
+				refreshAll();
+			} catch (NumberFormatException x) {
+			}
+		}
+	};
+
+	public TableElementWizardPage() {
+		super("TableElementWizardPage");
+		setTitle("Table");
+		setDescription("Edit table element and cells modifier.");
+	}
+
+	public String getPreviewText() {
+		if (model == null) {
+			initModel();
+		}
+		return (model != null) ? model.expandCodes() : null;
+	}
+
+	void initModel() {
+		String content = ((EditElementWizard) getWizard()).getSelection()
+				.getText().trim();
+		try {
+			model = new TableElementModel(content, getEditType() == NEW);
+		} catch (ParserConfigurationException e) {
+			PHPeclipsePlugin.log(e);
+		} catch (SAXException e) {
+			PHPeclipsePlugin.log(e);
+		} catch (IOException e) {
+			PHPeclipsePlugin.log(e);
+		}
+	}
+
+	protected void createChildControl(Composite parent) {
+		parent.setLayout(new GridLayout(2, false));
+
+		// table settings
+		viewer = new TableViewer(parent, SWT.SINGLE | SWT.FULL_SELECTION
+				| SWT.BORDER);
+		refreshTableHeaderColumns();
+
+		viewer.setContentProvider(new TableElementContentProvider());
+		viewer.setLabelProvider(new TableElementLabelProvider());
+		viewer.setCellModifier(new TableElementCellModifier(
+				new IPropertyChangeListener() {
+					public void propertyChange(PropertyChangeEvent event) {
+						refreshAll();
+					}
+				}));
+
+		viewer.setInput(model);
+		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				refreshButtonState();
+				refreshPreview();
+			}
+		});
+
+		Table table = viewer.getTable();
+		table.setLinesVisible(true);
+		table.setHeaderVisible(true);
+
+		GridData gd = new GridData(GridData.FILL_BOTH);
+		gd.verticalSpan = 2;
+		table.setLayoutData(gd);
+
+		// text input area setting
+		Composite textInputArea = new Composite(parent, SWT.NONE);
+		textInputArea.setLayout(new GridLayout(1, false));
+		textInputArea.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
+				| GridData.VERTICAL_ALIGN_BEGINNING));
+		rowsText = createNumInputText(textInputArea, "&Rows:");
+		colsText = createNumInputText(textInputArea, "&Columns:");
+
+		// button area.
+		Composite buttonArea = new Composite(parent, SWT.NONE);
+		buttonArea.setLayout(new GridLayout(1, false));
+		buttonArea.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
+				| GridData.VERTICAL_ALIGN_END));
+		addButton = createButton(buttonArea, "&Add");
+		removeButton = createButton(buttonArea, "&Remove");
+		upButton = createButton(buttonArea, "&Up");
+		downButton = createButton(buttonArea, "&Down");
+
+		// init state
+		TableColumn[] cols = table.getColumns();
+		for (int i = 0; i < cols.length; i++) {
+			cols[i].pack();
+		}
+		refreshTableLengthText();
+		refreshButtonState();
+	}
+
+	Button createButton(Composite parent, String text) {
+		Button button = new Button(parent, SWT.NONE);
+		button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
+		button.setText(text);
+		button.addSelectionListener(buttonListener);
+		return button;
+	}
+
+	Text createNumInputText(Composite parent, String label) {
+		Label labe = new Label(parent, SWT.NONE);
+		labe.setText(label);
+
+		Text text = new Text(parent, SWT.BORDER);
+		text.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
+		text.setTextLimit(2);
+		text.addVerifyListener(new NumVerifyListener());
+		text.addModifyListener(cellCountChangeListener);
+		return text;
+	}
+
+	void refreshAll() {
+		refreshTableHeaderColumns();
+		refreshTableLengthText();
+		refreshButtonState();
+		refreshPreview();
+		viewer.refresh();
+	}
+
+	void refreshTableHeaderColumns() {
+		if (model == null) {
+			initModel();
+		}
+
+		Table table = viewer.getTable();
+		TableColumn[] cols = table.getColumns();
+		CellEditor[] editors = viewer.getCellEditors();
+
+		String[] props = model.getColumnProperties();
+		viewer.setColumnProperties(props);
+		// modify cell length
+		if (props.length > cols.length) {
+			CellEditor[] newEditors = new CellEditor[props.length];
+			if (editors != null) {
+				System.arraycopy(editors, 0, newEditors, 0, editors.length);
+			}
+			for (int i = cols.length; i < props.length; i++) {
+				TableColumn col = new TableColumn(table, SWT.LEFT);
+				col.setText(TableElementModel.toColumnName(i));
+				newEditors[i] = new TextCellEditor(table);
+			}
+			viewer.setCellEditors(newEditors);
+		} else if (props.length < cols.length) {
+			for (int i = props.length; i < cols.length; i++) {
+				cols[i].dispose();
+				editors[i].dispose();
+			}
+			CellEditor[] newEditors = new CellEditor[props.length];
+			System.arraycopy(editors, 0, newEditors, 0, props.length);
+			viewer.setCellEditors(newEditors);
+		}
+
+		// adjust table fields.
+		viewer.refresh();
+		cols = table.getColumns();
+		for (int i = 0; i < cols.length; i++) {
+			cols[i].pack();
+		}
+	}
+
+	void refreshTableLengthText() {
+		String cols = String.valueOf(model.getColumnCount());
+		if (!cols.equals(colsText.getText())) {
+			colsText.setText(cols);
+		}
+		String rows = String.valueOf(model.getRowCount());
+		if (!rows.equals(rowsText.getText())) {
+			rowsText.setText(rows);
+		}
+	}
+
+	void refreshButtonState() {
+		Element e = getCurrentSelection();
+		boolean enable = (e != null);
+
+		removeButton.setEnabled(enable);
+		int currentIndex = -1;
+		Element[] rows = model.getRows();
+		for (int i = 0; i < rows.length; i++) {
+			if (rows[i].equals(e)) {
+				currentIndex = i;
+			}
+		}
+		upButton.setEnabled(enable && currentIndex > 0);
+		downButton.setEnabled(enable && currentIndex < rows.length - 1);
+	}
+
+	Element getCurrentSelection() {
+		IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
+		return (sel != null) ? (Element) sel.getFirstElement() : null;
+	}
 
 }
\ No newline at end of file