fNameText.addModifyListener(listener);
	protected Control createDialogArea(Composite ancestor) {		Composite parent= new Composite(ancestor, SWT.NONE);		GridLayout layout= new GridLayout();		layout.numColumns= 2;		parent.setLayout(layout);		parent.setLayoutData(new GridData(GridData.FILL_BOTH));				ModifyListener listener= new ModifyListener() {			public void modifyText(ModifyEvent e) {				doTextWidgetChanged(e.widget);			}		};				if (fIsNameModifiable) {			createLabel(parent, PreferencesMessages.getString("EditTemplateDialog.name")); //$NON-NLS-1$							Composite composite= new Composite(parent, SWT.NONE);			composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));			layout= new GridLayout();					layout.numColumns= 3;			layout.marginWidth= 0;			layout.marginHeight= 0;			composite.setLayout(layout);			fNameText= createText(composite);						fNameText.addModifyListener(listener);			createLabel(composite, PreferencesMessages.getString("EditTemplateDialog.context")); //$NON-NLS-1$					fContextCombo= new Combo(composite, SWT.READ_ONLY);				for (int i= 0; i < fContextTypes.length; i++) {				fContextCombo.add(fContextTypes[i][1]);			}				fContextCombo.addModifyListener(listener);		}				createLabel(parent, PreferencesMessages.getString("EditTemplateDialog.description")); //$NON-NLS-1$						int descFlags= fIsNameModifiable ? SWT.BORDER : SWT.BORDER | SWT.READ_ONLY;		fDescriptionText= new Text(parent, descFlags );		fDescriptionText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));					fDescriptionText.addModifyListener(listener);		Label patternLabel= createLabel(parent, PreferencesMessages.getString("EditTemplateDialog.pattern")); //$NON-NLS-1$		patternLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));		fPatternEditor= createEditor(parent);				Label filler= new Label(parent, SWT.NONE);				filler.setLayoutData(new GridData());				Composite composite= new Composite(parent, SWT.NONE);		layout= new GridLayout();				layout.marginWidth= 0;		layout.marginHeight= 0;		composite.setLayout(layout);				composite.setLayoutData(new GridData());				fInsertVariableButton= new Button(composite, SWT.NONE);		fInsertVariableButton.setLayoutData(getButtonGridData(fInsertVariableButton));		fInsertVariableButton.setText(PreferencesMessages.getString("EditTemplateDialog.insert.variable")); //$NON-NLS-1$		fInsertVariableButton.addSelectionListener(new SelectionListener() {			public void widgetSelected(SelectionEvent e) {				fPatternEditor.getTextWidget().setFocus();				fPatternEditor.doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);						}			public void widgetDefaultSelected(SelectionEvent e) {}		});		fDescriptionText.setText(fTemplate.getDescription());		if (fIsNameModifiable) {			fNameText.setText(fTemplate.getName());			fContextCombo.select(getIndex(fTemplate.getContextTypeId()));		} else {			fPatternEditor.getControl().setFocus();		}		initializeActions();		applyDialogFont(parent);		return composite;	}