X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/JavaEditorPreferencePage.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/JavaEditorPreferencePage.java index 73543a2..61abec9 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/JavaEditorPreferencePage.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/JavaEditorPreferencePage.java @@ -40,6 +40,7 @@ import net.sourceforge.phpeclipse.preferences.ColorEditor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Preferences; +import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; @@ -49,12 +50,15 @@ import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.KeyEvent; +import org.eclipse.swt.events.KeyListener; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; @@ -271,9 +275,9 @@ public class JavaEditorPreferencePage extends PreferencePage implements IWorkben private Button fShowInVerticalRulerCheckBox; - // private Text fBrowserLikeLinksKeyModifierText; - // private Button fBrowserLikeLinksCheckBox; - // private StatusInfo fBrowserLikeLinksKeyModifierStatus; + private Text fBrowserLikeLinksKeyModifierText; + private Button fBrowserLikeLinksCheckBox; + private StatusInfo fBrowserLikeLinksKeyModifierStatus; // private Button fCompletionInsertsRadioButton; // private Button fCompletionOverwritesRadioButton; // private Button fStickyOccurrencesButton; @@ -1195,124 +1199,124 @@ public class JavaEditorPreferencePage extends PreferencePage implements IWorkben GridLayout layout = new GridLayout(); layout.numColumns = 2; composite.setLayout(layout); - // String text= - // PreferencesMessages.getString("JavaEditorPreferencePage.navigation.browserLikeLinks"); - // //$NON-NLS-1$ - // fBrowserLikeLinksCheckBox= addCheckBox(composite, text, - // PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS, 0); - // fBrowserLikeLinksCheckBox.addSelectionListener(new SelectionListener() { - // public void widgetSelected(SelectionEvent e) { - // boolean state= fBrowserLikeLinksCheckBox.getSelection(); - // fBrowserLikeLinksKeyModifierText.setEnabled(state); - // handleBrowserLikeLinksKeyModifierModified(); - // } - // public void widgetDefaultSelected(SelectionEvent e) { - // } - // }); - // Text field for modifier string - // text= - // PreferencesMessages.getString("JavaEditorPreferencePage.navigation.browserLikeLinksKeyModifier"); - // //$NON-NLS-1$ - // fBrowserLikeLinksKeyModifierText= addTextField(composite, text, - // PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER, 20, 0, - // false); - // fBrowserLikeLinksKeyModifierText.setTextLimit(Text.LIMIT); - // - // if - // (computeStateMask(fOverlayStore.getString(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER)) - // == -1) { - // // Fix possible illegal modifier string - // int stateMask= - // fOverlayStore.getInt(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK); - // if (stateMask == -1) - // fBrowserLikeLinksKeyModifierText.setText(""); //$NON-NLS-1$ - // else - // fBrowserLikeLinksKeyModifierText.setText(EditorUtility.getModifierString(stateMask)); - // } - // fBrowserLikeLinksKeyModifierText.addKeyListener(new KeyListener() { - // private boolean isModifierCandidate; - // public void keyPressed(KeyEvent e) { - // isModifierCandidate= e.keyCode > 0 && e.character == 0 && e.stateMask == - // 0; - // } - // - // public void keyReleased(KeyEvent e) { - // if (isModifierCandidate && e.stateMask > 0 && e.stateMask == e.stateMask - // && e.character == 0) {// && e.time -time < 1000) { - // String modifierString= fBrowserLikeLinksKeyModifierText.getText(); - // Point selection= fBrowserLikeLinksKeyModifierText.getSelection(); - // int i= selection.x - 1; - // while (i > -1 && Character.isWhitespace(modifierString.charAt(i))) { - // i--; - // } - // boolean needsPrefixDelimiter= i > -1 && - // !String.valueOf(modifierString.charAt(i)).equals(DELIMITER); - // - // i= selection.y; - // while (i < modifierString.length() && - // Character.isWhitespace(modifierString.charAt(i))) { - // i++; - // } - // boolean needsPostfixDelimiter= i < modifierString.length() && - // !String.valueOf(modifierString.charAt(i)).equals(DELIMITER); - // - // String insertString; - // - // if (needsPrefixDelimiter && needsPostfixDelimiter) - // insertString= - // PreferencesMessages.getFormattedString("JavaEditorPreferencePage.navigation.insertDelimiterAndModifierAndDelimiter", - // new String[] {Action.findModifierString(e.stateMask)}); //$NON-NLS-1$ - // else if (needsPrefixDelimiter) - // insertString= - // PreferencesMessages.getFormattedString("JavaEditorPreferencePage.navigation.insertDelimiterAndModifier", - // new String[] {Action.findModifierString(e.stateMask)}); //$NON-NLS-1$ - // else if (needsPostfixDelimiter) - // insertString= - // PreferencesMessages.getFormattedString("JavaEditorPreferencePage.navigation.insertModifierAndDelimiter", - // new String[] {Action.findModifierString(e.stateMask)}); //$NON-NLS-1$ - // else - // insertString= Action.findModifierString(e.stateMask); - // - // fBrowserLikeLinksKeyModifierText.insert(insertString); - // } - // } - // }); - // - // fBrowserLikeLinksKeyModifierText.addModifyListener(new ModifyListener() - // { - // public void modifyText(ModifyEvent e) { - // handleBrowserLikeLinksKeyModifierModified(); - // } - // }); + String text= + PreferencesMessages.getString("JavaEditorPreferencePage.navigation.browserLikeLinks"); + //$NON-NLS-1$ + fBrowserLikeLinksCheckBox= addCheckBox(composite, text, + PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS, 0); + fBrowserLikeLinksCheckBox.addSelectionListener(new SelectionListener() { + public void widgetSelected(SelectionEvent e) { + boolean state= fBrowserLikeLinksCheckBox.getSelection(); + fBrowserLikeLinksKeyModifierText.setEnabled(state); + handleBrowserLikeLinksKeyModifierModified(); + } + public void widgetDefaultSelected(SelectionEvent e) { + } + }); +// Text field for modifier string + text= + PreferencesMessages.getString("JavaEditorPreferencePage.navigation.browserLikeLinksKeyModifier"); + //$NON-NLS-1$ + fBrowserLikeLinksKeyModifierText= addTextField(composite, text, + PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER, 20, 0, + false); + fBrowserLikeLinksKeyModifierText.setTextLimit(Text.LIMIT); + + if + (computeStateMask(fOverlayStore.getString(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER)) + == -1) { + // Fix possible illegal modifier string + int stateMask= + fOverlayStore.getInt(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK); + if (stateMask == -1) + fBrowserLikeLinksKeyModifierText.setText(""); //$NON-NLS-1$ + else + fBrowserLikeLinksKeyModifierText.setText(EditorUtility.getModifierString(stateMask)); + } + fBrowserLikeLinksKeyModifierText.addKeyListener(new KeyListener() { + private boolean isModifierCandidate; + public void keyPressed(KeyEvent e) { + isModifierCandidate= e.keyCode > 0 && e.character == 0 && e.stateMask == + 0; + } + + public void keyReleased(KeyEvent e) { + if (isModifierCandidate && e.stateMask > 0 && e.stateMask == e.stateMask + && e.character == 0) {// && e.time -time < 1000) { + String modifierString= fBrowserLikeLinksKeyModifierText.getText(); + Point selection= fBrowserLikeLinksKeyModifierText.getSelection(); + int i= selection.x - 1; + while (i > -1 && Character.isWhitespace(modifierString.charAt(i))) { + i--; + } + boolean needsPrefixDelimiter= i > -1 && + !String.valueOf(modifierString.charAt(i)).equals(DELIMITER); + + i= selection.y; + while (i < modifierString.length() && + Character.isWhitespace(modifierString.charAt(i))) { + i++; + } + boolean needsPostfixDelimiter= i < modifierString.length() && + !String.valueOf(modifierString.charAt(i)).equals(DELIMITER); + + String insertString; + + if (needsPrefixDelimiter && needsPostfixDelimiter) + insertString= + PreferencesMessages.getFormattedString("JavaEditorPreferencePage.navigation.insertDelimiterAndModifierAndDelimiter", + new String[] {Action.findModifierString(e.stateMask)}); //$NON-NLS-1$ + else if (needsPrefixDelimiter) + insertString= + PreferencesMessages.getFormattedString("JavaEditorPreferencePage.navigation.insertDelimiterAndModifier", + new String[] {Action.findModifierString(e.stateMask)}); //$NON-NLS-1$ + else if (needsPostfixDelimiter) + insertString= + PreferencesMessages.getFormattedString("JavaEditorPreferencePage.navigation.insertModifierAndDelimiter", + new String[] {Action.findModifierString(e.stateMask)}); //$NON-NLS-1$ + else + insertString= Action.findModifierString(e.stateMask); + + fBrowserLikeLinksKeyModifierText.insert(insertString); + } + } + }); + + fBrowserLikeLinksKeyModifierText.addModifyListener(new ModifyListener() + { + public void modifyText(ModifyEvent e) { + handleBrowserLikeLinksKeyModifierModified(); + } + }); return composite; } private void handleBrowserLikeLinksKeyModifierModified() { - // String modifiers= fBrowserLikeLinksKeyModifierText.getText(); - // int stateMask= computeStateMask(modifiers); - // if (fBrowserLikeLinksCheckBox.getSelection() && (stateMask == -1 || - // (stateMask & SWT.SHIFT) != 0)) { - // if (stateMask == -1) - // fBrowserLikeLinksKeyModifierStatus= new StatusInfo(IStatus.ERROR, - // PreferencesMessages.getFormattedString("JavaEditorPreferencePage.navigation.modifierIsNotValid", - // modifiers)); //$NON-NLS-1$ - // else - // fBrowserLikeLinksKeyModifierStatus= new StatusInfo(IStatus.ERROR, - // PreferencesMessages.getString("JavaEditorPreferencePage.navigation.shiftIsDisabled")); - // //$NON-NLS-1$ - // setValid(false); - // StatusUtil.applyToStatusLine(this, fBrowserLikeLinksKeyModifierStatus); - // } else { - // fBrowserLikeLinksKeyModifierStatus= new StatusInfo(); - // updateStatus(fBrowserLikeLinksKeyModifierStatus); - // } + String modifiers= fBrowserLikeLinksKeyModifierText.getText(); + int stateMask= computeStateMask(modifiers); + if (fBrowserLikeLinksCheckBox.getSelection() && (stateMask == -1 || + (stateMask & SWT.SHIFT) != 0)) { + if (stateMask == -1) + fBrowserLikeLinksKeyModifierStatus= new StatusInfo(IStatus.ERROR, + PreferencesMessages.getFormattedString("JavaEditorPreferencePage.navigation.modifierIsNotValid", + modifiers)); //$NON-NLS-1$ + else + fBrowserLikeLinksKeyModifierStatus= new StatusInfo(IStatus.ERROR, + PreferencesMessages.getString("JavaEditorPreferencePage.navigation.shiftIsDisabled")); + //$NON-NLS-1$ + setValid(false); + StatusUtil.applyToStatusLine(this, fBrowserLikeLinksKeyModifierStatus); + } else { + fBrowserLikeLinksKeyModifierStatus= new StatusInfo(); + updateStatus(fBrowserLikeLinksKeyModifierStatus); + } } - // private IStatus getBrowserLikeLinksKeyModifierStatus() { - // if (fBrowserLikeLinksKeyModifierStatus == null) - // fBrowserLikeLinksKeyModifierStatus= new StatusInfo(); - // return fBrowserLikeLinksKeyModifierStatus; - // } + private IStatus getBrowserLikeLinksKeyModifierStatus() { + if (fBrowserLikeLinksKeyModifierStatus == null) + fBrowserLikeLinksKeyModifierStatus= new StatusInfo(); + return fBrowserLikeLinksKeyModifierStatus; + } /** * Computes the state mask for the given modifier string. * @@ -1369,10 +1373,10 @@ public class JavaEditorPreferencePage extends PreferencePage implements IWorkben //$NON-NLS-1$ fJavaEditorHoverConfigurationBlock = new JavaEditorHoverConfigurationBlock(this, fOverlayStore); item.setControl(fJavaEditorHoverConfigurationBlock.createControl(folder)); - // item= new TabItem(folder, SWT.NONE); - // item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.navigationTab.title")); + item = new TabItem(folder, SWT.NONE); + item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.navigationTab.title")); // //$NON-NLS-1$ - // item.setControl(createNavigationPage(folder)); + item.setControl(createNavigationPage(folder)); item = new TabItem(folder, SWT.NONE); item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.folding.title")); //$NON-NLS-1$ item.setControl(fFoldingConfigurationBlock.createControl(folder)); @@ -1467,7 +1471,7 @@ public class JavaEditorPreferencePage extends PreferencePage implements IWorkben // fCompletionInsertsRadioButton.setSelection(completionInserts); // fCompletionOverwritesRadioButton.setSelection(! completionInserts); // - // fBrowserLikeLinksKeyModifierText.setEnabled(fBrowserLikeLinksCheckBox.getSelection()); + fBrowserLikeLinksKeyModifierText.setEnabled(fBrowserLikeLinksCheckBox.getSelection()); // boolean markOccurrences= // fOverlayStore.getBoolean(PreferenceConstants.EDITOR_MARK_OCCURRENCES); // fStickyOccurrencesButton.setEnabled(markOccurrences); @@ -1505,8 +1509,8 @@ public class JavaEditorPreferencePage extends PreferencePage implements IWorkben public boolean performOk() { // fJavaEditorHoverConfigurationBlock.performOk(); fFoldingConfigurationBlock.performOk(); - // fOverlayStore.setValue(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK, - // computeStateMask(fBrowserLikeLinksKeyModifierText.getText())); + fOverlayStore.setValue(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK, + computeStateMask(fBrowserLikeLinksKeyModifierText.getText())); fOverlayStore.propagate(); PHPeclipsePlugin.getDefault().savePluginPreferences(); return true;