/*
- * $Id: EditElementWizardPage.java,v 1.1 2004-10-05 20:51:57 jsurfer Exp $
+ * $Id: EditElementWizardPage.java,v 1.2 2006-10-21 23:18:43 pombredanne Exp $
* Copyright Narushima Hironori. All rights reserved.
*/
package net.sourceforge.phpeclipse.wizards.html;
/**
*
- *
+ *
*/
-public abstract class EditElementWizardPage extends WizardPage implements IPreviewer {
-
- final public static int NEW = 0, MODIFY = 1;
-
- private static DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
-
- Composite extendComp;
-
- Text preview;
-
- private String elementName = null;
-
- int editType = NEW;
-
- protected EditElementWizardPage(String pageName) {
- super(pageName);
- }
-
- public void createControl(Composite parent) {
- Composite base = new Composite(parent, SWT.NONE);
- setControl(base);
- base.setLayout(new GridLayout(1, false));
-
- // create child control.
- Composite childControlBase = new Composite(base, SWT.NONE);
- childControlBase.setLayoutData(new GridData(GridData.FILL_BOTH));
- try {
- createChildControl(childControlBase);
- } catch (CoreException e) {
- PHPeclipsePlugin.log(e);
- return;
- }
-
- // preview components.
- Composite previewBase = new Composite(base, SWT.NONE);
-
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- previewBase.setLayoutData(gd);
- previewBase.setLayout(new GridLayout(1, false));
-
- Label labe = new Label(previewBase, SWT.NONE);
- labe.setText("Preview:");
- gd = new GridData(GridData.FILL_HORIZONTAL);
- labe.setLayoutData(gd);
-
- preview = new Text(previewBase, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY | SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL);
- gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.widthHint = 0;
- gd.heightHint = preview.getLineHeight() * 4;
- preview.setLayoutData(gd);
-
- refreshPreview();
- }
-
- abstract protected void createChildControl(Composite parent) throws CoreException;
-
- public abstract String getPreviewText();
-
- public void refreshPreview() {
- if (preview != null) {
- String text = getPreviewText();
- preview.setText(text == null ? "" : text);
- }
- }
-
- public String getElementName() {
- return elementName;
- }
-
- public void setElementName(String string) {
- elementName = string;
- }
-
- protected IFile getEditFile() {
- IFile file = null;
- IWizard wiz = getWizard();
- if (wiz instanceof EditElementWizard) {
- file = ((EditElementWizard) wiz).getCurrentEditFile();
- }
- return file;
- }
-
- protected void performFinish() {
- EditElementWizard wiz = (EditElementWizard) getWizard();
- ITextSelection sel = wiz.getSelection();
- IDocument doc = wiz.getDocument();
- int offset = sel.getOffset();
- try {
- doc.replace(offset, sel.getLength(), getPreviewText());
- } catch (BadLocationException e) {
- PHPeclipsePlugin.log(e);
- }
- int index = doc.get().indexOf('>', offset);
- if (index != -1) {
- wiz.setSelection(new TextSelection(index + 1, 0));
- }
- }
-
- /**
- * Returns edit type.
- */
- public int getEditType() {
- return editType;
- }
-
- /**
- * Sets edit type that types are EditElementWizardPage.NEW, EditElementWizardPage.MODIFY. Default value is NEW.
- */
- public void setEditType(int i) {
- editType = i;
- }
-
- protected String getSelectionText() {
- return ((EditElementWizard) getWizard()).getSelection().getText();
- }
-
- protected Element getParsedSelectionText() {
- String selText = getSelectionText();
- try {
- InputSource source = new InputSource(new StringReader(selText));
- Document doc = docBuilderFactory.newDocumentBuilder().parse(source);
- return doc.getDocumentElement();
- } catch (SAXException e) {
- } catch (IOException e) {
- } catch (ParserConfigurationException e) {
- }
- return null;
-
- }
-
- protected static String chooseContent(String text) {
- int b = -1, e = -1, len = text.length();
- for (int i = 0; i < len; i++) {
- if (text.charAt(i) == '>') {
- b = i + 1;
- break;
- }
- }
- for (int i = len - 1; i >= 0; i--) {
- if (text.charAt(i) == '<') {
- e = i;
- break;
- }
- }
- return (b != -1 && e != -1 && b < len && e < len) ? text.substring(b, e) : "";
-
- }
+public abstract class EditElementWizardPage extends WizardPage implements
+ IPreviewer {
+
+ final public static int NEW = 0, MODIFY = 1;
+
+ private static DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
+ .newInstance();
+
+ Composite extendComp;
+
+ Text preview;
+
+ private String elementName = null;
+
+ int editType = NEW;
+
+ protected EditElementWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ public void createControl(Composite parent) {
+ Composite base = new Composite(parent, SWT.NONE);
+ setControl(base);
+ base.setLayout(new GridLayout(1, false));
+
+ // create child control.
+ Composite childControlBase = new Composite(base, SWT.NONE);
+ childControlBase.setLayoutData(new GridData(GridData.FILL_BOTH));
+ try {
+ createChildControl(childControlBase);
+ } catch (CoreException e) {
+ PHPeclipsePlugin.log(e);
+ return;
+ }
+
+ // preview components.
+ Composite previewBase = new Composite(base, SWT.NONE);
+
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ previewBase.setLayoutData(gd);
+ previewBase.setLayout(new GridLayout(1, false));
+
+ Label labe = new Label(previewBase, SWT.NONE);
+ labe.setText("Preview:");
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ labe.setLayoutData(gd);
+
+ preview = new Text(previewBase, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY
+ | SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.widthHint = 0;
+ gd.heightHint = preview.getLineHeight() * 4;
+ preview.setLayoutData(gd);
+
+ refreshPreview();
+ }
+
+ abstract protected void createChildControl(Composite parent)
+ throws CoreException;
+
+ public abstract String getPreviewText();
+
+ public void refreshPreview() {
+ if (preview != null) {
+ String text = getPreviewText();
+ preview.setText(text == null ? "" : text);
+ }
+ }
+
+ public String getElementName() {
+ return elementName;
+ }
+
+ public void setElementName(String string) {
+ elementName = string;
+ }
+
+ protected IFile getEditFile() {
+ IFile file = null;
+ IWizard wiz = getWizard();
+ if (wiz instanceof EditElementWizard) {
+ file = ((EditElementWizard) wiz).getCurrentEditFile();
+ }
+ return file;
+ }
+
+ protected void performFinish() {
+ EditElementWizard wiz = (EditElementWizard) getWizard();
+ ITextSelection sel = wiz.getSelection();
+ IDocument doc = wiz.getDocument();
+ int offset = sel.getOffset();
+ try {
+ doc.replace(offset, sel.getLength(), getPreviewText());
+ } catch (BadLocationException e) {
+ PHPeclipsePlugin.log(e);
+ }
+ int index = doc.get().indexOf('>', offset);
+ if (index != -1) {
+ wiz.setSelection(new TextSelection(index + 1, 0));
+ }
+ }
+
+ /**
+ * Returns edit type.
+ */
+ public int getEditType() {
+ return editType;
+ }
+
+ /**
+ * Sets edit type that types are EditElementWizardPage.NEW,
+ * EditElementWizardPage.MODIFY. Default value is NEW.
+ */
+ public void setEditType(int i) {
+ editType = i;
+ }
+
+ protected String getSelectionText() {
+ return ((EditElementWizard) getWizard()).getSelection().getText();
+ }
+
+ protected Element getParsedSelectionText() {
+ String selText = getSelectionText();
+ try {
+ InputSource source = new InputSource(new StringReader(selText));
+ Document doc = docBuilderFactory.newDocumentBuilder().parse(source);
+ return doc.getDocumentElement();
+ } catch (SAXException e) {
+ } catch (IOException e) {
+ } catch (ParserConfigurationException e) {
+ }
+ return null;
+
+ }
+
+ protected static String chooseContent(String text) {
+ int b = -1, e = -1, len = text.length();
+ for (int i = 0; i < len; i++) {
+ if (text.charAt(i) == '>') {
+ b = i + 1;
+ break;
+ }
+ }
+ for (int i = len - 1; i >= 0; i--) {
+ if (text.charAt(i) == '<') {
+ e = i;
+ break;
+ }
+ }
+ return (b != -1 && e != -1 && b < len && e < len) ? text
+ .substring(b, e) : "";
+
+ }
}
\ No newline at end of file