You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by ta...@apache.org on 2009/01/01 06:59:51 UTC
svn commit: r730512 - in
/incubator/click/trunk/tools/eclipse/net.sf.clickide: ./
src/net/sf/clickide/ src/net/sf/clickide/ui/actions/
src/net/sf/clickide/ui/editor/
Author: takezoe
Date: Wed Dec 31 21:59:51 2008
New Revision: 730512
URL: http://svn.apache.org/viewvc?rev=730512&view=rev
Log:
Toggle Comment Action
Added:
incubator/click/trunk/tools/eclipse/net.sf.clickide/memo.txt
incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/actions/ToggleCommentAction.java
incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditorActionContributor.java
Modified:
incubator/click/trunk/tools/eclipse/net.sf.clickide/plugin.xml
incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.java
incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.properties
incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin_ja.properties
incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditor.java
Added: incubator/click/trunk/tools/eclipse/net.sf.clickide/memo.txt
URL: http://svn.apache.org/viewvc/incubator/click/trunk/tools/eclipse/net.sf.clickide/memo.txt?rev=730512&view=auto
==============================================================================
--- incubator/click/trunk/tools/eclipse/net.sf.clickide/memo.txt (added)
+++ incubator/click/trunk/tools/eclipse/net.sf.clickide/memo.txt Wed Dec 31 21:59:51 2008
@@ -0,0 +1,5 @@
+ClickIDE Development Memo
+--
+2.1.1
+
+ * Toggle Comment action (CTRL + /) in the Template Editor.
\ No newline at end of file
Modified: incubator/click/trunk/tools/eclipse/net.sf.clickide/plugin.xml
URL: http://svn.apache.org/viewvc/incubator/click/trunk/tools/eclipse/net.sf.clickide/plugin.xml?rev=730512&r1=730511&r2=730512&view=diff
==============================================================================
--- incubator/click/trunk/tools/eclipse/net.sf.clickide/plugin.xml (original)
+++ incubator/click/trunk/tools/eclipse/net.sf.clickide/plugin.xml Wed Dec 31 21:59:51 2008
@@ -87,7 +87,7 @@
</editor>
<editor
class="net.sf.clickide.ui.editor.TemplateEditor"
- contributorClass="org.eclipse.wst.html.ui.internal.edit.ui.ActionContributorHTML"
+ contributorClass="net.sf.clickide.ui.editor.TemplateEditorActionContributor"
default="true"
extensions="htm"
icon="icons/velocity.gif"
Modified: incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.java?rev=730512&r1=730511&r2=730512&view=diff
==============================================================================
--- incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.java (original)
+++ incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.java Wed Dec 31 21:59:51 2008
@@ -90,6 +90,10 @@
configProviders.add(new DefaultClickConfigurationProvider());
}
+ public ResourceBundle getResourceBundle(){
+ return this.resource;
+ }
+
private static List loadContributedClasses(String extPointId, String elementName){
List result = new ArrayList();
try {
Modified: incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.properties
URL: http://svn.apache.org/viewvc/incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.properties?rev=730512&r1=730511&r2=730512&view=diff
==============================================================================
--- incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.properties (original)
+++ incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin.properties Wed Dec 31 21:59:51 2008
@@ -40,6 +40,7 @@
action.add=&Add
action.edit=&Edit
action.remove=&Remove
+action.toggleComment=Toggle Comment
# for wizards
wizard.newPage.title=New Click Page
Modified: incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin_ja.properties
URL: http://svn.apache.org/viewvc/incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin_ja.properties?rev=730512&r1=730511&r2=730512&view=diff
==============================================================================
--- incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin_ja.properties (original)
+++ incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ClickPlugin_ja.properties Wed Dec 31 21:59:51 2008
@@ -40,6 +40,7 @@
action.add=\u8ffd\u52a0(&A)
action.edit=\u7de8\u96c6(&E)
action.remove=\u524a\u9664(&R)
+action.toggleComment=\u30b3\u30e1\u30f3\u30c8\u306e\u5207\u308a\u66ff\u3048
# for wizards
wizard.newPage.title=\u65b0\u898fClick\u30da\u30fc\u30b8
Added: incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/actions/ToggleCommentAction.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/actions/ToggleCommentAction.java?rev=730512&view=auto
==============================================================================
--- incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/actions/ToggleCommentAction.java (added)
+++ incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/actions/ToggleCommentAction.java Wed Dec 31 21:59:51 2008
@@ -0,0 +1,52 @@
+package net.sf.clickide.ui.actions;
+
+import net.sf.clickide.ClickPlugin;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+/**
+ *
+ * @author Naoki Takezoe
+ */
+public class ToggleCommentAction extends Action {
+
+ private ITextEditor editor;
+
+ public ToggleCommentAction(ITextEditor editor) {
+ super(ClickPlugin.getString("action.toggleComment"));
+ this.editor = editor;
+ setId(ToggleCommentAction.class.getName());
+ setActionDefinitionId(ToggleCommentAction.class.getName());
+ setAccelerator(SWT.CTRL | '/');
+ }
+
+ public void run() {
+ ITextSelection sel = (ITextSelection) editor.getSelectionProvider().getSelection();
+ IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput());
+
+ try {
+ int offset = doc.getLineOffset(sel.getStartLine());
+ String text = doc.get(offset, sel.getLength() + (sel.getOffset() - offset));
+
+ if(text.startsWith("##")){
+ text = text.replaceAll("(^|\r\n|\r|\n)##", "$1");
+ } else {
+ text = "##" + text.replaceAll("(\r\n|\r|\n)", "$1##");
+ if(text.endsWith("##")){
+ text = text.substring(0, text.length() - 2);
+ }
+ }
+
+ doc.replace(offset, sel.getLength() + (sel.getOffset() - offset), text);
+
+ } catch (BadLocationException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
Modified: incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditor.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditor.java?rev=730512&r1=730511&r2=730512&view=diff
==============================================================================
--- incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditor.java (original)
+++ incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditor.java Wed Dec 31 21:59:51 2008
@@ -1,20 +1,22 @@
package net.sf.clickide.ui.editor;
import net.sf.clickide.core.validator.TemplateValidator;
+import net.sf.clickide.ui.actions.ToggleCommentAction;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
import org.eclipse.wst.sse.ui.StructuredTextEditor;
/**
* The editor for page templates which uses Velocity.
* <p>
- * This editor extends WTP HTML editor and provides
+ * This editor extends WTP HTML editor and provides
* some new features for Velocity.
- *
+ *
* <ul>
* <li>Code completion for Velocity directives and the $format object</li>
* <li>Velocity syntax validation by {@link TemplateValidator}</li>
@@ -22,33 +24,38 @@
* <li>Code completion for the Page public fields as variables</li>
* <li>TODO Code completion for the variables which declared by the #set directive</li>
* </ul>
- *
+ *
* @author Naoki Takezoe
*/
public class TemplateEditor extends StructuredTextEditor {
- public void createPartControl(Composite parent) {
-// setSourceViewerConfiguration(new TemplateEditorConfiguration());
- super.createPartControl(parent);
+ protected void createActions() {
+ super.createActions();
+ setAction(ToggleCommentAction.class.getName(), new ToggleCommentAction(this));
+ }
+
+ protected void addContextMenuActions(IMenuManager menu){
+ super.addContextMenuActions(menu);
+ addAction(menu, ITextEditorActionConstants.GROUP_EDIT, ToggleCommentAction.class.getName());
}
protected void doSetInput(IEditorInput input) throws CoreException {
super.doSetInput(input);
-
+
setSourceViewerConfiguration(new TemplateEditorConfiguration());
-
+
TemplateEditorConfiguration config
= (TemplateEditorConfiguration)getSourceViewerConfiguration();
IContentAssistProcessor[] processors
= config.getContentAssistProcessors(null, null);
TemplateContentAssistProcessor processor
= (TemplateContentAssistProcessor)processors[0];
-
+
if(input instanceof IFileEditorInput){
processor.setFile(((IFileEditorInput)input).getFile());
} else {
processor.setFile(null);
}
}
-
+
}
Added: incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditorActionContributor.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditorActionContributor.java?rev=730512&view=auto
==============================================================================
--- incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditorActionContributor.java (added)
+++ incubator/click/trunk/tools/eclipse/net.sf.clickide/src/net/sf/clickide/ui/editor/TemplateEditorActionContributor.java Wed Dec 31 21:59:51 2008
@@ -0,0 +1,74 @@
+package net.sf.clickide.ui.editor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.clickide.ClickPlugin;
+import net.sf.clickide.ui.actions.ToggleCommentAction;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.ui.texteditor.RetargetTextEditorAction;
+import org.eclipse.wst.html.ui.internal.edit.ui.ActionContributorHTML;
+
+public class TemplateEditorActionContributor extends ActionContributorHTML {
+
+ private List actionIds = new ArrayList();
+ private List actions = new ArrayList();
+
+ public TemplateEditorActionContributor(){
+ actionIds.add(ToggleCommentAction.class.getName());
+ }
+
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ doSetActiveEditor(part);
+ }
+
+ private void doSetActiveEditor(IEditorPart part) {
+ ITextEditor textEditor= null;
+ if (part instanceof ITextEditor){
+ textEditor = (ITextEditor) part;
+ }
+ if(textEditor!=null){
+ for(int i=0;i<this.actions.size();i++){
+ RetargetTextEditorAction action = (RetargetTextEditorAction) actions.get(i);
+ IAction targetAction = textEditor.getAction((String) actionIds.get(i));
+ if(targetAction!=null){
+ action.setAccelerator(targetAction.getAccelerator());
+ action.setAction(targetAction);
+ } else {
+ action.setAccelerator(SWT.NULL);
+ action.setAction(null);
+ }
+ }
+ }
+ }
+
+ public void init(IActionBars bars) {
+ super.init(bars);
+
+ IMenuManager menuManager = bars.getMenuManager();
+ IMenuManager editMenu = menuManager.findMenuUsingPath("edit");
+ if(editMenu!=null){
+ editMenu.insertBefore("additions", new Separator("clickide"));
+
+ if (editMenu != null) {
+ for(int i=0;i<actionIds.size();i++){
+ RetargetTextEditorAction action = new RetargetTextEditorAction(
+ ClickPlugin.getDefault().getResourceBundle(), null);
+ this.actions.add(action);
+ editMenu.appendToGroup("clickide", action);
+ }
+ }
+ }
+ }
+
+
+
+}