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); } |