|
From: <jbo...@li...> - 2006-05-30 22:28:52
|
Author: szimano
Date: 2006-05-30 18:28:47 -0400 (Tue, 30 May 2006)
New Revision: 4501
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java
labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java
Log:
JBLAB-674 tags - multiple
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java 2006-05-30 21:41:26 UTC (rev 4500)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java 2006-05-30 22:28:47 UTC (rev 4501)
@@ -24,6 +24,7 @@
import java.util.Collections;
import java.util.Vector;
+import org.jboss.labs.tagme.gwt.client.TagMeClickListener;
import org.jboss.labs.tagme.gwt.client.TaggingService;
import org.jboss.labs.tagme.services.TagMeTagger;
import org.jboss.logging.Logger;
@@ -65,21 +66,30 @@
return vect;
}
- public void addTag(String user, String path, String clas, String tag) {
+ public boolean addTag(String user, String path, String clas, String tags) {
try {
TagMeTagger tagger = (TagMeTagger)Class.forName(clas).newInstance();
- tagger.addTag(user, path, tag);
- log.info("Tag added: User: "+user+" Path: "+path+" Tag: "+tag);
+ log.info("tags: "+ tags + "\nspliter: "+TagMeClickListener.TAG_SEP);
+ String[] tagsTable = tags.split(TagMeClickListener.TAG_SEP);
+
+ for (int i = 0; i < tagsTable.length; i++) {
+ tagger.addTag(user, path, tagsTable[i]);
+ }
+
+ return true;
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
+ return false;
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
+ return false;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
+ return false;
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java 2006-05-30 21:41:26 UTC (rev 4500)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java 2006-05-30 22:28:47 UTC (rev 4501)
@@ -24,14 +24,22 @@
import java.util.Vector;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
+import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
public class TagMeClickListener implements ClickListener {
+
+ public static final String TAG_SEP = ";&&tagMeSeparator&&;";
+
+ private static final String ADDING_TXT = "Adding tags";
+
private String path;
private String user;
@@ -39,24 +47,51 @@
private Vector textBoxes;
private String clas;
+
+ private Label info;
+
+ private Button button;
+
+ private Timer timer;
+
+ private TagMeShowPopupListener parent;
- public TagMeClickListener(String path, String user, String clas, Vector textBoxes) {
+ public TagMeClickListener(String path, String user, String clas, Vector textBoxes, Label info, TagMeShowPopupListener parent) {
this.path = path;
this.user = user;
this.textBoxes = textBoxes;
this.clas = clas;
+ this.info = info;
+ this.parent = parent;
}
public void onClick(Widget sender) {
TaggingServiceAsync tagging = (TaggingServiceAsync) GWT
.create(TaggingService.class);
+ this.button = (Button)sender;
+
ServiceDefTarget endpoint = (ServiceDefTarget) tagging;
endpoint.setServiceEntryPoint("/tagme-servlet/tag/");
+ info.setText(ADDING_TXT);
+
+ timer = new Timer() {
+
+ public void run() {
+ info.setText(info.getText() + ".");
+ }
+
+ };
+
+ timer.scheduleRepeating(1000);
+
AsyncCallback callback = new AsyncCallback() {
public void onSuccess(Object result) {
- Window.alert(result.toString());
+ timer.cancel();
+ button.setEnabled(true);
+ parent.refreshTags();
+ info.setText("Tags added");
}
public void onFailure(Throwable caught) {
@@ -64,9 +99,23 @@
}
};
- tagging.addTag(user, path, clas, ((TextBox) textBoxes.get(0)).getText(),
- callback);
+ button.setEnabled(false);
+
+ String tags = "";
+
+ for (int i = 0; i < textBoxes.size(); i++) {
+ String tag = ((TextBox)textBoxes.get(i)).getText();
+ if (tag != null && tag.length() > 0) {
+ if (tags.length() == 0) {
+ tags = tag;
+ }
+ else {
+ tags += TAG_SEP + tag;
+ }
+ }
+ }
+ tagging.addTag(user, path, clas, tags, callback);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-05-30 21:41:26 UTC (rev 4500)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java 2006-05-30 22:28:47 UTC (rev 4501)
@@ -30,6 +30,7 @@
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
@@ -37,36 +38,31 @@
public class TagMeShowPopupListener implements ClickListener {
+ private static final String TAGME_STYLE = "tagmePanel";
+
private String path;
private String user;
private String clas;
+
+ private Label info;
+
+ private FlexTable table;
public TagMeShowPopupListener(String path, String user, String clas) {
this.path = path;
this.user = user;
this.clas = clas;
}
-
- public void onClick(Widget sender) {
- VerticalPanel panel = new VerticalPanel();
-
- final FlexTable table = new FlexTable();
-
- panel.add(table);
-
- Vector textBoxes = new Vector();
-
- for (int i = 0; i < 3; i++) {
- TextBox box = new TextBox();
- textBoxes.add(box);
- panel.add(box);
- }
-
+
+ public void refreshTags() {
+
+ table.clear();
+
TaggingServiceAsync tagging = (TaggingServiceAsync) GWT
- .create(TaggingService.class);
-
+ .create(TaggingService.class);
+
ServiceDefTarget endpoint = (ServiceDefTarget) tagging;
endpoint.setServiceEntryPoint("/tagme-servlet/tag/");
@@ -88,12 +84,36 @@
// call AJAX methos, after that callback is going to be executed
tagging.getTags(path, clas, callback);
+ }
+ public void onClick(Widget sender) {
+ VerticalPanel panel = new VerticalPanel();
+
+ info = new Label();
+
+ panel.add(info);
+
+ table = new FlexTable();
+
+ panel.add(table);
+
+ Vector textBoxes = new Vector();
+
+ for (int i = 0; i < 3; i++) {
+ TextBox box = new TextBox();
+ textBoxes.add(box);
+ panel.add(box);
+ }
+
+ refreshTags();
+
panel.add(new Button("Save", new TagMeClickListener(path, user, clas,
- textBoxes)));
+ textBoxes, info, this)));
PopupPanel popUp = new PopupPanel(true);
+ popUp.setStyleName(TAGME_STYLE);
+
popUp.add(panel);
popUp.setPopupPosition(sender.getAbsoluteLeft(), sender.getAbsoluteTop());
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java 2006-05-30 21:41:26 UTC (rev 4500)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java 2006-05-30 22:28:47 UTC (rev 4501)
@@ -41,5 +41,5 @@
*/
public Vector getTags(String path, String clas);
- public void addTag(String user, String path, String clas, String tag);
+ public boolean addTag(String user, String path, String clas, String tags);
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java 2006-05-30 21:41:26 UTC (rev 4500)
+++ labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java 2006-05-30 22:28:47 UTC (rev 4501)
@@ -33,6 +33,6 @@
public interface TaggingServiceAsync {
public void getTags(String path, String clas, AsyncCallback callback);
- public void addTag(String user, String path, String clas, String tag,
+ public void addTag(String user, String path, String clas, String tags,
AsyncCallback callback);
}
|