kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
June 2011
- 3 participants
- 40 discussions
Author: ecarrerasg
Date: 2011-06-14 20:51:42 +0200 (Tue, 14 Jun 2011)
New Revision: 1405
Modified:
donate/src/cc/kune/sandbox/donate/client/Donate.java
Log:
Changes to GWT
Modified: donate/src/cc/kune/sandbox/donate/client/Donate.java
===================================================================
--- donate/src/cc/kune/sandbox/donate/client/Donate.java 2011-06-14 11:20:43 UTC (rev 1404)
+++ donate/src/cc/kune/sandbox/donate/client/Donate.java 2011-06-14 18:51:42 UTC (rev 1405)
@@ -1,72 +1,142 @@
package cc.kune.sandbox.donate.client;
import com.google.gwt.core.client.EntryPoint;
-import com.google.gwt.user.client.ui.FormPanel;
+import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Hidden;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.HTMLPanel;
+import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.TextBoxBase;
-import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.FormPanel;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.event.dom.client.BlurHandler;
+import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.FocusHandler;
import com.google.gwt.event.dom.client.FocusEvent;
-import com.google.gwt.event.dom.client.BlurHandler;
-import com.google.gwt.event.dom.client.BlurEvent;
/**
+ * Entry point classes define <code>onModuimport com.google.gwt.user.client.ui.VerticalPanel;
+
+/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Donate implements EntryPoint {
- //Definicion de variables
- private TextBox txtbxOtherValue = new TextBox(); //TextBox otro valor EUROS
- private TextBox txtbxOtherValueDolar = new TextBox();
- private String sDefaultValue = "other value"; //Valor por defecto
+ //Cons
+ private final String sDefaultValue = "other value";
+ private final String sDefaultTitle = "Type other value and press Enter";
+
+ //Definition of variables
+ private TextBox txtbxOtherValueEUR = new TextBox();
+ private TextBox txtbxOtherValueDollar = new TextBox();
+
@SuppressWarnings("deprecation")
public void onModuleLoad() {
RootPanel rootPanel = RootPanel.get();
+ rootPanel.setHeight("100%");
+ //Parent div
HTMLPanel divEntries = new HTMLPanel("");
divEntries.setStyleName("entries");
rootPanel.add(divEntries, 10, 10);
+ //Child empty div
HTMLPanel divRightedit = new HTMLPanel("");
divRightedit.setStyleName("rightedit");
divEntries.add(divRightedit);
-
+ //Child content div
HTMLPanel divPost = new HTMLPanel("");
divPost.setStyleName("post");
divEntries.add(divPost);
- HTML contenidoDivPost = new HTML(getParrafo(null) + getCabecera("Donate to comunes", 2)+
- getParrafo("Comunes is a non-profit organization dedicated to " +
- "encourage the commons, those goods collectively owned by everybody, " +
- "and also serves as an umbrella for other related initiatives. We rely " +
- "on the generous support of people like you and other collectives to " +
- "help us continue the work we do.") + getParrafo(null) +
- getCabecera("Regular donation per month (the most necessary for us)", 3) +
- getParrafo(null), true);
- contenidoDivPost.setStyleName("textoPost");
+ HTML divTitle = new HTML("Donate to Comunes", true);
+ divPost.add(divTitle);
+ divTitle.setStyleName("title");
- divPost.add(contenidoDivPost);
+ HTML divIntro = new HTML("Comunes is a non-profit organization dedicated to encourage the commons, those goods collectively owned by everybody, and also serves as an umbrella for other related initiatives. We rely on the generous support of people like you and other collectives to help us continue the work we do.", true);
+ divIntro.setStyleName("intro");
+ divPost.add(divIntro);
- //Opciones para donaciones en Euros
- HTMLPanel pnListaEuro = new HTMLPanel("");
- pnListaEuro.setStyleName("p0");
+ HTML divTitleRegular = new HTML("Regular donation per month (the most necessary for us)", true);
+ divTitleRegular.setStyleName("titleRegular");
+ divPost.add(divTitleRegular);
- HTML divListaEUR = new HTML("<ul class='blue'>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>10 €/month</span></a></li> " +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>15 €/month</span></a></li>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>20 €/month</span></a></li>");
- divListaEUR.setStyleName("cm-btn cm-btn-line");
- pnListaEuro.add(divListaEUR);
+ //Panel for Regular Donations in Euros
+ HTMLPanel divRegularDonationsEUR = new HTMLPanel("");
+ divRegularDonationsEUR.setStyleName("pnlOptions");
+ divPost.add(divRegularDonationsEUR);
+ divRegularDonationsEUR.setSize("550px", "28px");
- divPost.add(pnListaEuro);
- txtbxOtherValue.addBlurHandler(new BlurHandler() {
+ HTMLPanel pnlRegularDonation10EUR = new HTMLPanel("");
+ pnlRegularDonation10EUR.setStyleName("option");
+ divRegularDonationsEUR.add(pnlRegularDonation10EUR);
+ pnlRegularDonation10EUR.setSize("115px", "28px");
+
+ Anchor lnk1EUR = new Anchor();
+ lnk1EUR.setStyleName("optionLeft");
+ lnk1EUR.setHTML("10 \u20AC/month");
+ lnk1EUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
+ pnlRegularDonation10EUR.add(lnk1EUR);
+ lnk1EUR.setSize("85px", "28px");
+
+ HTMLPanel pnlRegularDonation15EUR = new HTMLPanel("");
+ pnlRegularDonation15EUR.setStyleName("option");
+ divRegularDonationsEUR.add(pnlRegularDonation15EUR);
+ pnlRegularDonation15EUR.setSize("115px", "28px");
+
+ Anchor lnk2EUR = new Anchor();
+ lnk2EUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
+ lnk2EUR.setStyleName("optionLeft");
+ lnk2EUR.setHTML("15 \u20AC/month");
+ pnlRegularDonation15EUR.add(lnk2EUR);
+ lnk2EUR.setSize("85px", "28px");
+
+ HTMLPanel pnlRegularDonation20EUR = new HTMLPanel("");
+ pnlRegularDonation20EUR.setStyleName("option");
+ divRegularDonationsEUR.add(pnlRegularDonation20EUR);
+ pnlRegularDonation20EUR.setSize("115px", "28px");
+
+ Anchor lnk3EUR = new Anchor();
+ lnk3EUR.setStyleName("optionLeft");
+ lnk3EUR.setHTML("20 \u20AC/month");
+ lnk3EUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
+ pnlRegularDonation20EUR.add(lnk3EUR);
+ lnk3EUR.setSize("85px", "28px");
+
+ HTMLPanel pnlRegularDonationOtherEUR = new HTMLPanel("");
+ pnlRegularDonationOtherEUR.setStyleName("optionOther");
+ divRegularDonationsEUR.add(pnlRegularDonationOtherEUR);
+ pnlRegularDonationOtherEUR.setSize("174px", "28px");
+
+ FormPanel formPanelEUR = new FormPanel();
+ formPanelEUR.setAction("https://www.paypal.com/cgi-bin/webscr");
+ formPanelEUR.setMethod(FormPanel.METHOD_GET);
+ pnlRegularDonationOtherEUR.add(formPanelEUR);
+
+ FlowPanel flowPanelEUR = new FlowPanel();
+ formPanelEUR.setWidget(flowPanelEUR);
+ flowPanelEUR.setSize("100%", "100%");
+ txtbxOtherValueEUR.setVisibleLength(10);
+ txtbxOtherValueEUR.setName("a3");
+
+ //Other Value Euro events
+ txtbxOtherValueEUR.addFocusHandler(new FocusHandler() {
+ public void onFocus(FocusEvent event) {
+ String sDefaultValue = "other value";
+ //Window.alert(txtbxOtherValue.getText());
+ if(txtbxOtherValueEUR.getText().equals(sDefaultValue))
+ {
+ txtbxOtherValueEUR.setText("");
+ }
+ }
+ });
+
+ txtbxOtherValueEUR.addBlurHandler(new BlurHandler() {
String sDefaultValue = "other value";
public void onBlur(BlurEvent event) {
- String sActualValue = txtbxOtherValue.getText();
+ String sActualValue = txtbxOtherValueEUR.getText();
int iActualValue = 0;
if(!sActualValue.equals(""))
{
@@ -75,127 +145,145 @@
//validate
if(sActualValue == "" || iActualValue == 0 || sActualValue != "" + iActualValue)
{
- txtbxOtherValue.setText(sDefaultValue);
+ txtbxOtherValueEUR.setText(sDefaultValue);
}
}
});
+ //End Other Value Euro events
- //Configuramos el boton
- txtbxOtherValue.setName("a3");
- txtbxOtherValue.setVisibleLength(10);
- txtbxOtherValue.setTextAlignment(TextBoxBase.ALIGN_CENTER);
- txtbxOtherValue.setSize("83px", "16px");
- txtbxOtherValue.setValue(sDefaultValue);
- txtbxOtherValue.setTitle("Type other value and press Enter");
+ Hidden h1EUR = new Hidden("business");
+ h1EUR.setDefaultValue("donate(a)ourproject.org");
+ flowPanelEUR.add(h1EUR);
- txtbxOtherValue.addFocusHandler(new FocusHandler() {
- //FieldFocused
- public void onFocus(FocusEvent event) {
- String sDefaultValue = "other value";
- //Window.alert(txtbxOtherValue.getText());
- if(txtbxOtherValue.getText().equals(sDefaultValue))
- {
- txtbxOtherValue.setText("");
- }
- }
- });
+ Hidden h2EUR = new Hidden("cmd");
+ h2EUR.setDefaultValue("_xclick-subscriptions");
+ flowPanelEUR.add(h2EUR);
- HTMLPanel pnOtherValue = new HTMLPanel("");
- divPost.add(pnOtherValue);
- pnOtherValue.setStyleName("p1");
+ Hidden h3EUR = new Hidden("item_name");
+ h3EUR.setDefaultValue(" Donate to comunes.org");
+ flowPanelEUR.add(h3EUR);
- //Campos del form
- Hidden h1 = new Hidden();
- h1.setName("business");
- h1.setValue("donate(a)ourproject.org");
+ Hidden h4EUR = new Hidden("currency_code");
+ h4EUR.setDefaultValue("EUR");
+ flowPanelEUR.add(h4EUR);
- Hidden h2 = new Hidden();
- h2.setName("cmd");
- h2.setValue("_xclick-subscriptions");
+ Hidden h5EUR = new Hidden("no_shipping");
+ h5EUR.setDefaultValue("1");
+ flowPanelEUR.add(h5EUR);
- Hidden h3 = new Hidden();
- h3.setName("item_name");
- h3.setValue("Donate to comunes.org");
+ Hidden h6EUR = new Hidden("t3");
+ h6EUR.setDefaultValue("M");
+ flowPanelEUR.add(h6EUR);
- Hidden h4 = new Hidden();
- h4.setName("currency_code");
- h4.setValue("EUR");
+ Hidden h7EUR = new Hidden("p3");
+ h7EUR.setDefaultValue("1");
+ flowPanelEUR.add(h7EUR);
- Hidden h4Dolar = new Hidden();
- h4Dolar.setName("currency_code");
- h4Dolar.setValue("USD");
+ Hidden h8EUR = new Hidden("src");
+ h8EUR.setDefaultValue("1");
+ flowPanelEUR.add(h8EUR);
- Hidden h5 = new Hidden();
- h5.setName("no_shipping");
- h5.setValue("1");
+ Hidden h9EUR = new Hidden("image_url");
+ h9EUR.setDefaultValue("http://comunes.org/cm/images/logo-pp.png");
+ flowPanelEUR.add(h9EUR);
- Hidden h6 = new Hidden();
- h6.setName("t3");
- h6.setValue("M");
-
- Hidden h7 = new Hidden();
- h7.setName("p3");
- h7.setValue("1");
-
- Hidden h8 = new Hidden();
- h8.setName("src");
- h8.setValue("1");
-
- Hidden h9 = new Hidden();
- h9.setName("image_url");
- h9.setValue("http://comunes.org/cm/images/logo-pp.png");
+ Hidden h10EUR = new Hidden("sra");
+ h10EUR.setDefaultValue("1");
+ flowPanelEUR.add(h10EUR);
- Hidden h10 = new Hidden();
- h10.setName("sra");
- h10.setValue("1");
+ Hidden h11EUR = new Hidden("lc");
+ h11EUR.setDefaultValue("us");
+ flowPanelEUR.add(h11EUR);
- Hidden h11 = new Hidden();
- h11.setName("lc");
- h11.setValue("us");
- //Fin campos del form
+ flowPanelEUR.add(txtbxOtherValueEUR);
+ txtbxOtherValueEUR.setSize("83px", "16px");
+ txtbxOtherValueEUR.setTextAlignment(TextBoxBase.ALIGN_CENTER);
+ txtbxOtherValueEUR.setText(sDefaultValue);
+ txtbxOtherValueEUR.setTitle(sDefaultTitle);
- FormPanel frmOtherValue = new FormPanel();
- frmOtherValue.setMethod("get");
- frmOtherValue.setAction("https://www.paypal.com/cgi-bin/webscr");
+ Label lblOtherEUR = new Label("\u20AC/month");
+ flowPanelEUR.add(lblOtherEUR);
+ lblOtherEUR.setStyleName("labelOther");
+ //End of Panel for Regular Donations in Euros
- VerticalPanel pnFrmOtherValue = new VerticalPanel();
-
- pnFrmOtherValue.add(h1);
- pnFrmOtherValue.add(h2);
- pnFrmOtherValue.add(h3);
- pnFrmOtherValue.add(h4);
- pnFrmOtherValue.add(h5);
- pnFrmOtherValue.add(h6);
- pnFrmOtherValue.add(h7);
- pnFrmOtherValue.add(h8);
- pnFrmOtherValue.add(h9);
- pnFrmOtherValue.add(h10);
- pnFrmOtherValue.add(h11);
- pnFrmOtherValue.add(txtbxOtherValue);
+ //Panel for Regular Donations in Dollars
+ HTMLPanel divRegularDonationsDollar = new HTMLPanel("");
+ divRegularDonationsDollar.setStyleName("pnlOptions");
+ divPost.add(divRegularDonationsDollar);
+ divRegularDonationsDollar.setSize("550px", "28px");
- frmOtherValue.add(pnFrmOtherValue);
- pnOtherValue.add(frmOtherValue);
+ HTMLPanel pnlRegularDonation10Dollar = new HTMLPanel("");
+ pnlRegularDonation10Dollar.setStyleName("option");
+ divRegularDonationsDollar.add(pnlRegularDonation10Dollar);
+ pnlRegularDonation10Dollar.setSize("115px", "28px");
- HTMLPanel pnLabelEUR = new HTMLPanel(" €/month ");
- pnLabelEUR.setStyleName("p1Label");
- divPost.add(pnLabelEUR);
-
- //Opciones para donaciones en Dolares
- HTMLPanel pnListaDolar = new HTMLPanel("");
- pnListaDolar.setStyleName("p0");
+ Anchor lnk1Dollar = new Anchor();
+ lnk1Dollar.setStyleName("optionLeft");
+ lnk1Dollar.setHTML("10 $/month");
+ lnk1Dollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
+ pnlRegularDonation10Dollar.add(lnk1Dollar);
+ lnk1Dollar.setSize("85px", "28px");
- HTML divListaUSA = new HTML("<ul class='blue'>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>10 $/month</span></a></li> " +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>15 $/month</span></a></li>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>20 $/month</span></a></li>");
- divListaUSA.setStyleName("cm-btn cm-btn-line");
- pnListaDolar.add(divListaUSA);
+ HTMLPanel pnlRegularDonation15Dollar = new HTMLPanel("");
+ pnlRegularDonation15Dollar.setStyleName("option");
+ divRegularDonationsDollar.add(pnlRegularDonation15Dollar);
+ pnlRegularDonation15Dollar.setSize("115px", "28px");
- divPost.add(pnListaDolar);
- txtbxOtherValueDolar.addBlurHandler(new BlurHandler() {
+ Anchor lnk2Dollar = new Anchor();
+ lnk2Dollar.setStyleName("optionLeft");
+ lnk2Dollar.setHTML("15 $/month");
+ lnk2Dollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
+ pnlRegularDonation15Dollar.add(lnk2Dollar);
+ lnk2Dollar.setSize("85px", "28px");
+
+ HTMLPanel pnlRegularDonation20Dollar = new HTMLPanel("");
+ pnlRegularDonation20Dollar.setStyleName("option");
+ divRegularDonationsDollar.add(pnlRegularDonation20Dollar);
+ pnlRegularDonation20Dollar.setSize("115px", "28px");
+
+ Anchor lnk3Dollar = new Anchor();
+ lnk3Dollar.setStyleName("optionLeft");
+ lnk3Dollar.setHTML("20 $/month");
+ lnk3Dollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… Donate to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png");
+ pnlRegularDonation20Dollar.add(lnk3Dollar);
+ lnk3Dollar.setSize("85px", "28px");
+
+ HTMLPanel pnlRegularDonationOtherDollar = new HTMLPanel("");
+ pnlRegularDonationOtherDollar.setStyleName("optionOther");
+ divRegularDonationsDollar.add(pnlRegularDonationOtherDollar);
+ pnlRegularDonationOtherDollar.setSize("174px", "28px");
+
+ FormPanel formPanelDollar = new FormPanel();
+ formPanelDollar.setMethod(FormPanel.METHOD_GET);
+ formPanelDollar.setAction("https://www.paypal.com/cgi-bin/webscr");
+ pnlRegularDonationOtherDollar.add(formPanelDollar);
+
+ FlowPanel flowPanelDollar = new FlowPanel();
+ formPanelDollar.setWidget(flowPanelDollar);
+ flowPanelDollar.setSize("100%", "100%");
+ txtbxOtherValueDollar.setName("a3");
+ txtbxOtherValueDollar.setVisibleLength(10);
+
+ txtbxOtherValueDollar.setTitle("Type other value and press Enter");
+ txtbxOtherValueDollar.setTextAlignment(TextBoxBase.ALIGN_CENTER);
+ txtbxOtherValueDollar.setText("other value");
+
+ //Other Value Dollar events
+ txtbxOtherValueDollar.addFocusHandler(new FocusHandler() {
+ public void onFocus(FocusEvent event) {
+ String sDefaultValue = "other value";
+ //Window.alert(txtbxOtherValue.getText());
+ if(txtbxOtherValueDollar.getText().equals(sDefaultValue))
+ {
+ txtbxOtherValueDollar.setText("");
+ }
+ }
+ });
+
+ txtbxOtherValueDollar.addBlurHandler(new BlurHandler() {
String sDefaultValue = "other value";
public void onBlur(BlurEvent event) {
- String sActualValue = txtbxOtherValueDolar.getText();
+ String sActualValue = txtbxOtherValueDollar.getText();
int iActualValue = 0;
if(!sActualValue.equals(""))
{
@@ -204,150 +292,237 @@
//validate
if(sActualValue == "" || iActualValue == 0 || sActualValue != "" + iActualValue)
{
- txtbxOtherValueDolar.setText(sDefaultValue);
+ txtbxOtherValueDollar.setText(sDefaultValue);
}
}
});
+ //End Other Value Dollar events
- //Configuramos el boton de Dolar
- txtbxOtherValueDolar.setName("a3");
- txtbxOtherValueDolar.setVisibleLength(10);
- txtbxOtherValueDolar.setTextAlignment(TextBoxBase.ALIGN_CENTER);
- txtbxOtherValueDolar.setSize("83px", "16px");
- txtbxOtherValueDolar.setValue(sDefaultValue);
- txtbxOtherValueDolar.setTitle("Type other value and press Enter");
+ Hidden h1Dollar = new Hidden("business");
+ h1Dollar.setDefaultValue("donate(a)ourproject.org");
+ flowPanelDollar.add(h1Dollar);
- txtbxOtherValueDolar.addFocusHandler(new FocusHandler() {
- //FieldFocused
- public void onFocus(FocusEvent event) {
- String sDefaultValue = "other value";
- //Window.alert(txtbxOtherValueDolar.getText());
- if(txtbxOtherValueDolar.getText().equals(sDefaultValue))
- {
- txtbxOtherValueDolar.setText("");
- }
- }
- });
+ Hidden h2Dollar = new Hidden("cmd");
+ h2Dollar.setDefaultValue("_xclick-subscriptions");
+ flowPanelDollar.add(h2Dollar);
- HTMLPanel pnOtherValueDolar = new HTMLPanel("");
- divPost.add(pnOtherValueDolar);
- pnOtherValueDolar.setStyleName("p1");
+ Hidden h3Dollar = new Hidden("item_name");
+ h3Dollar.setDefaultValue(" Donate to comunes.org");
+ flowPanelDollar.add(h3Dollar);
- FormPanel frmOtherValueDolar = new FormPanel();
- frmOtherValueDolar.setMethod("get");
- frmOtherValueDolar.setAction("https://www.paypal.com/cgi-bin/webscr");
+ Hidden h4Dollar = new Hidden("currency_code");
+ h4Dollar.setDefaultValue("USD");
+ flowPanelDollar.add(h4Dollar);
- VerticalPanel pnFrmOtherValueDolar = new VerticalPanel();
-
- pnFrmOtherValueDolar.add(h1);
- pnFrmOtherValueDolar.add(h2);
- pnFrmOtherValueDolar.add(h3);
- pnFrmOtherValueDolar.add(h4Dolar); //Hidden diferente
- pnFrmOtherValueDolar.add(h5);
- pnFrmOtherValueDolar.add(h6);
- pnFrmOtherValueDolar.add(h7);
- pnFrmOtherValueDolar.add(h8);
- pnFrmOtherValueDolar.add(h9);
- pnFrmOtherValueDolar.add(h10);
- pnFrmOtherValueDolar.add(h11);
- pnFrmOtherValueDolar.add(txtbxOtherValueDolar);
+ Hidden h5Dollar = new Hidden("no_shipping");
+ h5Dollar.setDefaultValue("1");
+ flowPanelDollar.add(h5Dollar);
- frmOtherValueDolar.add(pnFrmOtherValueDolar);
- pnOtherValueDolar.add(frmOtherValueDolar);
+ Hidden h6Dollar = new Hidden("t3");
+ h6Dollar.setDefaultValue("M");
+ flowPanelDollar.add(h6Dollar);
- HTMLPanel pnLabelDolar = new HTMLPanel(" $/month ");
- pnLabelDolar.setStyleName("p1Label");
- divPost.add(pnLabelDolar);
+ Hidden h7Dollar = new Hidden("p3");
+ h7Dollar.setDefaultValue("1");
+ flowPanelDollar.add(h7Dollar);
- //Siguiente p�rrafo
- HTML contenidoDivPost2 = new HTML(getCabecera("Single donation", 3), true);
- contenidoDivPost2.setStyleName("textoPost");
+ Hidden h8Dollar = new Hidden("src");
+ h8Dollar.setDefaultValue("1");
+ flowPanelDollar.add(h8Dollar);
- divPost.add(contenidoDivPost2);
+ Hidden h9Dollar = new Hidden("image_url");
+ h9Dollar.setDefaultValue("http://comunes.org/cm/images/logo-pp.png");
+ flowPanelDollar.add(h9Dollar);
- //Opciones para donaciones simples en Euros
- HTMLPanel pnListaEuro2 = new HTMLPanel("");
- pnListaEuro2.setStyleName("p0");
+ Hidden h10Dollar = new Hidden("sra");
+ h10Dollar.setDefaultValue("1");
+ flowPanelDollar.add(h10Dollar);
- HTML divListaEUR2 = new HTML("<ul class='blue'>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&amount=25&image_url=http://comunes.org/cm/ima…' class='current'><span>25 € </span></a></li>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&amount=75&image_url=http://comunes.org/cm/ima…' class='current'><span>75 € </span></a></li> " +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&amount=150&image_url=http://comunes.org/cm/im…' class='current'><span>150 € </span></a></li>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&amount=300&image_url=http://comunes.org/cm/im…' class='current'><span>300 € </span></a></li>");
- divListaEUR2.setStyleName("cm-btn cm-btn-line");
- pnListaEuro2.add(divListaEUR2);
- divPost.add(pnListaEuro2);
+ Hidden h11Dollar = new Hidden("lc");
+ h11Dollar.setDefaultValue("us");
+ flowPanelDollar.add(h11Dollar);
- //Opciones para donaciones simples en dolares
- HTMLPanel pnListaDolar2 = new HTMLPanel("");
- pnListaDolar2.setStyleName("p0");
+ flowPanelDollar.add(txtbxOtherValueDollar);
+ txtbxOtherValueDollar.setSize("83px", "16px");
- HTML divListaUSA2 = new HTML("<ul class='blue'>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&amount=25&image_url=http://comunes.org/cm/ima…' class='current'><span>25 $ </span></a></li>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&amount=75&image_url=http://comunes.org/cm/ima…' class='current'><span>75 $ </span></a></li>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&amount=150&image_url=http://comunes.org/cm/im…' class='current'><span>150 $ </span></a></li>" +
- "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&amount=300&image_url=http://comunes.org/cm/im…' class='current'><span>300 $ </span></a></li>");
- divListaUSA2.setStyleName("cm-btn cm-btn-line");
- pnListaDolar2.add(divListaUSA2);
+ Label lblOtherDollar = new Label("$/month");
+ lblOtherDollar.setStyleName("labelOther");
+ flowPanelDollar.add(lblOtherDollar);
- divPost.add(pnListaDolar2);
+ HTML divTitleSingle = new HTML("Single donation", true);
+ divPost.add(divTitleSingle);
+ divTitleSingle.setStyleName("titleRegular");
- HTMLPanel pnVacio = new HTMLPanel("");
- pnVacio.setStyleName("divVacio");
+ HTMLPanel divSingleDonationEUR = new HTMLPanel("");
+ divSingleDonationEUR.setStyleName("pnlOptions");
+ divPost.add(divSingleDonationEUR);
+ divSingleDonationEUR.setSize("340px", "28px");
- divPost.add(pnVacio);
+ HTMLPanel pnlRegularDonation25EUR = new HTMLPanel("");
+ pnlRegularDonation25EUR.setStyleName("option");
+ divSingleDonationEUR.add(pnlRegularDonation25EUR);
+ pnlRegularDonation25EUR.setSize("75px", "28px");
- //Texto final
- HTML contenidoDivPost3 = new HTML(getParrafo("For other amounts use <a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&image_url=http://comunes.org/cm/images/logo-p…'>this link for Euros</a> or <a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&image_url=http://comunes.org/cm/images/logo-p…'>this one for USD.</a>") +
- getParrafo("Please consider donating more if you can afford it.") +
- getCabecera("Give using your Bank", 3) +
- "<br />" +
- getParrafo("<a href='http://comunes.org/bank-info'>See our Bank account info page</a>") +
- getParrafo("Unless you specify the contrary, we will add you to our donor list.") +
- getParrafo("If you have doubts please contact us at donate at ourproject dot org.") +
- getCabecera("Thanks indeed!", 3), true);
- contenidoDivPost3.setStyleName("textoPost");
+ Anchor lnk1SingleEUR = new Anchor();
+ lnk1SingleEUR.setStyleName("optionLeft");
+ lnk1SingleEUR.setHTML("25 \u20AC");
+ lnk1SingleEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=25&image_url=http://comunes.org/cm/ima…");
+ pnlRegularDonation25EUR.add(lnk1SingleEUR);
+ lnk1SingleEUR.setSize("45px", "28px");
- divPost.add(contenidoDivPost3);
- }
-
- public String getParrafo(String sTexto)
- {
- String p = "<p>";
- if(sTexto != null)
- {
- p += sTexto;
- }
- p += "</p>";
+ HTMLPanel pnlRegularDonation75EUR = new HTMLPanel("");
+ pnlRegularDonation75EUR.setStyleName("option");
+ divSingleDonationEUR.add(pnlRegularDonation75EUR);
+ pnlRegularDonation75EUR.setSize("75px", "28px");
- return p;
- }
-
- public String getCabecera(String sTexto, int iTipo)
- {
- String cab = "";
- String sCabecera = "";
- String sFinCabecera = "";
- switch(iTipo)
- {
- case 2:
- case 3:
- sCabecera = "<h" + iTipo + ">";
- sFinCabecera = "</h" + iTipo + ">";
- break;
- default:
- sCabecera = "<h2>";
- sFinCabecera = "</h2>";
- break;
- }
+ Anchor lnk2SingleEUR = new Anchor();
+ lnk2SingleEUR.setStyleName("optionLeft");
+ lnk2SingleEUR.setHTML("75 \u20AC");
+ lnk2SingleEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=75&image_url=http://comunes.org/cm/ima…");
+ pnlRegularDonation75EUR.add(lnk2SingleEUR);
+ lnk2SingleEUR.setSize("45px", "28px");
- cab += sCabecera;
- if(sTexto != null)
- {
- cab += sTexto;
- }
- cab += sFinCabecera;
+ HTMLPanel pnlRegularDonation150EUR = new HTMLPanel("");
+ pnlRegularDonation150EUR.setStyleName("option");
+ divSingleDonationEUR.add(pnlRegularDonation150EUR);
+ pnlRegularDonation150EUR.setSize("75px", "28px");
- return cab;
+ Anchor lnk3SingleEUR = new Anchor();
+ lnk3SingleEUR.setStyleName("optionLeft");
+ lnk3SingleEUR.setHTML("100 \u20AC");
+ lnk3SingleEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=100&image_url=http://comunes.org/cm/im…");
+ pnlRegularDonation150EUR.add(lnk3SingleEUR);
+ lnk3SingleEUR.setSize("45px", "28px");
+
+ HTMLPanel pnlRegularDonation300EUR = new HTMLPanel("");
+ pnlRegularDonation300EUR.setStyleName("option");
+ divSingleDonationEUR.add(pnlRegularDonation300EUR);
+ pnlRegularDonation300EUR.setSize("75px", "28px");
+
+ Anchor lnk4SingleEUR = new Anchor();
+ lnk4SingleEUR.setStyleName("optionLeft");
+ lnk4SingleEUR.setHTML("300 \u20AC");
+ lnk4SingleEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&amount=300&image_url=http://comunes.org/cm/im…");
+ pnlRegularDonation300EUR.add(lnk4SingleEUR);
+ lnk4SingleEUR.setSize("45px", "28px");
+
+ HTMLPanel divSingleDonationDollar = new HTMLPanel("");
+ divSingleDonationDollar.setStyleName("pnlOptions");
+ divPost.add(divSingleDonationDollar);
+ divSingleDonationDollar.setSize("340px", "28px");
+
+ HTMLPanel pnlRegularDonation25Dollar = new HTMLPanel("");
+ pnlRegularDonation25Dollar.setStyleName("option");
+ divSingleDonationDollar.add(pnlRegularDonation25Dollar);
+ pnlRegularDonation25Dollar.setSize("75px", "28px");
+
+ Anchor lnk1SingleDollar = new Anchor();
+ lnk1SingleDollar.setStyleName("optionLeft");
+ lnk1SingleDollar.setHTML("25 $");
+ lnk1SingleDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=25&image_url=http://comunes.org/cm/ima…");
+ pnlRegularDonation25Dollar.add(lnk1SingleDollar);
+ lnk1SingleDollar.setSize("45px", "28px");
+
+ HTMLPanel pnlRegularDonation75Dollar = new HTMLPanel("");
+ pnlRegularDonation75Dollar.setStyleName("option");
+ divSingleDonationDollar.add(pnlRegularDonation75Dollar);
+ pnlRegularDonation75Dollar.setSize("75px", "28px");
+
+ Anchor lnk2SingleDollar = new Anchor();
+ lnk2SingleDollar.setStyleName("optionLeft");
+ lnk2SingleDollar.setHTML("75 $");
+ lnk2SingleDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=75&image_url=http://comunes.org/cm/ima…");
+ pnlRegularDonation75Dollar.add(lnk2SingleDollar);
+ lnk2SingleDollar.setSize("45px", "28px");
+
+ HTMLPanel pnlRegularDonation100Dollar = new HTMLPanel("");
+ pnlRegularDonation100Dollar.setStyleName("option");
+ divSingleDonationDollar.add(pnlRegularDonation100Dollar);
+ pnlRegularDonation100Dollar.setSize("75px", "28px");
+
+ Anchor lnk3SingleDollar = new Anchor();
+ lnk3SingleDollar.setStyleName("optionLeft");
+ lnk3SingleDollar.setHTML("100 $");
+ lnk3SingleDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=100&image_url=http://comunes.org/cm/im…");
+ pnlRegularDonation100Dollar.add(lnk3SingleDollar);
+ lnk3SingleDollar.setSize("45px", "28px");
+
+ HTMLPanel pnlRegularDonation300Dollar = new HTMLPanel("");
+ pnlRegularDonation300Dollar.setStyleName("option");
+ divSingleDonationDollar.add(pnlRegularDonation300Dollar);
+ pnlRegularDonation300Dollar.setSize("75px", "28px");
+
+ Anchor lnk4SingleDollar = new Anchor();
+ lnk4SingleDollar.setStyleName("optionLeft");
+ lnk4SingleDollar.setHTML("300 $");
+ lnk4SingleDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&amount=300&image_url=http://comunes.org/cm/im…");
+ pnlRegularDonation300Dollar.add(lnk4SingleDollar);
+ lnk4SingleDollar.setSize("45px", "28px");
+
+ HTMLPanel divTextOther = new HTMLPanel("");
+ divTextOther.setStyleName("divTextDonate");
+ divPost.add(divTextOther);
+
+ HTML htmlOther = new HTML("For other amounts use", true);
+ htmlOther.setStyleName("textDonate");
+ divTextOther.add(htmlOther);
+ htmlOther.setWidth("148px");
+
+ Anchor lnkTextOtherEUR = new Anchor();
+ lnkTextOtherEUR.setText("this link for Euros");
+ lnkTextOtherEUR.setStyleName("textDonate");
+ lnkTextOtherEUR.setHTML("this link for Euros");
+ lnkTextOtherEUR.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=EUR&image_url=http://comunes.org/cm/images/logo-p…");
+ divTextOther.add(lnkTextOtherEUR);
+ lnkTextOtherEUR.setSize("127px", "28px");
+
+ HTML htmlOther2 = new HTML("or", true);
+ htmlOther2.setStyleName("textDonate");
+ divTextOther.add(htmlOther2);
+ htmlOther2.setWidth("17px");
+
+ Anchor lnkTextOtherDollar = new Anchor();
+ lnkTextOtherDollar.setText("this link for USD.");
+ lnkTextOtherDollar.setStyleName("textDonate");
+ lnkTextOtherDollar.setHTML("this link for USD.");
+ lnkTextOtherDollar.setHref("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… Donate to comunes.org¤cy_code=USD&image_url=http://comunes.org/cm/images/logo-p…");
+ divTextOther.add(lnkTextOtherDollar);
+ lnkTextOtherDollar.setSize("127px", "28px");
+
+ HTML htmlOther3 = new HTML("Please consider donating more if you can afford it. ", true);
+ htmlOther3.setStyleName("textDonateNewLine");
+ divTextOther.add(htmlOther3);
+ htmlOther3.setWidth("471px");
+
+ HTML divTitleBank = new HTML("Give using your Bank", true);
+ divTitleBank.setStyleName("titleRegular");
+ divPost.add(divTitleBank);
+
+ HTMLPanel divTextOtherBank = new HTMLPanel("");
+ divTextOtherBank.setStyleName("divTextOtherBank");
+ divPost.add(divTextOtherBank);
+
+ Anchor lnkBank = new Anchor();
+ lnkBank.setText("See our Bank account info page");
+ lnkBank.setStyleName("textDonate");
+ lnkBank.setHTML("See our Bank account info page");
+ lnkBank.setHref("http://comunes.org/bank-info/");
+ divTextOtherBank.add(lnkBank);
+ lnkBank.setSize("471px", "28px");
+
+ HTML htmlBank1 = new HTML("Unless you specify the contrary, we will add you to our donor list. ", true);
+ htmlBank1.setStyleName("textDonateNewLine");
+ divTextOtherBank.add(htmlBank1);
+ htmlBank1.setWidth("471px");
+
+ HTML htmlBank2 = new HTML("If you have doubts please contact us at donate at ourproject dot org. ", true);
+ htmlBank2.setStyleName("textDonateNewLine");
+ divTextOtherBank.add(htmlBank2);
+ htmlBank2.setWidth("471px");
+
+ HTML divTitleFinal = new HTML("Thanks indeed!", true);
+ divTitleFinal.setStyleName("titleRegular");
+ divPost.add(divTitleFinal);
+ //End of Panel for Regular Donations in Dollars
}
-}
+}
\ No newline at end of file
1
0
r1404 - in kune-sandbox: . src/cc/kune/sandbox/client war war/WEB-INF
by Vicente J. Ruiz Jurado 14 Jun '11
by Vicente J. Ruiz Jurado 14 Jun '11
14 Jun '11
Author: vjrj_
Date: 2011-06-14 13:20:43 +0200 (Tue, 14 Jun 2011)
New Revision: 1404
Removed:
kune-sandbox/war/kune_sandbox/
Modified:
kune-sandbox/
kune-sandbox/src/cc/kune/sandbox/client/KuneSandboxEntryPoint.java
kune-sandbox/war/
kune-sandbox/war/WEB-INF/
Log:
sandbox update
Property changes on: kune-sandbox
___________________________________________________________________
Name: svn:ignore
+ test-classes
Modified: kune-sandbox/src/cc/kune/sandbox/client/KuneSandboxEntryPoint.java
===================================================================
--- kune-sandbox/src/cc/kune/sandbox/client/KuneSandboxEntryPoint.java 2011-06-13 16:17:19 UTC (rev 1403)
+++ kune-sandbox/src/cc/kune/sandbox/client/KuneSandboxEntryPoint.java 2011-06-14 11:20:43 UTC (rev 1404)
@@ -1,11 +1,15 @@
package cc.kune.sandbox.client;
import cc.kune.common.client.notify.NotifyLevel;
+import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.MaskWidget;
import cc.kune.common.client.ui.PopupBottomPanel;
import cc.kune.common.client.ui.PopupTopPanel;
import cc.kune.common.client.ui.dialogs.BasicDialog;
+import cc.kune.common.client.ui.dialogs.PromptTopDialog;
+import cc.kune.common.client.ui.dialogs.PromptTopDialog.Builder;
+import cc.kune.common.client.utils.TextUtils;
import cc.kune.gspace.client.GSpaceArmorImpl;
import cc.kune.gspace.client.tool.selector.ToolSelectorItemPanel;
import cc.kune.gspace.client.tool.selector.ToolSelectorPanel;
@@ -15,6 +19,8 @@
import cc.kune.msgs.client.UserMessagesPresenter;
import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
@@ -43,6 +49,25 @@
// testToolpanel();
// toolSelector.addWidget(new Label("Test"));
// testTooltips();
+ //testBarButtons();
+
+ Builder builder = new PromptTopDialog.Builder("kkj-kk", "Some ask text?", false, true);
+ builder.width("200px").height("200px").firstButtonTitle("Create").sndButtonTitle("Cancel");
+ builder.regex(TextUtils.UNIX_NAME).regexText("The name must contain only characters, numbers and dashes");
+ PromptTopDialog diag = builder.build();
+ diag.showCentered();
+ diag.focusOnTextBox();
+ diag.getFirstBtn().addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ Window.alert("ok");
+ }
+ });
+
+ }
+
+ private void testBarButtons() {
Button btn1 = new Button("Btn 1");
Button btn2 = new Button("Btn 2");
Button btn3 = new Button("Btn 3");
Property changes on: kune-sandbox/war
___________________________________________________________________
Name: svn:ignore
+ kune_sandbox
Property changes on: kune-sandbox/war/WEB-INF
___________________________________________________________________
Name: svn:ignore
+ classes
1
0
Author: vjrj_
Date: 2011-06-13 18:17:19 +0200 (Mon, 13 Jun 2011)
New Revision: 1403
Added:
kune-sandbox/src/cc/kune/sandbox/client/CSSBasicUtils.java
Log:
CSS basic utils
Added: kune-sandbox/src/cc/kune/sandbox/client/CSSBasicUtils.java
===================================================================
--- kune-sandbox/src/cc/kune/sandbox/client/CSSBasicUtils.java (rev 0)
+++ kune-sandbox/src/cc/kune/sandbox/client/CSSBasicUtils.java 2011-06-13 16:17:19 UTC (rev 1403)
@@ -0,0 +1,29 @@
+package cc.kune.sandbox.client;
+
+import com.google.gwt.dom.client.Document;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.LinkElement;
+import com.google.gwt.dom.client.StyleElement;
+
+public class CSSBasicUtils {
+
+ private LinkElement currentLink;
+
+ public CSSBasicUtils() {
+ }
+
+ public void addCss(String cssUrl) {
+ Element head = Document.get().getElementsByTagName("head").getItem(0);
+ LinkElement link = Document.get().createLinkElement();
+ link.setType("text/css");
+ link.setRel("stylesheet");
+ link.setHref(cssUrl);
+ link.setMedia("screen");
+ link.setTitle("dynamicLoadedSheet");
+ head.appendChild(link);
+ if (currentLink != null)
+ currentLink.removeFromParent();
+ currentLink = link;
+ }
+
+}
1
0
r1402 - in trunk: . src/main/java/cc/kune/client src/main/java/cc/kune/core src/main/java/cc/kune/core/client src/main/java/cc/kune/core/client/actions src/main/webapp/others
by Vicente J. Ruiz Jurado 10 Jun '11
by Vicente J. Ruiz Jurado 10 Jun '11
10 Jun '11
Author: vjrj_
Date: 2011-06-10 05:11:49 +0200 (Fri, 10 Jun 2011)
New Revision: 1402
Added:
trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java
trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java
Modified:
trunk/TODO
trunk/src/main/java/cc/kune/client/KuneGinjector.java
trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
trunk/src/main/java/cc/kune/core/KuneCore.gwt.xml
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/webapp/others/kune-wave-extensions.xml
Log:
extensions via xml
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2011-06-09 21:04:18 UTC (rev 1401)
+++ trunk/TODO 2011-06-10 03:11:49 UTC (rev 1402)
@@ -371,6 +371,8 @@
** vjrj <v> IconHyperlink.java and IconLabel.java to gwt1.5
* MID-TERM
+** Archive of xmpp conversations
+*** http://community.igniterealtime.org/docs/DOC-1094 (for openfire)
** Enable two Waves per doc: 1 for the doc (no comments enabled), other for comments. Similar to docs.google.com comments approach.
** TODO start/stop init scripts
https://groups.google.com/group/wave-protocol/browse_thread/thread/d9cdcea0…
Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-06-09 21:04:18 UTC (rev 1401)
+++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-06-10 03:11:49 UTC (rev 1402)
@@ -32,6 +32,7 @@
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
import cc.kune.core.client.CoreGinModule;
import cc.kune.core.client.CoreParts;
+import cc.kune.core.client.actions.XMLActionsParser;
import cc.kune.core.client.auth.RegisterPresenter;
import cc.kune.core.client.auth.SignInPresenter;
import cc.kune.core.client.cookies.CookiesManager;
@@ -144,4 +145,6 @@
AsyncProvider<UserNotifierPresenter> getUserNotifierPresenter();
WaveParts getWaveParts();
+
+ XMLActionsParser getXmlActionsParser();
}
Modified: trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
===================================================================
--- trunk/src/main/java/cc/kune/client/OnAppStartFactory.java 2011-06-09 21:04:18 UTC (rev 1401)
+++ trunk/src/main/java/cc/kune/client/OnAppStartFactory.java 2011-06-10 03:11:49 UTC (rev 1402)
@@ -19,15 +19,10 @@
*/
package cc.kune.client;
-import cc.kune.barters.client.BartersClientTool;
-import cc.kune.blogs.client.BlogsClientTool;
-import cc.kune.chat.client.ChatClientTool;
+import cc.kune.core.client.actions.XMLActionsParser;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.docs.client.DocsClientTool;
-import cc.kune.meets.client.MeetingsClientTool;
-import cc.kune.wiki.client.WikiClientTool;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -35,14 +30,18 @@
public class OnAppStartFactory {
@Inject
- public OnAppStartFactory(final Session session, final Provider<DocsClientTool> docsClientTool,
- final Provider<BlogsClientTool> blogsClientTool,
- final Provider<BartersClientTool> bartersClientTool,
- final Provider<MeetingsClientTool> meetsClientTool,
- final Provider<ChatClientTool> chatsClientTool, final Provider<WikiClientTool> wikiClientTool) {
+ public OnAppStartFactory(final Session session,
+ // final Provider<DocsClientTool> docsClientTool,
+ // final Provider<BlogsClientTool> blogsClientTool,
+ // final Provider<BartersClientTool> bartersClientTool,
+ // final Provider<MeetingsClientTool> meetsClientTool,
+ // final Provider<ChatClientTool> chatsClientTool, final
+ // Provider<WikiClientTool> wikiClientTool,
+ final Provider<XMLActionsParser> actionsParser) {
session.onAppStart(true, new AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
+ actionsParser.get();
}
});
}
Modified: trunk/src/main/java/cc/kune/core/KuneCore.gwt.xml
===================================================================
--- trunk/src/main/java/cc/kune/core/KuneCore.gwt.xml 2011-06-09 21:04:18 UTC (rev 1401)
+++ trunk/src/main/java/cc/kune/core/KuneCore.gwt.xml 2011-06-10 03:11:49 UTC (rev 1402)
@@ -10,6 +10,7 @@
<public path="public" />
<!-- Dependencies ============================================= -->
<inherits name="com.google.gwt.user.User" />
+ <inherits name="com.google.gwt.xml.XML" />
<inherits name="cc.kune.gspace.GSpace" />
<inherits name="cc.kune.msgs.KuneMsgs" />
<inherits name="cc.kune.common.KuneCommon" />
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-06-09 21:04:18 UTC (rev 1401)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-06-10 03:11:49 UTC (rev 1402)
@@ -30,6 +30,7 @@
import cc.kune.common.client.ui.MaskWidget;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.core.client.actions.ActionRegistryByType;
+import cc.kune.core.client.actions.XMLActionsParser;
import cc.kune.core.client.auth.Register;
import cc.kune.core.client.auth.RegisterPanel;
import cc.kune.core.client.auth.RegisterPresenter;
@@ -115,101 +116,103 @@
public class CoreGinModule extends ExtendedGinModule {
- /*
- * (non-Javadoc)
- *
- * @see com.google.gwt.inject.client.AbstractGinModule#configure()
- */
- @Override
- protected void configure() {
- bind(EventBus.class).to(EventBusWithLogging.class).in(Singleton.class);
- bind(TokenFormatter.class).to(ParameterTokenFormatter.class).in(Singleton.class);
- bind(RootPresenter.class).asEagerSingleton();
- bind(ProxyFailureHandler.class).to(DefaultProxyFailureHandler.class).in(Singleton.class);
- s(I18nUITranslationService.class);
- bind(I18nTranslationService.class).to(I18nUITranslationService.class).in(Singleton.class);
- bind(GlobalShortcutRegister.class).to(DefaultGlobalShortcutRegister.class).in(Singleton.class);
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.google.gwt.inject.client.AbstractGinModule#configure()
+ */
+ @Override
+ protected void configure() {
+ bind(EventBus.class).to(EventBusWithLogging.class).in(Singleton.class);
+ bind(TokenFormatter.class).to(ParameterTokenFormatter.class).in(Singleton.class);
+ bind(RootPresenter.class).asEagerSingleton();
+ bind(ProxyFailureHandler.class).to(DefaultProxyFailureHandler.class).in(Singleton.class);
+ s(I18nUITranslationService.class);
+ bind(I18nTranslationService.class).to(I18nUITranslationService.class).in(Singleton.class);
+ bind(GlobalShortcutRegister.class).to(DefaultGlobalShortcutRegister.class).in(Singleton.class);
- // Presenters
- bindPresenter(CorePresenter.class, CorePresenter.CoreView.class, CoreViewImpl.class,
- CorePresenter.CoreProxy.class);
- bindPresenter(SpinerPresenter.class, SpinerPresenter.SpinerView.class, SpinerViewImpl.class,
- SpinerPresenter.SpinerProxy.class);
- bindPresenter(UserNotifierPresenter.class, UserNotifierPresenter.UserNotifierView.class,
- UserNotifierViewImpl.class, UserNotifierProxy.class);
- bindPresenter(SpaceSelectorPresenter.class, SpaceSelectorPresenter.SpaceSelectorView.class,
- SpaceSelectorViewImpl.class, SpaceSelectorPresenter.SpaceSelectorProxy.class);
- bindPresenter(SiteLogoPresenter.class, SiteLogoPresenter.SiteLogoView.class, SiteLogoViewImpl.class,
- SiteLogoPresenter.SiteLogoProxy.class);
- bindPresenter(SitebarActionsPresenter.class, SitebarActionsPresenter.SitebarActionsView.class,
- SitebarActionsPanel.class, SitebarActionsPresenter.SitebarActionsProxy.class);
- bind(SitebarActions.class).to(SitebarActionsPresenter.class).in(Singleton.class);
- bindPresenter(NewGroupPresenter.class, NewGroupView.class, NewGroupPanel.class,
- NewGroupPresenter.NewGroupProxy.class);
- bindPresenter(GroupSNPresenter.class, GroupSNPresenter.GroupSNView.class, GroupSNPanel.class,
- GroupSNPresenter.GroupSNProxy.class);
- bindPresenter(UserSNPresenter.class, UserSNPresenter.UserSNView.class, UserSNPanel.class,
- UserSNPresenter.UserSNProxy.class);
- bindPresenter(EntityHeaderPresenter.class, EntityHeaderPresenter.EntityHeaderView.class,
- EntityHeaderPanel.class, EntityHeaderPresenter.EntityHeaderProxy.class);
- bindPresenter(SignInPresenter.class, SignInView.class, SignInPanel.class, SignInPresenter.SignInProxy.class);
- bindPresenter(RegisterPresenter.class, RegisterView.class, RegisterPanel.class,
- RegisterPresenter.RegisterProxy.class);
- bindPresenter(UserConfirmPresenter.class, UserConfirmPresenter.UserConfirmView.class, UserConfirmPanel.class,
- UserConfirmPresenter.UserConfirmProxy.class);
+ // Presenters
+ bindPresenter(CorePresenter.class, CorePresenter.CoreView.class, CoreViewImpl.class,
+ CorePresenter.CoreProxy.class);
+ bindPresenter(SpinerPresenter.class, SpinerPresenter.SpinerView.class, SpinerViewImpl.class,
+ SpinerPresenter.SpinerProxy.class);
+ bindPresenter(UserNotifierPresenter.class, UserNotifierPresenter.UserNotifierView.class,
+ UserNotifierViewImpl.class, UserNotifierProxy.class);
+ bindPresenter(SpaceSelectorPresenter.class, SpaceSelectorPresenter.SpaceSelectorView.class,
+ SpaceSelectorViewImpl.class, SpaceSelectorPresenter.SpaceSelectorProxy.class);
+ bindPresenter(SiteLogoPresenter.class, SiteLogoPresenter.SiteLogoView.class, SiteLogoViewImpl.class,
+ SiteLogoPresenter.SiteLogoProxy.class);
+ bindPresenter(SitebarActionsPresenter.class, SitebarActionsPresenter.SitebarActionsView.class,
+ SitebarActionsPanel.class, SitebarActionsPresenter.SitebarActionsProxy.class);
+ bind(SitebarActions.class).to(SitebarActionsPresenter.class).in(Singleton.class);
+ bindPresenter(NewGroupPresenter.class, NewGroupView.class, NewGroupPanel.class,
+ NewGroupPresenter.NewGroupProxy.class);
+ bindPresenter(GroupSNPresenter.class, GroupSNPresenter.GroupSNView.class, GroupSNPanel.class,
+ GroupSNPresenter.GroupSNProxy.class);
+ bindPresenter(UserSNPresenter.class, UserSNPresenter.UserSNView.class, UserSNPanel.class,
+ UserSNPresenter.UserSNProxy.class);
+ bindPresenter(EntityHeaderPresenter.class, EntityHeaderPresenter.EntityHeaderView.class,
+ EntityHeaderPanel.class, EntityHeaderPresenter.EntityHeaderProxy.class);
+ bindPresenter(SignInPresenter.class, SignInView.class, SignInPanel.class,
+ SignInPresenter.SignInProxy.class);
+ bindPresenter(RegisterPresenter.class, RegisterView.class, RegisterPanel.class,
+ RegisterPresenter.RegisterProxy.class);
+ bindPresenter(UserConfirmPresenter.class, UserConfirmPresenter.UserConfirmView.class,
+ UserConfirmPanel.class, UserConfirmPresenter.UserConfirmProxy.class);
- bind(UserPassAutocompleteManager.class).to(UserPassAutocompleteManagerImpl.class).in(Singleton.class);
- bind(SignIn.class).to(SignInPresenter.class).in(Singleton.class);
- bind(Register.class).to(RegisterPresenter.class).in(Singleton.class);
- bind(NewGroup.class).to(NewGroupPresenter.class).in(Singleton.class);
- bind(EntityHeader.class).to(EntityHeaderPresenter.class).in(Singleton.class);
+ bind(UserPassAutocompleteManager.class).to(UserPassAutocompleteManagerImpl.class).in(Singleton.class);
+ bind(SignIn.class).to(SignInPresenter.class).in(Singleton.class);
+ bind(Register.class).to(RegisterPresenter.class).in(Singleton.class);
+ bind(NewGroup.class).to(NewGroupPresenter.class).in(Singleton.class);
+ bind(EntityHeader.class).to(EntityHeaderPresenter.class).in(Singleton.class);
- s(UserMessagesPresenter.class);
- s(UserMessagesPanel.class);
- // bind(MessagePanelView.class).to(MessagePanel.class);
+ s(UserMessagesPresenter.class);
+ s(UserMessagesPanel.class);
+ // bind(MessagePanelView.class).to(MessagePanel.class);
- // UI
- bind(GuiProvider.class).to(DefaultGuiProvider.class).in(Singleton.class);
- s(GxtGuiProvider.class);
- s(GwtGuiProvider.class);
+ // UI
+ bind(GuiProvider.class).to(DefaultGuiProvider.class).in(Singleton.class);
+ s(GxtGuiProvider.class);
+ s(GwtGuiProvider.class);
- bind(MaskWidgetView.class).to(MaskWidget.class).in(Singleton.class);
+ bind(MaskWidgetView.class).to(MaskWidget.class).in(Singleton.class);
- // Core App
- bind(Session.class).to(SessionDefault.class).in(Singleton.class);
- s(ErrorHandler.class);
- s(StateManagerDefault.class);
- bind(StateManager.class).to(StateManagerDefault.class).in(Singleton.class);
- s(AccessRightsClientManager.class);
- bind(ContentCache.class).to(ContentCacheDefault.class).in(Singleton.class);
- bind(HistoryWrapper.class).to(HistoryWrapperDefault.class).in(Singleton.class);
- s(PrefetchUtilities.class);
- bind(AppStarter.class).to(AppStarterDefault.class).in(Singleton.class);
- bind(CookiesManager.class).to(CookiesManagerImpl.class).in(Singleton.class);
- s(BeforeSignOut.class);
- eagle(SiteTokenListeners.class);
- s(SiteTokens.class);
- s(ReservedWordsRegistry.class);
- eagle(TokenMatcher.class);
- s(ActionRegistryByType.class);
- s(ContentCapabilitiesRegistry.class);
- eagle(CoreParts.class);
+ // Core App
+ bind(Session.class).to(SessionDefault.class).in(Singleton.class);
+ s(ErrorHandler.class);
+ s(StateManagerDefault.class);
+ bind(StateManager.class).to(StateManagerDefault.class).in(Singleton.class);
+ s(AccessRightsClientManager.class);
+ bind(ContentCache.class).to(ContentCacheDefault.class).in(Singleton.class);
+ bind(HistoryWrapper.class).to(HistoryWrapperDefault.class).in(Singleton.class);
+ s(PrefetchUtilities.class);
+ bind(AppStarter.class).to(AppStarterDefault.class).in(Singleton.class);
+ bind(CookiesManager.class).to(CookiesManagerImpl.class).in(Singleton.class);
+ s(BeforeSignOut.class);
+ eagle(SiteTokenListeners.class);
+ s(SiteTokens.class);
+ s(ReservedWordsRegistry.class);
+ eagle(TokenMatcher.class);
+ s(ActionRegistryByType.class);
+ s(ContentCapabilitiesRegistry.class);
+ eagle(CoreParts.class);
- // SN
- s(GroupSNAdminsMenuItemsRegistry.class);
- s(GroupSNCollabsMenuItemsRegistry.class);
- s(GroupSNPendingsMenuItemsRegistry.class);
- s(UserSNMenuItemsRegistry.class);
- s(GroupSNConfActions.class);
- s(UserSNConfActions.class);
+ // SN
+ s(GroupSNAdminsMenuItemsRegistry.class);
+ s(GroupSNCollabsMenuItemsRegistry.class);
+ s(GroupSNPendingsMenuItemsRegistry.class);
+ s(UserSNMenuItemsRegistry.class);
+ s(GroupSNConfActions.class);
+ s(UserSNConfActions.class);
- s(SiteUserOptionsPresenter.class);
- s(SiteUserOptions.class, SiteUserOptionsPresenter.class);
- s(SitebarNewGroupLink.class);
- s(SitebarSignInLink.class);
- s(SitebarSignOutLink.class);
+ s(SiteUserOptionsPresenter.class);
+ s(SiteUserOptions.class, SiteUserOptionsPresenter.class);
+ s(SitebarNewGroupLink.class);
+ s(SitebarSignInLink.class);
+ s(SitebarSignOutLink.class);
- s(ErrorsDialog.class);
- }
+ s(ErrorsDialog.class);
+ eagle(XMLActionsParser.class);
+ }
}
Added: trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java 2011-06-10 03:11:49 UTC (rev 1402)
@@ -0,0 +1,78 @@
+package cc.kune.core.client.actions;
+
+public class WaveExtension {
+ public static class Builder {
+ private String gadgetUrl;
+ private String iconCss;
+ private String iconUrl;
+ private String installerUrl;
+ private String name;
+
+ public Builder() {
+ }
+
+ public WaveExtension build() {
+ return new WaveExtension(this);
+ }
+
+ public Builder gadgetUrl(final String gadgetUrl) {
+ this.gadgetUrl = gadgetUrl;
+ return this;
+ }
+
+ public Builder iconCss(final String iconCss) {
+ this.iconCss = iconCss;
+ return this;
+ }
+
+ public Builder iconUrl(final String iconUrl) {
+ this.iconUrl = iconUrl;
+ return this;
+ }
+
+ public Builder installerUrl(final String installerUrl) {
+ this.installerUrl = installerUrl;
+ return this;
+ }
+
+ public Builder name(final String name) {
+ this.name = name;
+ return this;
+ }
+ }
+
+ private final String gadgetUrl;
+ private final String iconCss;
+ private final String iconUrl;
+ private final String installerUrl;
+ private final String name;
+
+ public WaveExtension(final Builder builder) {
+ gadgetUrl = builder.gadgetUrl;
+ iconCss = builder.iconCss;
+ iconUrl = builder.iconUrl;
+ installerUrl = builder.installerUrl;
+ name = builder.name;
+ }
+
+ public String getGadgetUrl() {
+ return gadgetUrl;
+ }
+
+ public String getIconCss() {
+ return iconCss;
+ }
+
+ public String getIconUrl() {
+ return iconUrl;
+ }
+
+ public String getInstallerUrl() {
+ return installerUrl;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/WaveExtension.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java 2011-06-10 03:11:49 UTC (rev 1402)
@@ -0,0 +1,77 @@
+package cc.kune.core.client.actions;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import cc.kune.core.client.actions.WaveExtension.Builder;
+import cc.kune.core.client.errors.ErrorHandler;
+
+import com.google.gwt.http.client.Request;
+import com.google.gwt.http.client.RequestBuilder;
+import com.google.gwt.http.client.RequestCallback;
+import com.google.gwt.http.client.RequestException;
+import com.google.gwt.http.client.Response;
+import com.google.gwt.xml.client.Document;
+import com.google.gwt.xml.client.Element;
+import com.google.gwt.xml.client.Node;
+import com.google.gwt.xml.client.NodeList;
+import com.google.gwt.xml.client.XMLParser;
+import com.google.inject.Inject;
+
+public class XMLActionsParser {
+
+ private final ErrorHandler errHandler;
+ private final Map<String, WaveExtension> extensionsMap;
+
+ @Inject
+ public XMLActionsParser(final ErrorHandler errHandler) {
+ this.errHandler = errHandler;
+ extensionsMap = new HashMap<String, WaveExtension>();
+
+ // Based on:
+ // http://www.roseindia.net/tutorials/gwt/retrieving-xml-data.shtml
+ final RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,
+ "/others/kune-wave-extensions.xml");
+ try {
+ requestBuilder.sendRequest(null, new RequestCallback() {
+ @Override
+ public void onError(final Request request, final Throwable ex) {
+ onFailed(ex);
+ }
+
+ @Override
+ public void onResponseReceived(final Request request, final Response response) {
+ parseXML(response.getText());
+ }
+ });
+ } catch (final RequestException ex) {
+ onFailed(ex);
+ }
+ }
+
+ private String get(final Element extension, final String id) {
+ final Node child = extension.getElementsByTagName(id).item(0).getFirstChild();
+ return child != null ? child.getNodeValue() : "";
+ }
+
+ private void onFailed(final Throwable ex) {
+ errHandler.process(ex);
+ }
+
+ private void parseXML(final String text) {
+ final Document parse = XMLParser.parse(text);
+ final NodeList extensions = parse.getElementsByTagName("extensions");
+ for (int i = 0; i < extensions.getLength(); i++) {
+ final Element extension = (Element) extensions.item(i);
+ final Builder builder = new WaveExtension.Builder();
+ final String name = get(extension, "name");
+ builder.name(name);
+ builder.gadgetUrl(get(extension, "gadgetUrl"));
+ builder.iconUrl(get(extension, "iconUrl"));
+ builder.iconCss(get(extension, "iconCss"));
+ builder.installerUrl(get(extension, "installerUrl"));
+ extensionsMap.put(name, builder.build());
+ }
+
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/actions/XMLActionsParser.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/webapp/others/kune-wave-extensions.xml
===================================================================
--- trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-09 21:04:18 UTC (rev 1401)
+++ trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-10 03:11:49 UTC (rev 1402)
@@ -1,4 +1,7 @@
+<?xml version="1.0" ?>
+<kuneWaveExtensions>
+
<!-- List of Wave extensions to use in Kune ===================== -->
<extensions>
@@ -63,3 +66,5 @@
</guiActionDescriptor>
</guiActionDescriptors>
+
+</kuneWaveExtensions>
\ No newline at end of file
1
0
Author: vjrj_
Date: 2011-06-09 23:04:18 +0200 (Thu, 09 Jun 2011)
New Revision: 1401
Added:
trunk/src/main/java/cc/kune/core/client/registry/EmptyMessagesRegistry.java
Modified:
trunk/INSTALL
trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java
trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java
trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java
trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java
trunk/src/main/java/cc/kune/chat/client/ChatParts.java
trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java
trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
trunk/src/main/java/cc/kune/client/KuneGinjector.java
trunk/src/main/java/cc/kune/core/client/registry/ContentCapabilitiesRegistry.java
trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java
trunk/src/main/java/cc/kune/gspace/client/tool/FoldableAbstractClientTool.java
trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java
trunk/src/main/java/cc/kune/meets/client/MeetingsClientTool.java
trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java
Log:
Some fixes/enhacments: in chat actions, empty message in folders, tools order
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/INSTALL 2011-06-09 21:04:18 UTC (rev 1401)
@@ -85,6 +85,11 @@
https://sites.google.com/a/waveprotocol.org/wave-protocol/federation/openfi…
if you want to use Kune in production and federate with other Wave capable servers.
+===Increase open file limits in system===
+
+Follow:
+http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/
+
===Install jmagick===
Install jmagick-jni. In debian: apt-get install libjmagick6-jni (version 6.2.6-0) also you need or:
Modified: trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -63,6 +63,8 @@
registerContentTypeIcon(TYPE_FOLDER, navResources.folder());
registerContentTypeIcon(TYPE_ROOT, navResources.folder());
registerContentTypeIcon(TYPE_BARTER, navResources.barter());
+ registerEmptyMessages(TYPE_FOLDER, "There folder is empty");
+ registerEmptyMessages(TYPE_ROOT, "There isn't any barter");
}
}
Modified: trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -65,6 +65,8 @@
registerContentTypeIcon(TYPE_BLOG, navResources.blog());
registerContentTypeIcon(TYPE_POST, navResources.post());
registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
+ registerEmptyMessages(TYPE_ROOT, "There isn't any blog, create one");
+ registerEmptyMessages(TYPE_BLOG, "This blog hasn't any post, create one");
}
}
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -21,6 +21,8 @@
import static cc.kune.chat.shared.ChatConstants.NAME;
import static cc.kune.chat.shared.ChatConstants.TYPE_ROOM;
+import cc.kune.chat.client.resources.ChatResources;
+import cc.kune.common.client.utils.TextUtils;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.resources.nav.NavResources;
@@ -32,12 +34,15 @@
public class ChatClientTool extends FoldableAbstractClientTool {
private final NavResources navResources;
+ private final ChatResources res;
@Inject
public ChatClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) {
+ final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
+ final ChatResources res) {
super(NAME, i18n.t("chatrooms"), toolSelector, cntCapRegistry);
this.navResources = navResources;
+ this.res = res;
registerIcons();
}
@@ -47,7 +52,9 @@
}
private void registerIcons() {
- registerContentTypeIcon(TYPE_ROOM, navResources.room());
+ registerContentTypeIcon(TYPE_ROOM, res.groupChat());
+ registerEmptyMessages(TYPE_ROOM, "Here you will see the archive of old conversations"
+ + TextUtils.IN_DEVELOPMENT_P);
}
}
Modified: trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -22,7 +22,6 @@
import cc.kune.chat.client.actions.AddAsBuddieHeaderButton;
import cc.kune.chat.client.actions.ChatClientActions;
import cc.kune.chat.client.actions.ChatSitebarActions;
-import cc.kune.chat.client.actions.OpenGroupPublicChatRoomButton;
import com.google.inject.Singleton;
import com.gwtplatform.mvp.client.gin.AbstractPresenterModule;
@@ -38,9 +37,8 @@
bind(ChatClient.class).to(ChatClientDefault.class).in(Singleton.class);
bind(ChatOptions.class).in(Singleton.class);
bind(ChatSitebarActions.class).in(Singleton.class);
- bind(ChatParts.class).asEagerSingleton();
bind(AddAsBuddieHeaderButton.class).in(Singleton.class);
- bind(OpenGroupPublicChatRoomButton.class).in(Singleton.class);
+ // bind(OpenGroupPublicChatRoomButton.class).in(Singleton.class);
bind(ChatClientTool.class).in(Singleton.class);
bind(ChatClientActions.class).in(Singleton.class);
}
Modified: trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -23,6 +23,8 @@
public interface ChatGinjector extends Ginjector {
+ ChatClient getChatClient();
+
ChatParts getChatParts();
}
Modified: trunk/src/main/java/cc/kune/chat/client/ChatParts.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -23,7 +23,6 @@
import cc.kune.chat.client.actions.ChatClientActions;
import cc.kune.chat.client.actions.ChatSitebarActions;
import cc.kune.chat.client.actions.OpenGroupPublicChatRoomAction;
-import cc.kune.chat.client.actions.OpenGroupPublicChatRoomButton;
import cc.kune.chat.client.actions.StartChatWithMemberAction;
import cc.kune.chat.client.actions.StartChatWithThisBuddieAction;
import cc.kune.chat.client.actions.StartChatWithUserAction;
@@ -69,7 +68,7 @@
final Provider<StartChatWithThisBuddieAction> startChatWithBuddieAction,
final ChatClientActions chatActions,
final Provider<OpenGroupPublicChatRoomAction> openGroupRoomAction,
- final Provider<OpenGroupPublicChatRoomButton> openGroupRoom,
+ // final Provider<OpenGroupPublicChatRoomButton> openGroupRoom,
final ContentViewerSelector viewerSelector, final FolderViewerPresenter folderViewer) {
viewerSelector.register(folderViewer, true, ChatConstants.TYPE_ROOT);
viewerSelector.register(folderViewer, true, ChatConstants.TYPE_ROOM);
@@ -126,7 +125,7 @@
userItemsRegistry.get().add(startChatWithBuddieItem);
groupConfActions.get().add(openChatAndInvite.get());
buddieButton.get();
- openGroupRoom.get();
+ // openGroupRoom.get();
}
});
}
Modified: trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -6,6 +6,7 @@
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.dto.StateContainerDTO;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -25,7 +26,9 @@
@Override
public void actionPerformed(final ActionEvent event) {
final ChatClient chat = chatClient.get();
- final String roomName = ((AbstractContentSimpleDTO) event.getTarget()).getName();
+ final Object target = event.getTarget();
+ final String roomName = (target instanceof AbstractContentSimpleDTO) ? ((AbstractContentSimpleDTO) target).getName()
+ : ((StateContainerDTO) session.getCurrentState()).getTitle();
chat.joinRoom(roomName, session.getCurrentUserInfo().getShortName());
chat.show();
}
Modified: trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -76,12 +76,15 @@
ginjector.getUserNotifierPresenter();
ginjector.getSpinerPresenter();
ginjector.getGroupMembersPresenter();
- ginjector.getBartersParts();
+
+ /* Tools (order in GUI) */
+ ginjector.getDocsParts();
ginjector.getBlogsParts();
+ ginjector.getWikiParts();
ginjector.getChatParts();
- ginjector.getDocsParts();
+ ginjector.getBartersParts();
ginjector.getMeetingsParts();
- ginjector.getWikiParts();
+
ginjector.getSiteLogoPresenter();
ginjector.getSpacesTabPresenter();
ginjector.getChatClient();
Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -23,7 +23,6 @@
import cc.kune.barters.client.BartersGinjector;
import cc.kune.blogs.client.BlogsGinModule;
import cc.kune.blogs.client.BlogsGinjector;
-import cc.kune.chat.client.ChatClient;
import cc.kune.chat.client.ChatGinModule;
import cc.kune.chat.client.ChatGinjector;
import cc.kune.common.client.actions.gwtui.GwtGuiProvider;
@@ -73,8 +72,8 @@
import com.google.inject.Provider;
import com.gwtplatform.mvp.client.proxy.ProxyFailureHandler;
-@GinModules({ KuneGinModule.class, CoreGinModule.class, ChatGinModule.class, WaveGinModule.class,
- PSpaceGinModule.class, GSpaceGinModule.class, DocsGinModule.class, BlogsGinModule.class,
+@GinModules({ KuneGinModule.class, CoreGinModule.class, WaveGinModule.class, PSpaceGinModule.class,
+ GSpaceGinModule.class, DocsGinModule.class, BlogsGinModule.class, ChatGinModule.class,
WikiGinModule.class, BartersGinModule.class, MeetingsGinModule.class })
public interface KuneGinjector extends Ginjector, GSpaceGinjector, DocsGinjector, BlogsGinjector,
WikiGinjector, BartersGinjector, MeetingsGinjector, ChatGinjector {
@@ -86,8 +85,6 @@
AsyncProvider<UserSNPresenter> getBuddiesAndParticipationPresenter();
- ChatClient getChatClient();
-
AsyncProvider<CookiesManager> getCookiesManager();
CoreParts getCoreParts();
Modified: trunk/src/main/java/cc/kune/core/client/registry/ContentCapabilitiesRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/registry/ContentCapabilitiesRegistry.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/core/client/registry/ContentCapabilitiesRegistry.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -23,183 +23,190 @@
public class ContentCapabilitiesRegistry {
- private final AclEditableRegistry aclEditable;
- private final AuthorableRegistry authorable;
- private final CanBeHomepageRegistry canBeHomepage;
- private final ComentableRegistry comentable;
- private final DragableRegistry dragable;
- private final DropableRegistry dropable;
- private final EmailSubscribeAbleRegistry emailSubscribeAble;
- private final IconsRegistry iconsRegistry;
- private final LicensableRegistry licensable;
- private final PublishModerableRegistry publishModerable;
- private final RateableRegistry rateable;
- private final RenamableRegistry renamable;
- private final TageableRegistry tageable;
- private final TranslatableRegistry translatable;
- private final VersionableRegistry versionable;
- private final XmppComentableRegistry xmppComentable;
- private final XmppNotifyCapableRegistry xmppNotifyCapable;
+ private final AclEditableRegistry aclEditable;
+ private final AuthorableRegistry authorable;
+ private final CanBeHomepageRegistry canBeHomepage;
+ private final ComentableRegistry comentable;
+ private final DragableRegistry dragable;
+ private final DropableRegistry dropable;
+ private final EmailSubscribeAbleRegistry emailSubscribeAble;
+ private final EmptyMessagesRegistry emptyMessagesRegistry;
+ private final IconsRegistry iconsRegistry;
+ private final LicensableRegistry licensable;
+ private final PublishModerableRegistry publishModerable;
+ private final RateableRegistry rateable;
+ private final RenamableRegistry renamable;
+ private final TageableRegistry tageable;
+ private final TranslatableRegistry translatable;
+ private final VersionableRegistry versionable;
+ private final XmppComentableRegistry xmppComentable;
+ private final XmppNotifyCapableRegistry xmppNotifyCapable;
- @Inject
- public ContentCapabilitiesRegistry(final AuthorableRegistry authorableRegistry,
- final AclEditableRegistry aclEditableRegistry, final IconsRegistry iconsRegistry,
- final CanBeHomepageRegistry canBeHomepage, final ComentableRegistry comentable,
- final DragableRegistry dragable, final DropableRegistry dropable,
- final EmailSubscribeAbleRegistry emailSubscribeAble, final LicensableRegistry licensable,
- final PublishModerableRegistry publishModerable, final RateableRegistry rateable,
- final TageableRegistry tageable, final RenamableRegistry renamable,
- final TranslatableRegistry translatable, final VersionableRegistry versionable,
- final XmppComentableRegistry xmppComentable, final XmppNotifyCapableRegistry xmppNotifyCapable) {
- this.authorable = authorableRegistry;
- this.aclEditable = aclEditableRegistry;
- this.iconsRegistry = iconsRegistry;
- this.canBeHomepage = canBeHomepage;
- this.comentable = comentable;
- this.dragable = dragable;
- this.dropable = dropable;
- this.emailSubscribeAble = emailSubscribeAble;
- this.licensable = licensable;
- this.publishModerable = publishModerable;
- this.rateable = rateable;
- this.tageable = tageable;
- this.renamable = renamable;
- this.translatable = translatable;
- this.versionable = versionable;
- this.xmppComentable = xmppComentable;
- this.xmppNotifyCapable = xmppNotifyCapable;
- }
+ @Inject
+ public ContentCapabilitiesRegistry(final AuthorableRegistry authorableRegistry,
+ final AclEditableRegistry aclEditableRegistry, final IconsRegistry iconsRegistry,
+ final CanBeHomepageRegistry canBeHomepage, final ComentableRegistry comentable,
+ final DragableRegistry dragable, final DropableRegistry dropable,
+ final EmailSubscribeAbleRegistry emailSubscribeAble, final LicensableRegistry licensable,
+ final PublishModerableRegistry publishModerable, final RateableRegistry rateable,
+ final TageableRegistry tageable, final RenamableRegistry renamable,
+ final TranslatableRegistry translatable, final VersionableRegistry versionable,
+ final EmptyMessagesRegistry emptyMessagesRegistry, final XmppComentableRegistry xmppComentable,
+ final XmppNotifyCapableRegistry xmppNotifyCapable) {
+ this.authorable = authorableRegistry;
+ this.aclEditable = aclEditableRegistry;
+ this.iconsRegistry = iconsRegistry;
+ this.canBeHomepage = canBeHomepage;
+ this.comentable = comentable;
+ this.dragable = dragable;
+ this.dropable = dropable;
+ this.emailSubscribeAble = emailSubscribeAble;
+ this.licensable = licensable;
+ this.publishModerable = publishModerable;
+ this.rateable = rateable;
+ this.tageable = tageable;
+ this.renamable = renamable;
+ this.translatable = translatable;
+ this.versionable = versionable;
+ this.emptyMessagesRegistry = emptyMessagesRegistry;
+ this.xmppComentable = xmppComentable;
+ this.xmppNotifyCapable = xmppNotifyCapable;
+ }
- public boolean canBeHomepage(final String typeId) {
- return canBeHomepage.contains(typeId);
- }
+ public boolean canBeHomepage(final String typeId) {
+ return canBeHomepage.contains(typeId);
+ }
- public AclEditableRegistry getAclEditable() {
- return aclEditable;
- }
+ public AclEditableRegistry getAclEditable() {
+ return aclEditable;
+ }
- public AuthorableRegistry getAuthorable() {
- return authorable;
- }
+ public AuthorableRegistry getAuthorable() {
+ return authorable;
+ }
- public CanBeHomepageRegistry getCanBeHomepage() {
- return canBeHomepage;
- }
+ public CanBeHomepageRegistry getCanBeHomepage() {
+ return canBeHomepage;
+ }
- public ComentableRegistry getComentable() {
- return comentable;
- }
+ public ComentableRegistry getComentable() {
+ return comentable;
+ }
- public DragableRegistry getDragable() {
- return dragable;
- }
+ public DragableRegistry getDragable() {
+ return dragable;
+ }
- public DropableRegistry getDropable() {
- return dropable;
- }
+ public DropableRegistry getDropable() {
+ return dropable;
+ }
- public EmailSubscribeAbleRegistry getEmailSubscribeAble() {
- return emailSubscribeAble;
- }
+ public EmailSubscribeAbleRegistry getEmailSubscribeAble() {
+ return emailSubscribeAble;
+ }
- public IconsRegistry getIconsRegistry() {
- return iconsRegistry;
- }
+ public EmptyMessagesRegistry getEmptyMessagesRegistry() {
+ return emptyMessagesRegistry;
+ }
- public LicensableRegistry getLicensable() {
- return licensable;
- }
+ public IconsRegistry getIconsRegistry() {
+ return iconsRegistry;
+ }
- public PublishModerableRegistry getPublishModerable() {
- return publishModerable;
- }
+ public LicensableRegistry getLicensable() {
+ return licensable;
+ }
- public RateableRegistry getRateable() {
- return rateable;
- }
+ public PublishModerableRegistry getPublishModerable() {
+ return publishModerable;
+ }
- public RenamableRegistry getRenamable() {
- return renamable;
- }
+ public RateableRegistry getRateable() {
+ return rateable;
+ }
- public TageableRegistry getTageable() {
- return tageable;
- }
+ public RenamableRegistry getRenamable() {
+ return renamable;
+ }
- public TranslatableRegistry getTranslatable() {
- return translatable;
- }
+ public TageableRegistry getTageable() {
+ return tageable;
+ }
- public VersionableRegistry getVersionable() {
- return versionable;
- }
+ public TranslatableRegistry getTranslatable() {
+ return translatable;
+ }
- public XmppComentableRegistry getXmppComentable() {
- return xmppComentable;
- }
+ public VersionableRegistry getVersionable() {
+ return versionable;
+ }
- public XmppNotifyCapableRegistry getXmppNotificyCapable() {
- return xmppNotifyCapable;
- }
+ public XmppComentableRegistry getXmppComentable() {
+ return xmppComentable;
+ }
- public boolean isAclEditable(final String typeId) {
- return aclEditable.contains(typeId);
- }
+ public XmppNotifyCapableRegistry getXmppNotificyCapable() {
+ return xmppNotifyCapable;
+ }
- public boolean isAuthorable(final String typeId) {
- return authorable.contains(typeId);
- }
+ public boolean isAclEditable(final String typeId) {
+ return aclEditable.contains(typeId);
+ }
- public boolean isComentable(final String typeId) {
- return comentable.contains(typeId);
- }
+ public boolean isAuthorable(final String typeId) {
+ return authorable.contains(typeId);
+ }
- public boolean isDragable(final String typeId) {
- return dragable.contains(typeId);
- }
+ public boolean isComentable(final String typeId) {
+ return comentable.contains(typeId);
+ }
- public boolean isDropable(final String typeId) {
- return dropable.contains(typeId);
- }
+ public boolean isDragable(final String typeId) {
+ return dragable.contains(typeId);
+ }
- public boolean isEmailSubscribeAble(final String typeId) {
- return emailSubscribeAble.contains(typeId);
- }
+ public boolean isDropable(final String typeId) {
+ return dropable.contains(typeId);
+ }
- public boolean isLicensable(final String typeId) {
- return licensable.contains(typeId);
- }
+ public boolean isEmailSubscribeAble(final String typeId) {
+ return emailSubscribeAble.contains(typeId);
+ }
- public boolean isPublishModerable(final String typeId) {
- return publishModerable.contains(typeId);
- }
+ public boolean isLicensable(final String typeId) {
+ return licensable.contains(typeId);
+ }
- public boolean isRateable(final String typeId) {
- return rateable.contains(typeId);
- }
+ public boolean isPublishModerable(final String typeId) {
+ return publishModerable.contains(typeId);
+ }
- public boolean isRenamable(final String typeId) {
- return renamable.contains(typeId);
- }
+ public boolean isRateable(final String typeId) {
+ return rateable.contains(typeId);
+ }
- public boolean isTageable(final String typeId) {
- return tageable.contains(typeId);
- }
+ public boolean isRenamable(final String typeId) {
+ return renamable.contains(typeId);
+ }
- public boolean isTranslatable(final String typeId) {
- return translatable.contains(typeId);
- }
+ public boolean isTageable(final String typeId) {
+ return tageable.contains(typeId);
+ }
- public boolean isVersionable(final String typeId) {
- return versionable.contains(typeId);
- }
+ public boolean isTranslatable(final String typeId) {
+ return translatable.contains(typeId);
+ }
- public boolean isXmppComentable(final String typeId) {
- return xmppComentable.contains(typeId);
- }
+ public boolean isVersionable(final String typeId) {
+ return versionable.contains(typeId);
+ }
- public boolean isXmppNotifyCapable(final String typeId) {
- return xmppNotifyCapable.contains(typeId);
- }
+ public boolean isXmppComentable(final String typeId) {
+ return xmppComentable.contains(typeId);
+ }
+ public boolean isXmppNotifyCapable(final String typeId) {
+ return xmppNotifyCapable.contains(typeId);
+ }
+
}
Added: trunk/src/main/java/cc/kune/core/client/registry/EmptyMessagesRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/registry/EmptyMessagesRegistry.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/registry/EmptyMessagesRegistry.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -0,0 +1,39 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package cc.kune.core.client.registry;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class EmptyMessagesRegistry {
+ private final Map<String, String> registry;
+
+ public EmptyMessagesRegistry() {
+ registry = new HashMap<String, String>();
+ }
+
+ public String getContentTypeIcon(final String typeId) {
+ return registry.get(typeId);
+ }
+
+ public void register(final String contentTypeId, final String message) {
+ registry.put(contentTypeId, message);
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/core/client/registry/EmptyMessagesRegistry.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -150,10 +150,10 @@
builder.use(new PlatformServerModule());
builder.use(new DocumentServerModule());
builder.use(new BlogServerModule());
+ builder.use(new WikiServerModule());
+ builder.use(new ChatServerModule());
builder.use(new BarterServerModule());
builder.use(new MeetingServerModule());
- builder.use(new WikiServerModule());
- builder.use(new ChatServerModule());
// builder.use(new GalleryServerModule());
builder.use(new RESTServicesModule());
builder.use(configModule);
Modified: trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -65,6 +65,8 @@
registerContentTypeIcon(TYPE_ROOT, navResources.folder());
registerContentTypeIcon(TYPE_DOCUMENT, navResources.page());
registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
+ registerEmptyMessages(TYPE_FOLDER, "This folder is empty");
+ registerEmptyMessages(TYPE_ROOT, "This folder is empty");
}
}
Modified: trunk/src/main/java/cc/kune/gspace/client/tool/FoldableAbstractClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tool/FoldableAbstractClientTool.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/gspace/client/tool/FoldableAbstractClientTool.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -66,6 +66,10 @@
contentCapabilitiesRegistry.getEmailSubscribeAble().register(typeIds);
}
+ public void registerEmptyMessages(final String contentTypeId, final String message) {
+ contentCapabilitiesRegistry.getEmptyMessagesRegistry().register(contentTypeId, message);
+ }
+
protected void registerLicensableTypes(final String... typeIds) {
contentCapabilitiesRegistry.getLicensable().register(typeIds);
}
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -22,6 +22,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.ui.HasEditHandler;
import cc.kune.common.client.ui.UiUtils;
+import cc.kune.common.client.utils.TextUtils;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.shared.dto.StateContainerDTO;
import cc.kune.core.shared.i18n.I18nTranslationService;
@@ -38,6 +39,7 @@
public abstract class AbstractFolderViewerPanel extends ViewImpl implements FolderViewerView {
private final ContentCapabilitiesRegistry capabilitiesRegistry;
private final ContentTitleWidget contentTitle;
+ private final InlineLabel emptyLabel;
private final FlowPanel emptyPanel;
protected final GSpaceArmor gsArmor;
protected final I18nTranslationService i18n;
@@ -49,7 +51,7 @@
this.i18n = i18n;
this.capabilitiesRegistry = capabilitiesRegistry;
emptyPanel = new FlowPanel();
- final InlineLabel emptyLabel = new InlineLabel(i18n.t("This is empty."));
+ emptyLabel = new InlineLabel(i18n.t("This is empty."));
emptyLabel.setStyleName("k-empty-msg");
emptyPanel.setStyleName("k-empty-folder-panel");
emptyPanel.add(emptyLabel);
@@ -113,7 +115,9 @@
}
@Override
- public void showEmptyMsg() {
+ public void showEmptyMsg(final String contentTypeId) {
gsArmor.getDocContainer().add(emptyPanel);
+ final String msg = capabilitiesRegistry.getEmptyMessagesRegistry().getContentTypeIcon(contentTypeId);
+ emptyLabel.setText(TextUtils.empty(msg) ? i18n.t("This is empty.") : i18n.t(msg));
}
}
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -97,7 +97,7 @@
void setEditableTitle(String title);
- void showEmptyMsg();
+ void showEmptyMsg(String contentTypeId);
}
protected static final String CSSBTN = "k-button";
@@ -195,7 +195,7 @@
private void createChildItems(final ContainerDTO container, final AccessRights containerRights) {
if (container.getContents().size() + container.getChilds().size() == 0) {
- getView().showEmptyMsg();
+ getView().showEmptyMsg(container.getTypeId());
} else {
// Folders
for (final ContainerSimpleDTO childFolder : container.getChilds()) {
Modified: trunk/src/main/java/cc/kune/meets/client/MeetingsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/meets/client/MeetingsClientTool.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/meets/client/MeetingsClientTool.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -61,6 +61,7 @@
private void registerIcons() {
registerContentTypeIcon(TYPE_ROOT, navResources.folder());
registerContentTypeIcon(TYPE_MEETING, navResources.calendar());
+ registerEmptyMessages(TYPE_ROOT, "There isn't any meeting");
}
}
Modified: trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java 2011-06-09 15:15:55 UTC (rev 1400)
+++ trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java 2011-06-09 21:04:18 UTC (rev 1401)
@@ -65,6 +65,8 @@
registerContentTypeIcon(TYPE_ROOT, navResources.folder());
registerContentTypeIcon(TYPE_WIKIPAGE, navResources.wikipage());
registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
+ registerEmptyMessages(TYPE_FOLDER, "There folder is empty");
+ registerEmptyMessages(TYPE_ROOT, "This wiki is empty");
}
}
1
0
Author: vjrj_
Date: 2011-06-09 17:15:55 +0200 (Thu, 09 Jun 2011)
New Revision: 1400
Added:
trunk/src/test/java/cc/kune/core/server/xmpp/
trunk/src/test/java/cc/kune/core/server/xmpp/XmppManagerDefaultTest.java
Removed:
trunk/src/test/java/cc/kune/core/server/xmpp/XmppManagerDefaultTest.java
trunk/src/test/java/org/ourproject/kune/chat/server/managers/
Modified:
trunk/src/main/java/cc/kune/barters/server/BarterServerTool.java
trunk/src/main/java/cc/kune/blogs/server/BlogServerTool.java
trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java
trunk/src/main/java/cc/kune/core/server/content/ContentManager.java
trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java
trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java
trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java
trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
trunk/src/main/java/cc/kune/core/server/xmpp/XmppManager.java
trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java
trunk/src/main/java/cc/kune/domain/Content.java
trunk/src/main/java/cc/kune/meets/server/MeetingServerTool.java
trunk/src/main/java/cc/kune/wiki/server/WikiServerTool.java
Log:
chatroom creation check and content modification fix
Modified: trunk/src/main/java/cc/kune/barters/server/BarterServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/server/BarterServerTool.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/barters/server/BarterServerTool.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -143,7 +143,7 @@
content.setLanguage(user.getLanguage());
content.setTypeId(TYPE_BARTER);
content.setStatus(ContentStatus.publishedOnline);
- contentManager.save(user, content);
+ contentManager.save(content);
return group;
}
Modified: trunk/src/main/java/cc/kune/blogs/server/BlogServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/server/BlogServerTool.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/blogs/server/BlogServerTool.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -135,7 +135,7 @@
content.setTypeId(TYPE_POST);
content.setStatus(ContentStatus.publishedOnline);
- contentManager.save(user, content);
+ contentManager.save(content);
return group;
}
Modified: trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -37,8 +37,10 @@
final String groupShortName = parentToken.getGroup();
final String userShortName = user.getShortName();
final ChatConnection connection = xmppManager.login(userShortName, user.getPassword(), userHash);
- xmppManager.createRoom(connection, roomName, userShortName + userHash, subject);
- xmppManager.disconnect(connection);
+ if (!xmppManager.existRoom(connection, roomName)) {
+ xmppManager.createRoom(connection, roomName, userShortName + userHash, subject);
+ xmppManager.disconnect(connection);
+ }
try {
return creationService.createFolder(groupManager.findByShortName(groupShortName),
ContentUtils.parseId(parentToken.getFolder()), roomName, user.getLanguage(),
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManager.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManager.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -68,7 +68,7 @@
Content renameContent(User user, Long contentId, String newName) throws DefaultException;
- Content save(User user, Content content);
+ Content save(Content content);
Content save(User editor, Content content, String body);
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -139,7 +139,7 @@
}
revision.setBody(body);
newContent.addRevision(revision);
- return persist(newContent);
+ return save(newContent);
}
private MultiFieldQueryParser createMultiFieldParser() {
@@ -233,16 +233,19 @@
final String author = content.getAuthors().get(0).getShortName();
kuneWaveManager.setTitle(getWaveRef(content), newTitle, author);
}
+ setModifiedTime(content);
return content;
}
@Override
- public Content save(final User editor, final Content content) {
+ public Content save(final Content content) {
+ setModifiedTime(content);
return persist(content);
}
@Override
public Content save(final User editor, final Content content, final String body) {
+ setModifiedTime(content);
final Revision revision = new Revision(content);
revision.setEditor(editor);
revision.setTitle(content.getTitle());
@@ -304,9 +307,12 @@
@Override
public void setModifiedOn(final Content content, final long lastModifiedTime) {
content.setModifiedOn(lastModifiedTime);
- // persist(content);//
}
+ private void setModifiedTime(final Content content) {
+ setModifiedOn(content, System.currentTimeMillis());
+ }
+
@Override
public void setPublishedOn(final User user, final Long contentId, final Date publishedOn)
throws DefaultException {
Modified: trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -50,167 +50,171 @@
import com.google.inject.persist.Transactional;
public class DatabaseInitializer {
- private final ContentManager contentManager;
- private final I18nCountryManager countryManager;
- private final GroupManager groupManager;
- private final KuneWaveManager kuneWaveManager;
- private final I18nLanguageManager languageManager;
- private final LicenseManager licenseManager;
- private final DatabaseProperties properties;
- private final I18nTranslationManager translationManager;
- private final UserManager userManager;
+ private final ContentManager contentManager;
+ private final I18nCountryManager countryManager;
+ private final GroupManager groupManager;
+ private final KuneWaveManager kuneWaveManager;
+ private final I18nLanguageManager languageManager;
+ private final LicenseManager licenseManager;
+ private final DatabaseProperties properties;
+ private final I18nTranslationManager translationManager;
+ private final UserManager userManager;
- @Inject
- public DatabaseInitializer(final DatabaseProperties properties, final UserManager userManager,
- final GroupManager groupManager, final LicenseManager licenseManager,
- final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
- final I18nTranslationManager translationManager, final ContentManager contentManager,
- final KuneWaveManager kuneWaveManager) {
- this.properties = properties;
- this.userManager = userManager;
- this.groupManager = groupManager;
- this.licenseManager = licenseManager;
- this.languageManager = languageManager;
- this.countryManager = countryManager;
- this.translationManager = translationManager;
- this.contentManager = contentManager;
- this.kuneWaveManager = kuneWaveManager;
- }
+ @Inject
+ public DatabaseInitializer(final DatabaseProperties properties, final UserManager userManager,
+ final GroupManager groupManager, final LicenseManager licenseManager,
+ final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
+ final I18nTranslationManager translationManager, final ContentManager contentManager,
+ final KuneWaveManager kuneWaveManager) {
+ this.properties = properties;
+ this.userManager = userManager;
+ this.groupManager = groupManager;
+ this.licenseManager = licenseManager;
+ this.languageManager = languageManager;
+ this.countryManager = countryManager;
+ this.translationManager = translationManager;
+ this.contentManager = contentManager;
+ this.kuneWaveManager = kuneWaveManager;
+ }
- private void createDefUsersGroup() throws Exception, UserMustBeLoggedException {
- final String adminName = properties.getAdminUserName();
- final String adminShortName = properties.getAdminShortName();
- final String adminEmail = properties.getAdminEmail();
- final String adminPassword = properties.getAdminPassword();
+ private void createDefUsersGroup() throws Exception, UserMustBeLoggedException {
+ final String adminName = properties.getAdminUserName();
+ final String adminShortName = properties.getAdminShortName();
+ final String adminEmail = properties.getAdminEmail();
+ final String adminPassword = properties.getAdminPassword();
- final PasswordDigest passwdDigest = new PasswordDigest(adminPassword.toCharArray());
- userManager.createWaveAccount(adminShortName, passwdDigest);
- final User user = new User(adminShortName, adminName, adminEmail, adminPassword, passwdDigest.getDigest(),
- passwdDigest.getSalt(), languageManager.findByCode("en"), countryManager.findByCode("GB"),
- TimeZone.getDefault());
- groupManager.createUserGroup(user, false);
- final User dummyUser = new User("dummy", "dummy user", "example(a)example.com", adminPassword,
- passwdDigest.getDigest(), passwdDigest.getSalt(), languageManager.findByCode("en"),
- countryManager.findByCode("GB"), TimeZone.getDefault());
- groupManager.createUserGroup(dummyUser, false);
+ final PasswordDigest passwdDigest = new PasswordDigest(adminPassword.toCharArray());
+ userManager.createWaveAccount(adminShortName, passwdDigest);
+ final User user = new User(adminShortName, adminName, adminEmail, adminPassword,
+ passwdDigest.getDigest(), passwdDigest.getSalt(), languageManager.findByCode("en"),
+ countryManager.findByCode("GB"), TimeZone.getDefault());
+ groupManager.createUserGroup(user, false);
+ final User dummyUser = new User("dummy", "dummy user", "example(a)example.com", adminPassword,
+ passwdDigest.getDigest(), passwdDigest.getSalt(), languageManager.findByCode("en"),
+ countryManager.findByCode("GB"), TimeZone.getDefault());
+ groupManager.createUserGroup(dummyUser, false);
- final String siteName = properties.getDefaultSiteName();
- final String siteShortName = properties.getDefaultSiteShortName();
- final String defaultLicenseId = properties.getDefaultLicense();
- final License defaultLicense = licenseManager.findByShortName(defaultLicenseId);
+ final String siteName = properties.getDefaultSiteName();
+ final String siteShortName = properties.getDefaultSiteShortName();
+ final String defaultLicenseId = properties.getDefaultLicense();
+ final License defaultLicense = licenseManager.findByShortName(defaultLicenseId);
- final Group siteGroup = new Group(siteShortName, siteName, defaultLicense, GroupType.PROJECT);
- groupManager.createGroup(siteGroup, user, ContentConstants.INITIAL_CONTENT.replaceAll("\\[%s\\]", siteName));
+ final Group siteGroup = new Group(siteShortName, siteName, defaultLicense, GroupType.PROJECT);
+ groupManager.createGroup(siteGroup, user,
+ ContentConstants.INITIAL_CONTENT.replaceAll("\\[%s\\]", siteName));
- final Content defaultContent = siteGroup.getDefaultContent();
- contentManager.setStatus(defaultContent.getId(), ContentStatus.publishedOnline);
- contentManager.save(user, defaultContent);
+ final Content defaultContent = siteGroup.getDefaultContent();
+ contentManager.setStatus(defaultContent.getId(), ContentStatus.publishedOnline);
+ contentManager.save(defaultContent);
- userManager.reIndex();
- groupManager.reIndex();
+ userManager.reIndex();
+ groupManager.reIndex();
- }
+ }
- private void createLicenses() {
- // FIXME: Add CC RDF info (seems CC is working on new forms to add
- // license metadata)
- License license = new License("by-v3.0", "Creative Commons Attribution", "None",
- "http://creativecommons.org/licenses/by/3.0/", true, false, false, "", "images/lic/by80x15.png");
- licenseManager.persist(license);
- license = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "None",
- "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", "images/lic/bysa80x15.png");
- licenseManager.persist(license);
- license = new License("by-nd-v3.0", "Creative Commons Attribution-NoDerivs", "None",
- "http://creativecommons.org/licenses/by-nd/3.0/", true, false, false, "", "images/lic/bynd80x15.png");
- licenseManager.persist(license);
- license = new License("by-nc-v3.0", "Creative Commons Attribution-NonCommercial", "None",
- "http://creativecommons.org/licenses/by-nc/3.0/", true, false, false, "", "images/lic/bync80x15.png");
- licenseManager.persist(license);
- license = new License("by-nc-sa-v3.0", "Creative Commons Attribution-NonCommercial-ShareAlike", "None",
- "http://creativecommons.org/licenses/by-nc-sa/3.0/", true, false, false, "",
- "images/lic/byncsa80x15.png");
- licenseManager.persist(license);
- license = new License("by-nc-nd-v3.0", "Creative Commons Attribution-NonCommercial-NoDerivs", "None",
- "http://creativecommons.org/licenses/by-nc-nd/3.0/", true, false, false, "",
- "images/lic/byncnd80x15.png");
- licenseManager.persist(license);
- license = new License(
- "gfdl-v1-3",
- "GNU Free Documentation License",
- "The GNU Free Documentation License (GNU FDL or simply GFDL) is a copyleft license for free documentation, giving readers the rights to copy, redistribute and modify a work and requires all copies and derivatives to be available under the same license.",
- "http://www.gnu.org/copyleft/fdl.html", false, true, false, "", "images/lic/gnu-fdl.gif");
- licenseManager.persist(license);
- license = new License(
- "fal",
- "Free Art License",
- "The Free Art license is a French copyleft license for works of art. It authorises the user to freely copy, spread, and transform creative works while respecting the author's rights.",
- "http://artlibre.org/licence/lal/en/", false, true, false, "", "images/lic/fal-license.gif");
- licenseManager.persist(license);
- license = new License(
- "gpl-v3",
- "GNU General Public License",
- "This license grant the recipients of a computer program the rights of the free software definition and uses copyleft to ensure the freedoms are preserved, even when the work is changed or added to.",
- "http://www.gnu.org/licenses/gpl.html", false, true, false, "", "images/lic/gnu-gpl.gif");
- licenseManager.persist(license);
- }
+ private void createLicenses() {
+ // FIXME: Add CC RDF info (seems CC is working on new forms to add
+ // license metadata)
+ License license = new License("by-v3.0", "Creative Commons Attribution", "None",
+ "http://creativecommons.org/licenses/by/3.0/", true, false, false, "", "images/lic/by80x15.png");
+ licenseManager.persist(license);
+ license = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "None",
+ "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "",
+ "images/lic/bysa80x15.png");
+ licenseManager.persist(license);
+ license = new License("by-nd-v3.0", "Creative Commons Attribution-NoDerivs", "None",
+ "http://creativecommons.org/licenses/by-nd/3.0/", true, false, false, "",
+ "images/lic/bynd80x15.png");
+ licenseManager.persist(license);
+ license = new License("by-nc-v3.0", "Creative Commons Attribution-NonCommercial", "None",
+ "http://creativecommons.org/licenses/by-nc/3.0/", true, false, false, "",
+ "images/lic/bync80x15.png");
+ licenseManager.persist(license);
+ license = new License("by-nc-sa-v3.0", "Creative Commons Attribution-NonCommercial-ShareAlike",
+ "None", "http://creativecommons.org/licenses/by-nc-sa/3.0/", true, false, false, "",
+ "images/lic/byncsa80x15.png");
+ licenseManager.persist(license);
+ license = new License("by-nc-nd-v3.0", "Creative Commons Attribution-NonCommercial-NoDerivs",
+ "None", "http://creativecommons.org/licenses/by-nc-nd/3.0/", true, false, false, "",
+ "images/lic/byncnd80x15.png");
+ licenseManager.persist(license);
+ license = new License(
+ "gfdl-v1-3",
+ "GNU Free Documentation License",
+ "The GNU Free Documentation License (GNU FDL or simply GFDL) is a copyleft license for free documentation, giving readers the rights to copy, redistribute and modify a work and requires all copies and derivatives to be available under the same license.",
+ "http://www.gnu.org/copyleft/fdl.html", false, true, false, "", "images/lic/gnu-fdl.gif");
+ licenseManager.persist(license);
+ license = new License(
+ "fal",
+ "Free Art License",
+ "The Free Art license is a French copyleft license for works of art. It authorises the user to freely copy, spread, and transform creative works while respecting the author's rights.",
+ "http://artlibre.org/licence/lal/en/", false, true, false, "", "images/lic/fal-license.gif");
+ licenseManager.persist(license);
+ license = new License(
+ "gpl-v3",
+ "GNU General Public License",
+ "This license grant the recipients of a computer program the rights of the free software definition and uses copyleft to ensure the freedoms are preserved, even when the work is changed or added to.",
+ "http://www.gnu.org/licenses/gpl.html", false, true, false, "", "images/lic/gnu-gpl.gif");
+ licenseManager.persist(license);
+ }
- public void createOthers() {
- final I18nLanguage english = new I18nLanguage(Long.valueOf(1819), "en", "ltr", "English", "", "", "en", "eng",
- "eng", false, "", "", "", "c == 1 ? 1 : 2", null, "L", "MMM d\\, yyyy");
- final I18nLanguage spanish = new I18nLanguage(Long.valueOf(5889), "es", "ltr", "Spanish", "", "", "es", "spa",
- "spa", true, "Español", "", "", "c == 1 ? 1 : 2", null, "L", "dd/MM/yyyy");
- languageManager.persist(english);
- languageManager.persist(spanish);
- final I18nCountry gb = new I18nCountry(Long.valueOf(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom",
- "western", ",");
- countryManager.persist(gb);
- final I18nTranslation test = new I18nTranslation("test", english, "test");
- translationManager.persist(test);
- }
+ public void createOthers() {
+ final I18nLanguage english = new I18nLanguage(Long.valueOf(1819), "en", "ltr", "English", "", "",
+ "en", "eng", "eng", false, "", "", "", "c == 1 ? 1 : 2", null, "L", "MMM d\\, yyyy");
+ final I18nLanguage spanish = new I18nLanguage(Long.valueOf(5889), "es", "ltr", "Spanish", "", "",
+ "es", "spa", "spa", true, "Español", "", "", "c == 1 ? 1 : 2", null, "L", "dd/MM/yyyy");
+ languageManager.persist(english);
+ languageManager.persist(spanish);
+ final I18nCountry gb = new I18nCountry(Long.valueOf(75), "GB", "GBP", ".", "£%n", "", ".",
+ "United Kingdom", "western", ",");
+ countryManager.persist(gb);
+ final I18nTranslation test = new I18nTranslation("test", english, "test");
+ translationManager.persist(test);
+ }
- private void createProperties() {
- // final PropertyGroup groupProps = new PropertyGroup(Group.PROPS_ID);
- // final PropertyGroup userProps = new PropertyGroup(User.PROPS_ID);
- // propGroupManager.persist(userProps);
- // propGroupManager.persist(groupProps);
- // final PropertySubgroup userXmppProps = new
- // PropertySubgroup("user-xmpp");
- // propSubgroupManager.persist(userXmppProps);
+ private void createProperties() {
+ // final PropertyGroup groupProps = new PropertyGroup(Group.PROPS_ID);
+ // final PropertyGroup userProps = new PropertyGroup(User.PROPS_ID);
+ // propGroupManager.persist(userProps);
+ // propGroupManager.persist(groupProps);
+ // final PropertySubgroup userXmppProps = new
+ // PropertySubgroup("user-xmpp");
+ // propSubgroupManager.persist(userXmppProps);
- // final Property colorProp = new Property("xmpp_color",
- // "Choose your color", Property.Type.STRING, true, "blue",
- // userProps, userXmppProps);
- // final ArrayList<String> subValues = new ArrayList<String>();
- // subValues.add(SubscriptionMode.autoAcceptAll.toString());
- // subValues.add(SubscriptionMode.autoRejectAll.toString());
- // subValues.add(SubscriptionMode.manual.toString());
- // final Property subProp = new Property("xmpp_subcriptionmode",
- // "New buddies options", Property.Type.ENUM, true,
- // SubscriptionMode.manual.toString(), subValues, userProps,
- // userXmppProps);
- // final Property unanavProp = new
- // Property("xmpp_unanavailableitemsvisible",
- // "Show unavailable buddies",
- // Property.Type.BOOL, true, Boolean.toString(true), userProps,
- // userXmppProps);
- // propertyManager.persist(colorProp);
- // propertyManager.persist(subProp);
- // propertyManager.persist(unanavProp);
- }
+ // final Property colorProp = new Property("xmpp_color",
+ // "Choose your color", Property.Type.STRING, true, "blue",
+ // userProps, userXmppProps);
+ // final ArrayList<String> subValues = new ArrayList<String>();
+ // subValues.add(SubscriptionMode.autoAcceptAll.toString());
+ // subValues.add(SubscriptionMode.autoRejectAll.toString());
+ // subValues.add(SubscriptionMode.manual.toString());
+ // final Property subProp = new Property("xmpp_subcriptionmode",
+ // "New buddies options", Property.Type.ENUM, true,
+ // SubscriptionMode.manual.toString(), subValues, userProps,
+ // userXmppProps);
+ // final Property unanavProp = new
+ // Property("xmpp_unanavailableitemsvisible",
+ // "Show unavailable buddies",
+ // Property.Type.BOOL, true, Boolean.toString(true), userProps,
+ // userXmppProps);
+ // propertyManager.persist(colorProp);
+ // propertyManager.persist(subProp);
+ // propertyManager.persist(unanavProp);
+ }
- public void initConditional() throws Exception {
- try {
- groupManager.getSiteDefaultGroup();
- } catch (final NoResultException e) {
- initDatabase();
- }
+ public void initConditional() throws Exception {
+ try {
+ groupManager.getSiteDefaultGroup();
+ } catch (final NoResultException e) {
+ initDatabase();
}
+ }
- @Transactional
- public void initDatabase() throws Exception {
- createOthers();
- createLicenses();
- createProperties();
- createDefUsersGroup();
- }
+ @Transactional
+ public void initDatabase() throws Exception {
+ createOthers();
+ createLicenses();
+ createProperties();
+ createDefUsersGroup();
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -48,126 +48,127 @@
@Singleton
public class GroupRPC implements RPC, GroupService {
- private final ContentManager contentManager;
- private final GroupManager groupManager;
- private final I18nTranslationService i18n;
- private final KuneWaveManagerDefault kuneWaveManager;
- private final Mapper mapper;
- private final Provider<UserSession> userSessionProvider;
+ private final ContentManager contentManager;
+ private final GroupManager groupManager;
+ private final I18nTranslationService i18n;
+ private final KuneWaveManagerDefault kuneWaveManager;
+ private final Mapper mapper;
+ private final Provider<UserSession> userSessionProvider;
- @Inject
- public GroupRPC(final Provider<UserSession> userSessionProvider, final GroupManager groupManager,
- final ContentManager contentManager, final Mapper mapper, final KuneWaveManagerDefault kuneWaveManager,
- final I18nTranslationService i18n) {
- this.userSessionProvider = userSessionProvider;
- this.groupManager = groupManager;
- this.contentManager = contentManager;
- this.mapper = mapper;
- this.kuneWaveManager = kuneWaveManager;
- this.i18n = i18n;
- }
+ @Inject
+ public GroupRPC(final Provider<UserSession> userSessionProvider, final GroupManager groupManager,
+ final ContentManager contentManager, final Mapper mapper,
+ final KuneWaveManagerDefault kuneWaveManager, final I18nTranslationService i18n) {
+ this.userSessionProvider = userSessionProvider;
+ this.groupManager = groupManager;
+ this.contentManager = contentManager;
+ this.mapper = mapper;
+ this.kuneWaveManager = kuneWaveManager;
+ this.i18n = i18n;
+ }
- @Override
- @Authenticated
- @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional
- public void changeDefLicense(final String userHash, final StateToken groupToken, final LicenseDTO license) {
- final User user = getUserLogged();
- final Group group = groupManager.findByShortName(groupToken.getGroup());
- groupManager.changeDefLicense(user, group, license.getShortName());
- }
+ @Override
+ @Authenticated
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
+ @Transactional
+ public void changeDefLicense(final String userHash, final StateToken groupToken,
+ final LicenseDTO license) {
+ final User user = getUserLogged();
+ final Group group = groupManager.findByShortName(groupToken.getGroup());
+ groupManager.changeDefLicense(user, group, license.getShortName());
+ }
- @Override
- @Authenticated
- @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional
- public void changeGroupWsTheme(final String userHash, final StateToken groupToken, final String theme)
- throws DefaultException {
- final User user = getUserLogged();
- final Group group = groupManager.findByShortName(groupToken.getGroup());
- groupManager.changeWsTheme(user, group, theme);
- }
+ @Override
+ @Authenticated
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
+ @Transactional
+ public void changeGroupWsTheme(final String userHash, final StateToken groupToken, final String theme)
+ throws DefaultException {
+ final User user = getUserLogged();
+ final Group group = groupManager.findByShortName(groupToken.getGroup());
+ groupManager.changeWsTheme(user, group, theme);
+ }
- @Override
- @Authenticated
- @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional
- public GroupDTO clearGroupBackImage(final String userHash, final StateToken token) {
- final Group group = groupManager.findByShortName(token.getGroup());
- groupManager.clearGroupBackImage(group);
- return mapper.map(group, GroupDTO.class);
- }
+ @Override
+ @Authenticated
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
+ @Transactional
+ public GroupDTO clearGroupBackImage(final String userHash, final StateToken token) {
+ final Group group = groupManager.findByShortName(token.getGroup());
+ groupManager.clearGroupBackImage(group);
+ return mapper.map(group, GroupDTO.class);
+ }
- @Override
- @Authenticated
- @Transactional(rollbackOn = DefaultException.class)
- public StateToken createNewGroup(final String userHash, final GroupDTO groupDTO, final String publicDesc,
- final String tags, final String[] enabledTools) throws DefaultException {
- final User user = getUserLogged();
- final Group group = mapper.map(groupDTO, Group.class);
- final Group newGroup = groupManager.createGroup(group, user, publicDesc);
- // This is necessary?
- contentManager.save(user, newGroup.getDefaultContent());
- // contentManager.setTags(user, defContentId, tags);
- return newGroup.getDefaultContent().getStateToken();
- };
+ @Override
+ @Authenticated
+ @Transactional(rollbackOn = DefaultException.class)
+ public StateToken createNewGroup(final String userHash, final GroupDTO groupDTO,
+ final String publicDesc, final String tags, final String[] enabledTools) throws DefaultException {
+ final User user = getUserLogged();
+ final Group group = mapper.map(groupDTO, Group.class);
+ final Group newGroup = groupManager.createGroup(group, user, publicDesc);
+ // This is necessary?
+ contentManager.save(newGroup.getDefaultContent());
+ // contentManager.setTags(user, defContentId, tags);
+ return newGroup.getDefaultContent().getStateToken();
+ };
- @Override
- @Authenticated(mandatory = false)
- @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer)
- public GroupDTO getGroup(final String userHash, final StateToken groupToken) {
- final Group group = groupManager.findByShortName(groupToken.getGroup());
- return mapper.map(group, GroupDTO.class);
- }
+ @Override
+ @Authenticated(mandatory = false)
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer)
+ public GroupDTO getGroup(final String userHash, final StateToken groupToken) {
+ final Group group = groupManager.findByShortName(groupToken.getGroup());
+ return mapper.map(group, GroupDTO.class);
+ }
- private User getUserLogged() {
- final UserSession userSession = getUserSession();
- final User user = userSession.getUser();
- return user;
- }
+ private User getUserLogged() {
+ final UserSession userSession = getUserSession();
+ final User user = userSession.getUser();
+ return user;
+ }
- private UserSession getUserSession() {
- return userSessionProvider.get();
- }
+ private UserSession getUserSession() {
+ return userSessionProvider.get();
+ }
- @Override
- @Authenticated
- @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional
- public GroupDTO setGroupBackImage(final String userHash, final StateToken token) {
- final Group group = groupManager.findByShortName(token.getGroup());
- final Content content = contentManager.find(ContentUtils.parseId(token.getDocument()));
- groupManager.setGroupBackImage(group, content);
- return mapper.map(group, GroupDTO.class);
- }
+ @Override
+ @Authenticated
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
+ @Transactional
+ public GroupDTO setGroupBackImage(final String userHash, final StateToken token) {
+ final Group group = groupManager.findByShortName(token.getGroup());
+ final Content content = contentManager.find(ContentUtils.parseId(token.getDocument()));
+ groupManager.setGroupBackImage(group, content);
+ return mapper.map(group, GroupDTO.class);
+ }
- @Override
- @Authenticated(mandatory = true)
- @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
- @Transactional
- public void setGroupNewMembersJoiningPolicy(final String userHash, final StateToken token,
- final AdmissionType admissionPolicy) {
- final Group group = groupManager.findByShortName(token.getGroup());
- group.setAdmissionType(AdmissionType.valueOf(admissionPolicy.toString()));
- }
+ @Override
+ @Authenticated(mandatory = true)
+ @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
+ @Transactional
+ public void setGroupNewMembersJoiningPolicy(final String userHash, final StateToken token,
+ final AdmissionType admissionPolicy) {
+ final Group group = groupManager.findByShortName(token.getGroup());
+ group.setAdmissionType(AdmissionType.valueOf(admissionPolicy.toString()));
+ }
- @Override
- @Authenticated(mandatory = true)
- @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
- @Transactional
- public void setSocialNetworkVisibility(final String userHash, final StateToken token,
- final SocialNetworkVisibility visibility) {
- final Group group = groupManager.findByShortName(token.getGroup());
- group.getSocialNetwork().setVisibility(visibility);
- }
+ @Override
+ @Authenticated(mandatory = true)
+ @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
+ @Transactional
+ public void setSocialNetworkVisibility(final String userHash, final StateToken token,
+ final SocialNetworkVisibility visibility) {
+ final Group group = groupManager.findByShortName(token.getGroup());
+ group.getSocialNetwork().setVisibility(visibility);
+ }
- @Override
- @Authenticated
- @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional
- public void setToolEnabled(final String userHash, final StateToken groupToken, final String toolName,
- final boolean enabled) {
- groupManager.setToolEnabled(getUserLogged(), groupToken.getGroup(), toolName, enabled);
- }
+ @Override
+ @Authenticated
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
+ @Transactional
+ public void setToolEnabled(final String userHash, final StateToken groupToken, final String toolName,
+ final boolean enabled) {
+ groupManager.setToolEnabled(getUserLogged(), groupToken.getGroup(), toolName, enabled);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -61,143 +61,145 @@
@Singleton
public class UserRPC implements RPC, UserService {
- private final ContentManager contentManager;
- private final GroupManager groupManager;
- private final I18nTranslationService i18n;
- private final Mapper mapper;
- private final Provider<SessionService> sessionServiceProvider;
- private final UserInfoService userInfoService;
- private final UserManager userManager;
- private final Provider<UserSession> userSessionProvider;
- private final Boolean useSocketIO;
- private final CustomWaveClientServlet waveClientServlet;
- private final SessionManager waveSessionManager;
+ private final ContentManager contentManager;
+ private final GroupManager groupManager;
+ private final I18nTranslationService i18n;
+ private final Mapper mapper;
+ private final Provider<SessionService> sessionServiceProvider;
+ private final UserInfoService userInfoService;
+ private final UserManager userManager;
+ private final Provider<UserSession> userSessionProvider;
+ private final Boolean useSocketIO;
+ private final CustomWaveClientServlet waveClientServlet;
+ private final SessionManager waveSessionManager;
- @Inject
- public UserRPC(final Provider<SessionService> sessionServiceProvider,
- final Provider<UserSession> userSessionProvider, final UserManager userManager,
- @Named(CoreSettings.USE_SOCKETIO) final Boolean useSocketIO, final GroupManager groupManager,
- final UserInfoService userInfoService, final Mapper mapper, final SessionManager waveSessionManager,
- final CustomWaveClientServlet waveClientServlet, final I18nTranslationService i18n,
- final ContentManager contentManager) {
- this.sessionServiceProvider = sessionServiceProvider;
- this.userSessionProvider = userSessionProvider;
- this.userManager = userManager;
- this.useSocketIO = useSocketIO;
- this.groupManager = groupManager;
- this.userInfoService = userInfoService;
- this.mapper = mapper;
- this.waveSessionManager = waveSessionManager;
- this.waveClientServlet = waveClientServlet;
- this.i18n = i18n;
- this.contentManager = contentManager;
- }
+ @Inject
+ public UserRPC(final Provider<SessionService> sessionServiceProvider,
+ final Provider<UserSession> userSessionProvider, final UserManager userManager,
+ @Named(CoreSettings.USE_SOCKETIO) final Boolean useSocketIO, final GroupManager groupManager,
+ final UserInfoService userInfoService, final Mapper mapper,
+ final SessionManager waveSessionManager, final CustomWaveClientServlet waveClientServlet,
+ final I18nTranslationService i18n, final ContentManager contentManager) {
+ this.sessionServiceProvider = sessionServiceProvider;
+ this.userSessionProvider = userSessionProvider;
+ this.userManager = userManager;
+ this.useSocketIO = useSocketIO;
+ this.groupManager = groupManager;
+ this.userInfoService = userInfoService;
+ this.mapper = mapper;
+ this.waveSessionManager = waveSessionManager;
+ this.waveClientServlet = waveClientServlet;
+ this.i18n = i18n;
+ this.contentManager = contentManager;
+ }
- @Override
- @Transactional(rollbackOn = DefaultException.class)
- public void createUser(final UserDTO userDTO, final boolean wantPersonalHomepage) throws DefaultException {
- final User user = userManager.createUser(userDTO.getShortName(), userDTO.getName(), userDTO.getEmail(),
- userDTO.getPassword(), userDTO.getLanguage().getCode(), userDTO.getCountry().getCode(),
- userDTO.getTimezone().getId());
- final Group userGroup = groupManager.createUserGroup(user, wantPersonalHomepage);
- // Is this necessary? try to remove (used when we were setting the def
- // content
- contentManager.save(user, userGroup.getDefaultContent());
- }
+ @Override
+ @Transactional(rollbackOn = DefaultException.class)
+ public void createUser(final UserDTO userDTO, final boolean wantPersonalHomepage)
+ throws DefaultException {
+ final User user = userManager.createUser(userDTO.getShortName(), userDTO.getName(),
+ userDTO.getEmail(), userDTO.getPassword(), userDTO.getLanguage().getCode(),
+ userDTO.getCountry().getCode(), userDTO.getTimezone().getId());
+ final Group userGroup = groupManager.createUserGroup(user, wantPersonalHomepage);
+ // Is this necessary? try to remove (used when we were setting the def
+ // content
+ contentManager.save(userGroup.getDefaultContent());
+ }
- @Override
- @Authenticated
- @Transactional
- @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
- public String getUserAvatarBaser64(final String userHash, final StateToken userToken) throws DefaultException {
- final UserSession userSession = getUserSession();
- final User user = userSession.getUser();
- final Group userGroup = user.getUserGroup();
- if (!userGroup.getShortName().equals(userToken.getGroup())) {
- throw new AccessViolationException();
- }
- if (userGroup.hasLogo()) {
- return Base64.encodeBytes(userGroup.getLogo());
- } else {
- throw new DefaultException("Unexpected programatic exception (user has no logo)");
- }
+ @Override
+ @Authenticated
+ @Transactional
+ @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
+ public String getUserAvatarBaser64(final String userHash, final StateToken userToken)
+ throws DefaultException {
+ final UserSession userSession = getUserSession();
+ final User user = userSession.getUser();
+ final Group userGroup = user.getUserGroup();
+ if (!userGroup.getShortName().equals(userToken.getGroup())) {
+ throw new AccessViolationException();
}
-
- private UserSession getUserSession() {
- return userSessionProvider.get();
+ if (userGroup.hasLogo()) {
+ return Base64.encodeBytes(userGroup.getLogo());
+ } else {
+ throw new DefaultException("Unexpected programatic exception (user has no logo)");
}
+ }
- @Override
- @Authenticated(mandatory = true)
- public WaveClientParams getWaveClientParameters(final String userHash) {
- final HttpSession sessionFromToken = waveSessionManager.getSessionFromToken(userHash);
- final JSONObject sessionJson = waveClientServlet.getSessionJson(sessionFromToken);
- final JSONObject clientFlags = new JSONObject(); // waveClientServlet.getClientFlags();
- return new WaveClientParams(sessionJson.toString(), clientFlags.toString(), useSocketIO);
- }
+ private UserSession getUserSession() {
+ return userSessionProvider.get();
+ }
- private UserInfoDTO loadUserInfo(final User user) throws DefaultException {
- final UserInfo userInfo = userInfoService.buildInfo(user, getUserSession().getHash());
- return mapper.map(userInfo, UserInfoDTO.class);
- }
+ @Override
+ @Authenticated(mandatory = true)
+ public WaveClientParams getWaveClientParameters(final String userHash) {
+ final HttpSession sessionFromToken = waveSessionManager.getSessionFromToken(userHash);
+ final JSONObject sessionJson = waveClientServlet.getSessionJson(sessionFromToken);
+ final JSONObject clientFlags = new JSONObject(); // waveClientServlet.getClientFlags();
+ return new WaveClientParams(sessionJson.toString(), clientFlags.toString(), useSocketIO);
+ }
- @Override
- @Transactional
- public UserInfoDTO login(final String nickOrEmail, final String passwd, final String waveToken)
- throws DefaultException {
- // final SessionService sessionService = sessionServiceProvider.get();
- // sessionService.getNewSession();
- final User user = userManager.login(nickOrEmail, passwd);
- return loginUser(user, waveToken);
- }
+ private UserInfoDTO loadUserInfo(final User user) throws DefaultException {
+ final UserInfo userInfo = userInfoService.buildInfo(user, getUserSession().getHash());
+ return mapper.map(userInfo, UserInfoDTO.class);
+ }
- private UserInfoDTO loginUser(final User user, final String waveToken) throws DefaultException {
- if (user != null) {
- // Maybe use terracotta.org for http session clustering
- getUserSession().login(user, waveToken);
- return loadUserInfo(user);
- } else {
- throw new UserAuthException();
- }
- };
+ @Override
+ @Transactional
+ public UserInfoDTO login(final String nickOrEmail, final String passwd, final String waveToken)
+ throws DefaultException {
+ // final SessionService sessionService = sessionServiceProvider.get();
+ // sessionService.getNewSession();
+ final User user = userManager.login(nickOrEmail, passwd);
+ return loginUser(user, waveToken);
+ }
- @Override
- @Authenticated
- @Transactional
- public void logout(final String userHash) throws DefaultException {
- getUserSession().logout();
- // FIXME final SessionService sessionService =
- // sessionServiceProvider.get();
- // FIXME sessionService.getNewSession();
+ private UserInfoDTO loginUser(final User user, final String waveToken) throws DefaultException {
+ if (user != null) {
+ // Maybe use terracotta.org for http session clustering
+ getUserSession().login(user, waveToken);
+ return loadUserInfo(user);
+ } else {
+ throw new UserAuthException();
}
+ };
- @Override
- @Authenticated(mandatory = false)
- @Transactional
- public void onlyCheckSession(final String userHash) throws DefaultException {
- // Do nothing @Authenticated checks user session
- }
+ @Override
+ @Authenticated
+ @Transactional
+ public void logout(final String userHash) throws DefaultException {
+ getUserSession().logout();
+ // FIXME final SessionService sessionService =
+ // sessionServiceProvider.get();
+ // FIXME sessionService.getNewSession();
+ }
- @Override
- @Authenticated
- @Transactional
- public UserInfoDTO reloadUserInfo(final String userHash) throws DefaultException {
- final UserSession userSession = getUserSession();
- final User user = userSession.getUser();
- return loadUserInfo(user);
- }
+ @Override
+ @Authenticated(mandatory = false)
+ @Transactional
+ public void onlyCheckSession(final String userHash) throws DefaultException {
+ // Do nothing @Authenticated checks user session
+ }
- @Override
- @Authenticated(mandatory = true)
- @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
- @Transactional
- public void setBuddiesVisibility(final String userHash, final StateToken groupToken,
- final UserSNetVisibility visibility) {
- final UserSession userSession = getUserSession();
- final User user = userSession.getUser();
- if (!groupToken.getGroup().equals(user.getShortName())) {
- throw new AccessViolationException();
- }
- user.setSNetVisibility(visibility);
+ @Override
+ @Authenticated
+ @Transactional
+ public UserInfoDTO reloadUserInfo(final String userHash) throws DefaultException {
+ final UserSession userSession = getUserSession();
+ final User user = userSession.getUser();
+ return loadUserInfo(user);
+ }
+
+ @Override
+ @Authenticated(mandatory = true)
+ @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
+ @Transactional
+ public void setBuddiesVisibility(final String userHash, final StateToken groupToken,
+ final UserSNetVisibility visibility) {
+ final UserSession userSession = getUserSession();
+ final User user = userSession.getUser();
+ if (!groupToken.getGroup().equals(user.getShortName())) {
+ throw new AccessViolationException();
}
+ user.setSNetVisibility(visibility);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -114,7 +114,8 @@
// Well we "cache" the last modified time of waves in db (w'll find
// another way to do it better in the future with db persitence of
// waves)
- contentManager.setModifiedOn(content, wavelet.getLastModifiedTime());
+ // FIXME, how to do this
+ // contentManager.setModifiedOn(content, wavelet.getLastModifiedTime());
// contentManager.save(userLogged, content, currentContent);
state.setTitle(wavelet.getTitle());
state.setIsParticipant(userLogged != User.UNKNOWN_USER ? kuneWaveManager.isParticipant(wavelet,
Modified: trunk/src/main/java/cc/kune/core/server/xmpp/XmppManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/XmppManager.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/XmppManager.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -31,6 +31,8 @@
void disconnect(ChatConnection connection);
+ boolean existRoom(ChatConnection conn, String roomName);
+
Collection<RosterEntry> getRoster(ChatConnection connection);
Room joinRoom(ChatConnection connection, String roomName, String alias);
Modified: trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -99,6 +99,7 @@
final XmppConnection xConn = (XmppConnection) conn;
final MultiUserChat muc = new MultiUserChat(xConn.getConn(), getRoomName(roomName));
try {
+
muc.destroy("Room removed by kune server", "");
} catch (final XMPPException e) {
throw new ChatException(e);
@@ -112,6 +113,14 @@
}
+ @Override
+ public boolean existRoom(final ChatConnection conn, final String roomName) {
+ final XmppConnection xConn = (XmppConnection) conn;
+ final MultiUserChat muc = new MultiUserChat(xConn.getConn(), getRoomName(roomName));
+ final Iterator<String> occupants = muc.getOccupants();
+ return occupants != null;
+ }
+
private String getRoomName(final String room) {
return room + "@" + chatProperties.getRoomHost();
}
Modified: trunk/src/main/java/cc/kune/domain/Content.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Content.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/domain/Content.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -143,6 +143,7 @@
translations = new ArrayList<ContentTranslation>();
authors = new ArrayList<User>();
createdOn = System.currentTimeMillis();
+ modifiedOn = System.currentTimeMillis();
lastRevision = new Revision(this);
accessLists = null;
status = ContentStatus.editingInProgress;
Modified: trunk/src/main/java/cc/kune/meets/server/MeetingServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/meets/server/MeetingServerTool.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/meets/server/MeetingServerTool.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -132,7 +132,7 @@
content.setLanguage(user.getLanguage());
content.setTypeId(TYPE_MEETING);
content.setStatus(ContentStatus.publishedOnline);
- contentManager.save(user, content);
+ contentManager.save(content);
return group;
}
Modified: trunk/src/main/java/cc/kune/wiki/server/WikiServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/server/WikiServerTool.java 2011-06-09 12:25:38 UTC (rev 1399)
+++ trunk/src/main/java/cc/kune/wiki/server/WikiServerTool.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -135,7 +135,7 @@
content.setTypeId(TYPE_WIKIPAGE);
content.setStatus(ContentStatus.publishedOnline);
- contentManager.save(user, content);
+ contentManager.save(content);
return group;
}
Copied: trunk/src/test/java/cc/kune/core/server/xmpp (from rev 1395, trunk/src/test/java/org/ourproject/kune/chat/server/managers)
Deleted: trunk/src/test/java/cc/kune/core/server/xmpp/XmppManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/chat/server/managers/XmppManagerDefaultTest.java 2011-05-15 22:23:33 UTC (rev 1395)
+++ trunk/src/test/java/cc/kune/core/server/xmpp/XmppManagerDefaultTest.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -1,119 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package org.ourproject.kune.chat.server.managers;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import cc.kune.core.server.integration.IntegrationTestHelper;
-import cc.kune.core.server.xmpp.ChatConnection;
-import cc.kune.core.server.xmpp.ChatException;
-import cc.kune.core.server.xmpp.Room;
-import cc.kune.core.server.xmpp.RoomListener;
-import cc.kune.core.server.xmpp.XmppManager;
-
-import com.google.inject.Inject;
-
-public class XmppManagerDefaultTest {
- public static class OutputListener implements RoomListener {
- private int hits;
- private final String name;
-
- public OutputListener(final String name) {
- this.name = name;
- this.hits = 0;
- }
-
- public int getHits() {
- return hits;
- }
-
- @Override
- public void onMessage(final String from, final String to, final String body) {
- log.debug("Al listener " + name + "ha llegado: ");
- log.debug(from + "- " + to + ": " + body);
- hits++;
- }
-
- }
-
- static Log log = LogFactory.getLog(XmppManagerDefaultTest.class);
-
- @Inject
- XmppManager manager;
-
- @Before
- public void init() {
- IntegrationTestHelper.createInjector().injectMembers(this);
- }
-
- @Ignore
- public void testBroadcast() {
- final String roomName = "roomName";
- final ChatConnection conn1 = manager.login("testUser1", "easy1", "test");
- final ChatConnection conn2 = manager.login("testUser2", "easy2", "test");
- final Room room1 = manager.createRoom(conn1, roomName, "user1Alias");
- final OutputListener listener1 = new OutputListener("1");
- room1.setListener(listener1);
- final Room room2 = manager.joinRoom(conn2, roomName, "user2Alias");
- final OutputListener listener2 = new OutputListener("2");
- room2.setListener(listener2);
-
- manager.sendMessage(room1, "usuario1 dice uno");
- manager.sendMessage(room2, "usuario2 dice dos");
- manager.sendMessage(room1, "usuario1 dice tres");
- manager.sendMessage(room2, "usuario2 dice cuatro");
- try {
- Thread.sleep(4000);
- } catch (final InterruptedException e) {
- e.printStackTrace();
- }
- assertEquals(4, listener1.getHits());
- assertEquals(4, listener2.getHits());
- }
-
- @Test
- public void testConnection() {
- final ChatConnection handler1 = manager.login("admin", "easyeasy", "test");
- assertNotNull(handler1);
- }
-
- @Test
- public void testGetRoster() {
- final ChatConnection handler = manager.login("admin", "easyeasy", "test");
- assertNotNull(manager.getRoster(handler));
- }
-
- @Test
- public void testSendMessage() {
- manager.sendMessage("admin", "test message");
- }
-
- @Test(expected = ChatException.class)
- public void testUserDontExist() {
- manager.login("user", "password", "test");
- }
-}
Copied: trunk/src/test/java/cc/kune/core/server/xmpp/XmppManagerDefaultTest.java (from rev 1399, trunk/src/test/java/org/ourproject/kune/chat/server/managers/XmppManagerDefaultTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/server/xmpp/XmppManagerDefaultTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/server/xmpp/XmppManagerDefaultTest.java 2011-06-09 15:15:55 UTC (rev 1400)
@@ -0,0 +1,122 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.xmpp;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import cc.kune.core.server.integration.IntegrationTestHelper;
+
+import com.google.inject.Inject;
+
+public class XmppManagerDefaultTest {
+ public static class OutputListener implements RoomListener {
+ private int hits;
+ private final String name;
+
+ public OutputListener(final String name) {
+ this.name = name;
+ this.hits = 0;
+ }
+
+ public int getHits() {
+ return hits;
+ }
+
+ @Override
+ public void onMessage(final String from, final String to, final String body) {
+ log.debug("Al listener " + name + "ha llegado: ");
+ log.debug(from + "- " + to + ": " + body);
+ hits++;
+ }
+
+ }
+
+ static Log log = LogFactory.getLog(XmppManagerDefaultTest.class);
+
+ @Inject
+ XmppManager manager;
+
+ @Before
+ public void init() {
+ IntegrationTestHelper.createInjector().injectMembers(this);
+ }
+
+ @Ignore
+ public void testBroadcast() {
+ final String roomName = "roomName";
+ final ChatConnection conn1 = manager.login("testUser1", "easy1", "test");
+ final ChatConnection conn2 = manager.login("testUser2", "easy2", "test");
+ final Room room1 = manager.createRoom(conn1, roomName, "user1Alias", "subject");
+ final OutputListener listener1 = new OutputListener("1");
+ room1.setListener(listener1);
+ final Room room2 = manager.joinRoom(conn2, roomName, "user2Alias");
+ final OutputListener listener2 = new OutputListener("2");
+ room2.setListener(listener2);
+
+ manager.sendMessage(room1, "usuario1 dice uno");
+ manager.sendMessage(room2, "usuario2 dice dos");
+ manager.sendMessage(room1, "usuario1 dice tres");
+ manager.sendMessage(room2, "usuario2 dice cuatro");
+ try {
+ Thread.sleep(4000);
+ } catch (final InterruptedException e) {
+ e.printStackTrace();
+ }
+ assertEquals(4, listener1.getHits());
+ assertEquals(4, listener2.getHits());
+ }
+
+ @Test
+ public void testConnection() {
+ final ChatConnection handler1 = manager.login("admin", "easyeasy", "test");
+ assertNotNull(handler1);
+ }
+
+ @Test
+ public void testCreateRoom() {
+ final ChatConnection handler1 = manager.login("admin", "easyeasy", "test");
+ if (!manager.existRoom(handler1, "test-room")) {
+ manager.createRoom(handler1, "test-room", "alias", "Always the same room");
+ }
+ }
+
+ @Test
+ public void testGetRoster() {
+ final ChatConnection handler = manager.login("admin", "easyeasy", "test");
+ assertNotNull(manager.getRoster(handler));
+ }
+
+ @Test
+ public void testSendMessage() {
+ manager.sendMessage("admin", "test message");
+ }
+
+ @Test(expected = ChatException.class)
+ public void testUserDontExist() {
+ manager.login("user", "password", "test");
+ }
+}
1
0
Author: vjrj_
Date: 2011-06-09 14:25:38 +0200 (Thu, 09 Jun 2011)
New Revision: 1399
Added:
trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java
trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java
trunk/src/main/java/cc/kune/chat/client/actions/GoParentChatBtn.java
trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java
trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomArchiveMenuItem.java
trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java
trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomMenuItem.java
trunk/src/main/java/cc/kune/chat/server/
trunk/src/main/java/cc/kune/chat/server/ChatManager.java
trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java
trunk/src/main/java/cc/kune/chat/shared/
trunk/src/main/java/cc/kune/chat/shared/ChatConstants.java
trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java
trunk/src/main/java/cc/kune/core/shared/dto/AbstractContentSimpleDTO.java
trunk/src/main/webapp/others/
trunk/src/main/webapp/others/kune-wave-extensions.xml
Removed:
trunk/src/main/java/org/ourproject/kune/chat/server/
Modified:
trunk/src/main/java/cc/kune/chat/KuneChat.gwt.xml
trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java
trunk/src/main/java/cc/kune/chat/client/ChatParts.java
trunk/src/main/java/cc/kune/chat/server/ChatServerModule.java
trunk/src/main/java/cc/kune/chat/server/ChatServerTool.java
trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
trunk/src/main/java/cc/kune/client/KuneGinjector.java
trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java
trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java
trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
trunk/src/main/java/cc/kune/core/server/xmpp/XmppManager.java
trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java
trunk/src/main/java/cc/kune/core/shared/dto/ContainerSimpleDTO.java
trunk/src/main/java/cc/kune/core/shared/dto/ContentSimpleDTO.java
trunk/src/main/java/cc/kune/gspace/client/actions/DelContainerMenuItem.java
trunk/src/main/java/cc/kune/gspace/client/actions/DelContentMenuItem.java
trunk/src/main/java/cc/kune/gspace/client/actions/OpenContentMenuItem.java
trunk/src/main/java/cc/kune/gspace/client/actions/SetAsHomePageMenuItem.java
trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java
trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
trunk/src/test/java/org/ourproject/kune/chat/ChatToolTest.java
trunk/src/test/java/org/ourproject/kune/chat/server/managers/XmppManagerDefaultTest.java
Log:
chatroom tool and extension via xml
Modified: trunk/src/main/java/cc/kune/chat/KuneChat.gwt.xml
===================================================================
--- trunk/src/main/java/cc/kune/chat/KuneChat.gwt.xml 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/chat/KuneChat.gwt.xml 2011-06-09 12:25:38 UTC (rev 1399)
@@ -10,4 +10,5 @@
<inherits name='com.calclab.hablar.icons.alt.HablarAltIcons' />
<source path="client" />
<public path="public" />
+ <source path="shared" />
</module>
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,53 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.chat.client;
+
+import static cc.kune.chat.shared.ChatConstants.NAME;
+import static cc.kune.chat.shared.ChatConstants.TYPE_ROOM;
+import cc.kune.core.client.i18n.I18nUITranslationService;
+import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.gspace.client.tool.FoldableAbstractClientTool;
+import cc.kune.gspace.client.tool.selector.ToolSelector;
+
+import com.google.inject.Inject;
+
+public class ChatClientTool extends FoldableAbstractClientTool {
+
+ private final NavResources navResources;
+
+ @Inject
+ public ChatClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
+ final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) {
+ super(NAME, i18n.t("chatrooms"), toolSelector, cntCapRegistry);
+ this.navResources = navResources;
+ registerIcons();
+ }
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+ private void registerIcons() {
+ registerContentTypeIcon(TYPE_ROOM, navResources.room());
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -20,6 +20,7 @@
package cc.kune.chat.client;
import cc.kune.chat.client.actions.AddAsBuddieHeaderButton;
+import cc.kune.chat.client.actions.ChatClientActions;
import cc.kune.chat.client.actions.ChatSitebarActions;
import cc.kune.chat.client.actions.OpenGroupPublicChatRoomButton;
@@ -27,18 +28,20 @@
import com.gwtplatform.mvp.client.gin.AbstractPresenterModule;
public class ChatGinModule extends AbstractPresenterModule {
- /*
- * (non-Javadoc)
- *
- * @see com.google.gwt.inject.client.AbstractGinModule#configure()
- */
- @Override
- protected void configure() {
- bind(ChatClient.class).to(ChatClientDefault.class).in(Singleton.class);
- bind(ChatOptions.class).in(Singleton.class);
- bind(ChatSitebarActions.class).in(Singleton.class);
- bind(ChatParts.class).asEagerSingleton();
- bind(AddAsBuddieHeaderButton.class).in(Singleton.class);
- bind(OpenGroupPublicChatRoomButton.class).in(Singleton.class);
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.google.gwt.inject.client.AbstractGinModule#configure()
+ */
+ @Override
+ protected void configure() {
+ bind(ChatClient.class).to(ChatClientDefault.class).in(Singleton.class);
+ bind(ChatOptions.class).in(Singleton.class);
+ bind(ChatSitebarActions.class).in(Singleton.class);
+ bind(ChatParts.class).asEagerSingleton();
+ bind(AddAsBuddieHeaderButton.class).in(Singleton.class);
+ bind(OpenGroupPublicChatRoomButton.class).in(Singleton.class);
+ bind(ChatClientTool.class).in(Singleton.class);
+ bind(ChatClientActions.class).in(Singleton.class);
+ }
}
Added: trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,28 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.chat.client;
+
+import com.google.gwt.inject.client.Ginjector;
+
+public interface ChatGinjector extends Ginjector {
+
+ ChatParts getChatParts();
+
+}
Property changes on: trunk/src/main/java/cc/kune/chat/client/ChatGinjector.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/chat/client/ChatParts.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -20,12 +20,14 @@
package cc.kune.chat.client;
import cc.kune.chat.client.actions.AddAsBuddieHeaderButton;
+import cc.kune.chat.client.actions.ChatClientActions;
import cc.kune.chat.client.actions.ChatSitebarActions;
import cc.kune.chat.client.actions.OpenGroupPublicChatRoomAction;
import cc.kune.chat.client.actions.OpenGroupPublicChatRoomButton;
import cc.kune.chat.client.actions.StartChatWithMemberAction;
import cc.kune.chat.client.actions.StartChatWithThisBuddieAction;
import cc.kune.chat.client.actions.StartChatWithUserAction;
+import cc.kune.chat.shared.ChatConstants;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
@@ -42,83 +44,90 @@
import cc.kune.core.client.sn.actions.registry.UserSNMenuItemsRegistry;
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.gspace.client.tool.ContentViewerSelector;
+import cc.kune.gspace.client.viewers.FolderViewerPresenter;
import com.google.inject.Inject;
import com.google.inject.Provider;
public class ChatParts {
- @Inject
- public ChatParts(final Session session, final I18nTranslationService i18n,
- final Provider<ChatSitebarActions> chatActionsProvider,
- final Provider<AddAsBuddieHeaderButton> buddieButton,
- final Provider<GroupSNAdminsMenuItemsRegistry> snAdminsRegistry,
- final Provider<GroupSNCollabsMenuItemsRegistry> snCollabsItemsRegistry,
- final Provider<GroupSNPendingsMenuItemsRegistry> snPendingItemsRegistry,
- final Provider<GroupSNConfActions> groupConfActions,
- final Provider<UserSNMenuItemsRegistry> userItemsRegistry, final IsNotMeCondition isNotMe,
- final IsCurrentStateAdministrableCondition isAdministrableCondition,
- final IsCurrentStateEditableCondition isEditableCondition,
- final IsCurrentStateAGroupCondition isGroupCondition, final IsPersonCondition isPersonCondition,
- final Provider<StartChatWithMemberAction> startChatWithMemberAction, final IsLoggedCondition isLogged,
- final Provider<StartChatWithUserAction> startChatWithUserAction,
- final Provider<StartChatWithThisBuddieAction> startChatWithBuddieAction,
- final Provider<OpenGroupPublicChatRoomAction> openGroupRoomAction,
- final Provider<OpenGroupPublicChatRoomButton> openGroupRoom) {
- session.onAppStart(true, new AppStartHandler() {
- @Override
- public void onAppStart(final AppStartEvent event) {
- chatActionsProvider.get();
- final Provider<MenuItemDescriptor> startChatWithMemberItem = new Provider<MenuItemDescriptor>() {
- @Override
- public MenuItemDescriptor get() {
- final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithMemberAction.get());
- item.add(isNotMe);
- item.add(isPersonCondition);
- item.add(isLogged);
- return item;
- }
- };
- final Provider<MenuItemDescriptor> startChatWithBuddieItem = new Provider<MenuItemDescriptor>() {
- @Override
- public MenuItemDescriptor get() {
- final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithBuddieAction.get());
- item.add(isLogged);
- item.add(isPersonCondition);
- return item;
- }
- };
- final Provider<MenuItemDescriptor> startChatWithUserItem = new Provider<MenuItemDescriptor>() {
- @Override
- public MenuItemDescriptor get() {
- final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithUserAction.get());
- item.add(isNotMe);
- item.add(isLogged);
- item.add(isPersonCondition);
- return item;
- }
- };
- final Provider<MenuItemDescriptor> openChatAndInvite = new Provider<MenuItemDescriptor>() {
- @Override
- public MenuItemDescriptor get() {
- final OpenGroupPublicChatRoomAction action = openGroupRoomAction.get();
- action.setInviteMembers(true);
- final MenuItemDescriptor item = new MenuItemDescriptor(action);
- item.withText(i18n.t("Open group's room with members")).withToolTip(
- i18n.t("Enter to this group public chat room and invite members"));
- item.setParent(GroupSNConfActions.OPTIONS_MENU);
- item.setPosition(0);
- return item;
- }
- };
- snAdminsRegistry.get().add(startChatWithMemberItem);
- snCollabsItemsRegistry.get().add(startChatWithMemberItem);
- snPendingItemsRegistry.get().add(startChatWithUserItem);
- userItemsRegistry.get().add(startChatWithBuddieItem);
- groupConfActions.get().add(openChatAndInvite.get());
- buddieButton.get();
- openGroupRoom.get();
- }
- });
- }
+ @Inject
+ public ChatParts(final Session session, final I18nTranslationService i18n,
+ final Provider<ChatClientTool> clientTool, final Provider<ChatSitebarActions> chatActionsProvider,
+ final Provider<AddAsBuddieHeaderButton> buddieButton,
+ final Provider<GroupSNAdminsMenuItemsRegistry> snAdminsRegistry,
+ final Provider<GroupSNCollabsMenuItemsRegistry> snCollabsItemsRegistry,
+ final Provider<GroupSNPendingsMenuItemsRegistry> snPendingItemsRegistry,
+ final Provider<GroupSNConfActions> groupConfActions,
+ final Provider<UserSNMenuItemsRegistry> userItemsRegistry, final IsNotMeCondition isNotMe,
+ final IsCurrentStateAdministrableCondition isAdministrableCondition,
+ final IsCurrentStateEditableCondition isEditableCondition,
+ final IsCurrentStateAGroupCondition isGroupCondition, final IsPersonCondition isPersonCondition,
+ final Provider<StartChatWithMemberAction> startChatWithMemberAction,
+ final IsLoggedCondition isLogged, final Provider<StartChatWithUserAction> startChatWithUserAction,
+ final Provider<StartChatWithThisBuddieAction> startChatWithBuddieAction,
+ final ChatClientActions chatActions,
+ final Provider<OpenGroupPublicChatRoomAction> openGroupRoomAction,
+ final Provider<OpenGroupPublicChatRoomButton> openGroupRoom,
+ final ContentViewerSelector viewerSelector, final FolderViewerPresenter folderViewer) {
+ viewerSelector.register(folderViewer, true, ChatConstants.TYPE_ROOT);
+ viewerSelector.register(folderViewer, true, ChatConstants.TYPE_ROOM);
+ clientTool.get();
+ session.onAppStart(true, new AppStartHandler() {
+ @Override
+ public void onAppStart(final AppStartEvent event) {
+ chatActionsProvider.get();
+ final Provider<MenuItemDescriptor> startChatWithMemberItem = new Provider<MenuItemDescriptor>() {
+ @Override
+ public MenuItemDescriptor get() {
+ final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithMemberAction.get());
+ item.add(isNotMe);
+ item.add(isPersonCondition);
+ item.add(isLogged);
+ return item;
+ }
+ };
+ final Provider<MenuItemDescriptor> startChatWithBuddieItem = new Provider<MenuItemDescriptor>() {
+ @Override
+ public MenuItemDescriptor get() {
+ final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithBuddieAction.get());
+ item.add(isLogged);
+ item.add(isPersonCondition);
+ return item;
+ }
+ };
+ final Provider<MenuItemDescriptor> startChatWithUserItem = new Provider<MenuItemDescriptor>() {
+ @Override
+ public MenuItemDescriptor get() {
+ final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithUserAction.get());
+ item.add(isNotMe);
+ item.add(isLogged);
+ item.add(isPersonCondition);
+ return item;
+ }
+ };
+ final Provider<MenuItemDescriptor> openChatAndInvite = new Provider<MenuItemDescriptor>() {
+ @Override
+ public MenuItemDescriptor get() {
+ final OpenGroupPublicChatRoomAction action = openGroupRoomAction.get();
+ action.setInviteMembers(true);
+ final MenuItemDescriptor item = new MenuItemDescriptor(action);
+ item.withText(i18n.t("Open group's room with members")).withToolTip(
+ i18n.t("Enter to this group public chat room and invite members"));
+ item.setParent(GroupSNConfActions.OPTIONS_MENU);
+ item.setPosition(0);
+ return item;
+ }
+ };
+ snAdminsRegistry.get().add(startChatWithMemberItem);
+ snCollabsItemsRegistry.get().add(startChatWithMemberItem);
+ snPendingItemsRegistry.get().add(startChatWithUserItem);
+ userItemsRegistry.get().add(startChatWithBuddieItem);
+ groupConfActions.get().add(openChatAndInvite.get());
+ buddieButton.get();
+ openGroupRoom.get();
+ }
+ });
+ }
}
Added: trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,65 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package cc.kune.chat.client.actions;
+
+import static cc.kune.chat.shared.ChatConstants.TYPE_ROOM;
+import static cc.kune.chat.shared.ChatConstants.TYPE_ROOT;
+import cc.kune.core.client.actions.ActionRegistryByType;
+import cc.kune.core.client.i18n.I18nUITranslationService;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.gspace.client.actions.AbstractFoldableToolActions;
+import cc.kune.gspace.client.actions.ActionGroups;
+import cc.kune.gspace.client.actions.ContentViewerOptionsMenu;
+import cc.kune.gspace.client.actions.RefreshContentMenuItem;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class ChatClientActions extends AbstractFoldableToolActions {
+
+ final String[] all = { TYPE_ROOT, TYPE_ROOM };
+ final String[] containers = { TYPE_ROOT, TYPE_ROOM };
+ final String[] containersNoRoot = { TYPE_ROOM };
+ final String[] contents = {};
+
+ @Inject
+ public ChatClientActions(final I18nUITranslationService i18n, final Session session,
+ final StateManager stateManager, final ActionRegistryByType registry, final CoreResources res,
+ final Provider<RefreshContentMenuItem> refresh, final Provider<NewRoomBtn> newRoomBtn,
+ final Provider<OpenRoomMenuItem> openRoomMenuItem, final Provider<GoParentChatBtn> folderGoUp,
+ final Provider<OpenRoomArchiveMenuItem> openRoomArchiveMenuItem,
+ final Provider<OpenRoomBtn> openRoomBtn,
+ final Provider<ContentViewerOptionsMenu> optionsMenuContent) {
+ super(session, stateManager, i18n, registry);
+ actionsRegistry.addAction(ActionGroups.VIEW, optionsMenuContent, all);
+ actionsRegistry.addAction(ActionGroups.VIEW, refresh, all);
+ actionsRegistry.addAction(ActionGroups.VIEW, newRoomBtn, TYPE_ROOT);
+ actionsRegistry.addAction(ActionGroups.VIEW, folderGoUp, containersNoRoot);
+ actionsRegistry.addAction(ActionGroups.VIEW, openRoomBtn, containersNoRoot);
+ actionsRegistry.addAction(ActionGroups.MENUITEM, openRoomMenuItem, containersNoRoot);
+ actionsRegistry.addAction(ActionGroups.MENUITEM, openRoomArchiveMenuItem, containersNoRoot);
+ }
+
+ @Override
+ protected void createPostSessionInitActions() {
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/chat/client/actions/GoParentChatBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/GoParentChatBtn.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/GoParentChatBtn.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,36 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.chat.client.actions;
+
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.gspace.client.actions.GoParentContainerBtn;
+
+import com.google.inject.Inject;
+
+public class GoParentChatBtn extends GoParentContainerBtn {
+
+ @Inject
+ public GoParentChatBtn(final I18nTranslationService i18n, final GoParentContainerAction action,
+ final CoreResources res) {
+ super(i18n, action, res);
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/GoParentChatBtn.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,96 @@
+package cc.kune.chat.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.client.ui.dialogs.PromptTopDialog;
+import cc.kune.common.client.ui.dialogs.PromptTopDialog.Builder;
+import cc.kune.common.client.utils.TextUtils;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.resources.CoreMessages;
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.rpcservices.ContentServiceAsync;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class NewRoomBtn extends ButtonDescriptor {
+
+ public static class NewRoomAction extends RolAction {
+
+ private static final String CANCEL_ID = "k-nrbt-cancel";
+ private static final String CREATE_ID = "k-nrbt-create";
+ private static final String ID = "k-nrbt-dialog";
+ private static final String TEXTBOX_ID = "k-nrbt-textbox";
+ private final Provider<ContentServiceAsync> contentService;
+ private final I18nTranslationService i18n;
+ private final Session session;
+ private final StateManager stateManager;
+
+ @Inject
+ public NewRoomAction(final Session session, final StateManager stateManager,
+ final I18nTranslationService i18n, final Provider<ContentServiceAsync> contentService) {
+ super(AccessRolDTO.Administrator, true);
+ this.session = session;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
+ this.contentService = contentService;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ final Builder builder = new PromptTopDialog.Builder(ID, "Name of the new chatroom?", false, true);
+ builder.width("200px").height("50px").firstButtonTitle(i18n.t("Create")).sndButtonTitle(
+ i18n.t("Cancel")).firstButtonId(CREATE_ID).sndButtonId(CANCEL_ID);
+ builder.regex(TextUtils.UNIX_NAME).regexText(
+ i18n.t("The name must contain only characters, numbers and dashes")).textboxId(TEXTBOX_ID);
+ builder.minLength(3).maxLength(15).allowBlank(false).minLengthText(
+ CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15_NO_CHARS).maxLengthText(
+ CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15_NO_CHARS);
+ final PromptTopDialog diag = builder.build();
+ diag.showCentered();
+ diag.focusOnTextBox();
+ diag.getSecondBtn().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ diag.hide();
+ }
+ });
+ diag.getFirstBtn().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ if (diag.isValid()) {
+ NotifyUser.showProgressProcessing();
+ final String groupShortName = session.getCurrentState().getGroup().getShortName();
+ contentService.get().addRoom(session.getUserHash(),
+ session.getContainerState().getRootContainer().getStateToken(),
+ groupShortName + "-" + diag.getText(), new AsyncCallbackSimple<StateContainerDTO>() {
+ @Override
+ public void onSuccess(final StateContainerDTO state) {
+ stateManager.setRetrievedStateAndGo(state);
+ NotifyUser.hideProgress();
+ NotifyUser.info(i18n.t("Chatroom created"));
+ }
+ });
+ }
+ }
+ });
+ }
+ }
+
+ @Inject
+ public NewRoomBtn(final I18nTranslationService i18n, final NewRoomAction action, final NavResources res) {
+ super(action);
+ this.withText(i18n.t("New room")).withToolTip(i18n.t("Create a new chat room")).withStyles(
+ "k-def-docbtn, k-fr").withIcon(res.roomAdd());
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,32 @@
+package cc.kune.chat.client.actions;
+
+import cc.kune.chat.client.ChatClient;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
+import cc.kune.core.shared.dto.AccessRolDTO;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class OpenChatAction extends RolAction {
+
+ private final Provider<ChatClient> chatClient;
+ private final Session session;
+
+ @Inject
+ public OpenChatAction(final Provider<ChatClient> chatClient, final Session session) {
+ super(AccessRolDTO.Viewer, true);
+ this.chatClient = chatClient;
+ this.session = session;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ final ChatClient chat = chatClient.get();
+ final String roomName = ((AbstractContentSimpleDTO) event.getTarget()).getName();
+ chat.joinRoom(roomName, session.getCurrentUserInfo().getShortName());
+ chat.show();
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/OpenChatAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomArchiveMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomArchiveMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomArchiveMenuItem.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,38 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.chat.client.actions;
+
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.gspace.client.actions.OpenContentMenuItem;
+
+import com.google.inject.Inject;
+
+public class OpenRoomArchiveMenuItem extends OpenContentMenuItem {
+
+ @Inject
+ public OpenRoomArchiveMenuItem(final I18nTranslationService i18n, final OpenContentAction action,
+ final NavResources res) {
+ super(i18n, action, res);
+ this.withText(i18n.t("Open archive")).withToolTip(
+ i18n.t("Open the conversations archive of this room"));
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomArchiveMenuItem.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,17 @@
+package cc.kune.chat.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+
+public class OpenRoomBtn extends ButtonDescriptor {
+
+ @Inject
+ public OpenRoomBtn(final I18nTranslationService i18n, final OpenChatAction action,
+ final NavResources res) {
+ super(action);
+ this.withText(i18n.t("Enter to this room")).withIcon(res.room()).withStyles("k-def-docbtn, k-fr");
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomBtn.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomMenuItem.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,17 @@
+package cc.kune.chat.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+
+public class OpenRoomMenuItem extends MenuItemDescriptor {
+
+ @Inject
+ public OpenRoomMenuItem(final I18nTranslationService i18n, final OpenChatAction action,
+ final NavResources res) {
+ super(action);
+ this.withText(i18n.t("Enter to this room")).withIcon(res.room());
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/OpenRoomMenuItem.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/src/main/java/cc/kune/chat/server (from rev 1395, trunk/src/main/java/org/ourproject/kune/chat/server)
Added: trunk/src/main/java/cc/kune/chat/server/ChatManager.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/server/ChatManager.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/server/ChatManager.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,11 @@
+package cc.kune.chat.server;
+
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.domain.Container;
+import cc.kune.domain.User;
+
+public interface ChatManager {
+
+ Container addRoom(String userHash, User user, StateToken parentToken, String roomName, String subject);
+
+}
Property changes on: trunk/src/main/java/cc/kune/chat/server/ChatManager.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,57 @@
+package cc.kune.chat.server;
+
+import cc.kune.chat.shared.ChatConstants;
+import cc.kune.core.client.errors.AccessViolationException;
+import cc.kune.core.client.errors.ContentNotFoundException;
+import cc.kune.core.client.errors.GroupNotFoundException;
+import cc.kune.core.server.content.ContentUtils;
+import cc.kune.core.server.content.CreationService;
+import cc.kune.core.server.manager.GroupManager;
+import cc.kune.core.server.xmpp.ChatConnection;
+import cc.kune.core.server.xmpp.XmppManager;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.domain.Container;
+import cc.kune.domain.User;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class ChatManagerDefault implements ChatManager {
+
+ private final CreationService creationService;
+ private final GroupManager groupManager;
+ private final XmppManager xmppManager;
+
+ @Inject
+ public ChatManagerDefault(final XmppManager xmppManager, final GroupManager groupManager,
+ final CreationService creationService) {
+ this.xmppManager = xmppManager;
+ this.groupManager = groupManager;
+ this.creationService = creationService;
+ }
+
+ @Override
+ public Container addRoom(final String userHash, final User user, final StateToken parentToken,
+ final String roomName, final String subject) {
+ final String groupShortName = parentToken.getGroup();
+ final String userShortName = user.getShortName();
+ final ChatConnection connection = xmppManager.login(userShortName, user.getPassword(), userHash);
+ xmppManager.createRoom(connection, roomName, userShortName + userHash, subject);
+ xmppManager.disconnect(connection);
+ try {
+ return creationService.createFolder(groupManager.findByShortName(groupShortName),
+ ContentUtils.parseId(parentToken.getFolder()), roomName, user.getLanguage(),
+ ChatConstants.TYPE_ROOM);
+ } catch (final ContentNotFoundException e) {
+ xmppManager.destroyRoom(connection, roomName);
+ throw new ContentNotFoundException();
+ } catch (final AccessViolationException e) {
+ xmppManager.destroyRoom(connection, roomName);
+ throw new AccessViolationException();
+ } catch (final GroupNotFoundException e) {
+ xmppManager.destroyRoom(connection, roomName);
+ throw new GroupNotFoundException();
+ }
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/chat/server/ChatManagerDefault.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/chat/server/ChatServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java 2011-05-15 22:23:33 UTC (rev 1395)
+++ trunk/src/main/java/cc/kune/chat/server/ChatServerModule.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -17,7 +17,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-package org.ourproject.kune.chat.server;
+package cc.kune.chat.server;
import com.google.inject.AbstractModule;
Modified: trunk/src/main/java/cc/kune/chat/server/ChatServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java 2011-05-15 22:23:33 UTC (rev 1395)
+++ trunk/src/main/java/cc/kune/chat/server/ChatServerTool.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -17,16 +17,16 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-package org.ourproject.kune.chat.server;
+package cc.kune.chat.server;
-import org.ourproject.kune.chat.client.ChatClientTool;
-
+import cc.kune.chat.shared.ChatConstants;
import cc.kune.core.client.errors.ContainerNotPermittedException;
import cc.kune.core.server.content.ContainerManager;
import cc.kune.core.server.manager.ToolConfigurationManager;
import cc.kune.core.server.tool.ServerTool;
import cc.kune.core.server.tool.ServerToolRegistry;
import cc.kune.core.server.tool.ServerToolTarget;
+import cc.kune.core.shared.i18n.I18nTranslationService;
import cc.kune.domain.Container;
import cc.kune.domain.Content;
import cc.kune.domain.Group;
@@ -36,24 +36,25 @@
import com.google.inject.Inject;
public class ChatServerTool implements ServerTool {
- public static final String NAME = "chats";
- public static final String ROOT_NAME = "chat rooms";
- public static final String TYPE_CHAT = ChatClientTool.TYPE_CHAT;
- public static final String TYPE_ROOM = ChatClientTool.TYPE_ROOM;
- public static final String TYPE_ROOT = ChatClientTool.TYPE_ROOT;
+
+ private final ChatManagerDefault chatManager;
private final ToolConfigurationManager configurationManager;
private final ContainerManager containerManager;
+ private final I18nTranslationService i18n;
@Inject
public ChatServerTool(final ToolConfigurationManager configurationManager,
- final ContainerManager containerManager) {
+ final ContainerManager containerManager, final ChatManagerDefault chatManager,
+ final I18nTranslationService i18n) {
this.configurationManager = configurationManager;
this.containerManager = containerManager;
+ this.chatManager = chatManager;
+ this.i18n = i18n;
}
private void checkContainerTypeId(final String parentTypeId, final String typeId) {
- if (typeId.equals(TYPE_ROOM)) {
- if (!parentTypeId.equals(TYPE_ROOT)) {
+ if (typeId.equals(ChatConstants.TYPE_ROOM)) {
+ if (!parentTypeId.equals(ChatConstants.TYPE_ROOT)) {
throw new ContainerNotPermittedException();
}
// ok valid container
@@ -69,7 +70,7 @@
@Override
public void checkTypesBeforeContentCreation(final String parentTypeId, final String typeId) {
- if (!parentTypeId.equals(TYPE_ROOM)) {
+ if (!parentTypeId.equals(ChatConstants.TYPE_ROOM)) {
throw new ContainerNotPermittedException();
}
// in the future chat history checks
@@ -77,12 +78,12 @@
@Override
public String getName() {
- return NAME;
+ return ChatConstants.NAME;
}
@Override
public String getRootName() {
- return ROOT_NAME;
+ return ChatConstants.NAME;
}
@Override
@@ -93,9 +94,13 @@
@Override
public Group initGroup(final User user, final Group group, final Object... otherVars) {
final ToolConfiguration config = new ToolConfiguration();
- final Container container = containerManager.createRootFolder(group, NAME, ROOT_NAME, TYPE_ROOT);
+ final Container container = containerManager.createRootFolder(group, ChatConstants.NAME,
+ ChatConstants.NAME, ChatConstants.TYPE_ROOT);
config.setRoot(container);
- group.setToolConfig(NAME, config);
+ final String groupShortName = group.getShortName();
+ chatManager.addRoom("none", user, container.getStateToken(), groupShortName,
+ i18n.t("Welcome to the [%s] public chat room", groupShortName));
+ group.setToolConfig(ChatConstants.NAME, config);
configurationManager.persist(config);
return group;
}
Added: trunk/src/main/java/cc/kune/chat/shared/ChatConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/shared/ChatConstants.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/shared/ChatConstants.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,31 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.chat.shared;
+
+public final class ChatConstants {
+
+ public static final String NAME = "chats";
+ public static final String TYPE_CHAT = NAME + "." + "chat";
+ public static final String TYPE_ROOM = NAME + "." + "room";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+
+ private ChatConstants() {
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/chat/shared/ChatConstants.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -76,10 +76,11 @@
ginjector.getUserNotifierPresenter();
ginjector.getSpinerPresenter();
ginjector.getGroupMembersPresenter();
+ ginjector.getBartersParts();
+ ginjector.getBlogsParts();
+ ginjector.getChatParts();
ginjector.getDocsParts();
- ginjector.getBlogsParts();
ginjector.getMeetingsParts();
- ginjector.getBartersParts();
ginjector.getWikiParts();
ginjector.getSiteLogoPresenter();
ginjector.getSpacesTabPresenter();
Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -25,7 +25,7 @@
import cc.kune.blogs.client.BlogsGinjector;
import cc.kune.chat.client.ChatClient;
import cc.kune.chat.client.ChatGinModule;
-import cc.kune.chat.client.ChatParts;
+import cc.kune.chat.client.ChatGinjector;
import cc.kune.common.client.actions.gwtui.GwtGuiProvider;
import cc.kune.common.client.actions.gxtui.GxtGuiProvider;
import cc.kune.common.client.actions.ui.bind.GuiProvider;
@@ -77,7 +77,7 @@
PSpaceGinModule.class, GSpaceGinModule.class, DocsGinModule.class, BlogsGinModule.class,
WikiGinModule.class, BartersGinModule.class, MeetingsGinModule.class })
public interface KuneGinjector extends Ginjector, GSpaceGinjector, DocsGinjector, BlogsGinjector,
- WikiGinjector, BartersGinjector, MeetingsGinjector {
+ WikiGinjector, BartersGinjector, MeetingsGinjector, ChatGinjector {
/*
* You have to add here all the GWTPresenters (as Provider or AsyncProvider)
@@ -88,8 +88,6 @@
ChatClient getChatClient();
- ChatParts getChatParts();
-
AsyncProvider<CookiesManager> getCookiesManager();
CoreParts getCoreParts();
Modified: trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
===================================================================
--- trunk/src/main/java/cc/kune/client/OnAppStartFactory.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/client/OnAppStartFactory.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -19,26 +19,31 @@
*/
package cc.kune.client;
+import cc.kune.barters.client.BartersClientTool;
import cc.kune.blogs.client.BlogsClientTool;
+import cc.kune.chat.client.ChatClientTool;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
import cc.kune.docs.client.DocsClientTool;
+import cc.kune.meets.client.MeetingsClientTool;
+import cc.kune.wiki.client.WikiClientTool;
import com.google.inject.Inject;
import com.google.inject.Provider;
public class OnAppStartFactory {
- @Inject
- public OnAppStartFactory(final Session session, final Provider<DocsClientTool> docsClientTool,
- final Provider<BlogsClientTool> blogsClientTool) {
- session.onAppStart(true, new AppStartHandler() {
- @Override
- public void onAppStart(final AppStartEvent event) {
- docsClientTool.get();
- blogsClientTool.get();
- }
- });
- }
+ @Inject
+ public OnAppStartFactory(final Session session, final Provider<DocsClientTool> docsClientTool,
+ final Provider<BlogsClientTool> blogsClientTool,
+ final Provider<BartersClientTool> bartersClientTool,
+ final Provider<MeetingsClientTool> meetsClientTool,
+ final Provider<ChatClientTool> chatsClientTool, final Provider<WikiClientTool> wikiClientTool) {
+ session.onAppStart(true, new AppStartHandler() {
+ @Override
+ public void onAppStart(final AppStartEvent event) {
+ }
+ });
+ }
}
Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -126,7 +126,7 @@
private final PopupTopPanel popup;
private String width;
- private BasicTopDialog(final Builder builder) {
+ protected BasicTopDialog(final Builder builder) {
popup = new PopupTopPanel(builder.autohide, builder.modal);
popup.add(this);
popup.ensureDebugId(builder.dialogId);
@@ -141,8 +141,8 @@
super.setSecondBtnId(builder.sndButtonId);
super.setSecondBtnTabIndex(builder.tabIndexStart + 1);
super.getTitleText().setText(builder.title);
- this.setWidth(builder.width);
- this.setHeight(builder.height);
+ setWidthImpl(builder.width);
+ setHeightImpl(builder.height);
setSizes();
Window.addResizeHandler(new ResizeHandler() {
@Override
@@ -171,6 +171,10 @@
@Override
public void setHeight(final String height) {
+ setHeightImpl(height);
+ }
+
+ private void setHeightImpl(final String height) {
this.height = height;
setSizes();
}
@@ -178,8 +182,7 @@
@Override
public void setSize(final String width, final String height) {
this.width = width;
- this.height = height;
- setSizes();
+ setHeightImpl(height);
}
private void setSizes() {
@@ -213,6 +216,10 @@
@Override
public void setWidth(final String width) {
+ setWidthImpl(width);
+ }
+
+ private void setWidthImpl(final String width) {
this.width = width;
setSizes();
}
Added: trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,103 @@
+package cc.kune.common.client.ui.dialogs;
+
+import com.extjs.gxt.ui.client.widget.form.TextField;
+
+public class PromptTopDialog extends BasicTopDialog {
+
+ public static class Builder extends BasicTopDialog.Builder {
+
+ private boolean allowBlank;
+ private int maxLength;
+ private String maxLengthText;
+ private int minLength;
+ private String minLengthText;
+ private String regex;
+ private String regexText;
+ private String textboxId;
+
+ public Builder(final String dialogId, final String promptText, final boolean autohide,
+ final boolean modal) {
+ super(dialogId, autohide, modal);
+ super.title(promptText);
+ }
+
+ public Builder allowBlank(final boolean allowBlank) {
+ this.allowBlank = allowBlank;
+ return this;
+ }
+
+ @Override
+ public PromptTopDialog build() {
+ final PromptTopDialog dialog = new PromptTopDialog(this);
+ return dialog;
+ }
+
+ public Builder maxLength(final int maxLength) {
+ this.maxLength = maxLength;
+ return this;
+ }
+
+ public Builder maxLengthText(final String maxLengthText) {
+ this.maxLengthText = maxLengthText;
+ return this;
+ }
+
+ public Builder minLength(final int minLength) {
+ this.minLength = minLength;
+ return this;
+ }
+
+ public Builder minLengthText(final String minLengthText) {
+ this.minLengthText = minLengthText;
+ return this;
+ }
+
+ public Builder regex(final String regex) {
+ this.regex = regex;
+ return this;
+ }
+
+ public Builder regexText(final String regexText) {
+ this.regexText = regexText;
+ return this;
+ }
+
+ public Builder textboxId(final String textboxId) {
+ this.textboxId = textboxId;
+ return this;
+ }
+ }
+
+ private final TextField<String> textField;
+
+ protected PromptTopDialog(final Builder builder) {
+ super(builder);
+ textField = new TextField<String>();
+ textField.setRegex(builder.regex);
+ textField.getMessages().setRegexText(builder.regexText);
+ textField.getMessages().setMinLengthText(builder.minLengthText);
+ textField.getMessages().setMaxLengthText(builder.maxLengthText);
+ textField.setId(builder.textboxId);
+ textField.setMinLength(builder.minLength);
+ textField.setMaxLength(builder.maxLength);
+ textField.setAllowBlank(builder.allowBlank);
+ super.getInnerPanel().add(textField);
+ }
+
+ public void focusOnTextBox() {
+ textField.focus();
+ }
+
+ public String getText() {
+ return textField.getValue();
+ }
+
+ public boolean isValid() {
+ return textField.isValid();
+ }
+
+ public void setText(final String text) {
+ textField.setValue(text);
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -26,6 +26,7 @@
public final static String ENT_LOGO_SELECTOR_NORMAL_TITLE = "Logo";
public final static String ENT_LOGO_SELECTOR_PERSON_TITLE = "Avatar";
public final static String FIELD_MUST_BE_BETWEEN_3_AND_15 = "The name must be between 3 and 15 lowercase characters. It can only contain Western characters and numbers";
+ public final static String FIELD_MUST_BE_BETWEEN_3_AND_15_NO_CHARS = "The name must be between 3 and 15 lowercase characters.";
public final static String GROUP_OPTIONS_DIALOG_TITLE = "Group options";
public final static String INCORRECT_NICKNAME_EMAIL_OR_PASSWORD = "The username/password is incorrect";
public final static String MEMBERS_NOT_PUBLIC = "The members of this group are not public";
Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -25,6 +25,7 @@
import cc.kune.barters.server.BarterServerModule;
import cc.kune.blogs.server.BlogServerModule;
+import cc.kune.chat.server.ChatServerModule;
import cc.kune.core.client.rpcservices.ContentService;
import cc.kune.core.client.rpcservices.GroupService;
import cc.kune.core.client.rpcservices.I18nService;
@@ -152,7 +153,7 @@
builder.use(new BarterServerModule());
builder.use(new MeetingServerModule());
builder.use(new WikiServerModule());
- // builder.use(new ChatServerModule());
+ builder.use(new ChatServerModule());
// builder.use(new GalleryServerModule());
builder.use(new RESTServicesModule());
builder.use(configModule);
Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -20,6 +20,8 @@
package cc.kune.core.server;
import static cc.kune.core.server.OutermostCallInterceptor.outermostCall;
+import cc.kune.chat.server.ChatManager;
+import cc.kune.chat.server.ChatManagerDefault;
import cc.kune.core.client.rpcservices.ContentService;
import cc.kune.core.client.rpcservices.GroupService;
import cc.kune.core.client.rpcservices.I18nService;
@@ -119,6 +121,7 @@
bind(LicenseManager.class).to(LicenseManagerDefault.class);
bind(SocialNetworkManager.class).to(SocialNetworkManagerDefault.class);
bind(XmppManager.class).to(XmppManagerDefault.class);
+ bind(ChatManager.class).to(ChatManagerDefault.class);
bind(RateManager.class).to(RateManagerDefault.class);
bind(I18nCountryManager.class).to(I18nCountryManagerDefault.class);
bind(I18nLanguageManager.class).to(I18nLanguageManagerDefault.class);
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -23,6 +23,7 @@
import javax.persistence.NoResultException;
+import cc.kune.chat.server.ChatManager;
import cc.kune.core.client.errors.AccessViolationException;
import cc.kune.core.client.errors.ContentNotFoundException;
import cc.kune.core.client.errors.DefaultException;
@@ -73,6 +74,7 @@
@Singleton
public class ContentRPC implements ContentService, RPC {
private final AccessService accessService;
+ private final ChatManager chatManager;
private final ContainerManager containerManager;
private final ContentManager contentManager;
private final CreationService creationService;
@@ -91,7 +93,7 @@
final StateService stateService, final CreationService creationService,
final GroupManager groupManager, final XmppManager xmppManager,
final ContentManager contentManager, final ContainerManager containerManager,
- final TagUserContentManager tagManager, final Mapper mapper) {
+ final TagUserContentManager tagManager, final Mapper mapper, final ChatManager chatManager) {
this.finderService = finderService;
this.userSessionProvider = userSessionProvider;
this.accessService = accessService;
@@ -104,6 +106,7 @@
this.containerManager = containerManager;
this.tagManager = tagManager;
this.mapper = mapper;
+ this.chatManager = chatManager;
}
@Override
@@ -151,34 +154,12 @@
@Override
@Authenticated
- @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor)
+ @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Administrator)
@Transactional
public StateContainerDTO addRoom(final String userHash, final StateToken parentToken,
final String roomName) throws DefaultException {
- // final String groupShortName = parentToken.getGroup();
- // final User user = getCurrentUser();
- // final String userShortName = user.getShortName();
- // final ChatConnection connection = xmppManager.login(userShortName,
- // user.getPassword(), userHash);
- // xmppManager.createRoom(connection, roomName, userShortName +
- // userHash);
- // xmppManager.disconnect(connection);
- // try {
- // final Container container = createFolder(groupShortName,
- // ContentUtils.parseId(parentToken.getFolder()),
- // roomName, ChatServerTool.TYPE_ROOM);
- // return getState(user, container);
- // } catch (final ContentNotFoundException e) {
- // xmppManager.destroyRoom(connection, roomName);
- // throw new ContentNotFoundException();
- // } catch (final AccessViolationException e) {
- // xmppManager.destroyRoom(connection, roomName);
- // throw new AccessViolationException();
- // } catch (final GroupNotFoundException e) {
- // xmppManager.destroyRoom(connection, roomName);
- // throw new GroupNotFoundException();
- // }
- return null;
+ final User user = getCurrentUser();
+ return getState(user, chatManager.addRoom(userHash, user, parentToken, roomName, ""));
}
private StateContentDTO createContent(final StateToken parentToken, final String title,
Modified: trunk/src/main/java/cc/kune/core/server/xmpp/XmppManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/XmppManager.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/XmppManager.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -25,20 +25,20 @@
public interface XmppManager {
- Room createRoom(ChatConnection connection, String roomName, String ownerAlias);
+ Room createRoom(ChatConnection connection, String roomName, String ownerAlias, String subject);
- void destroyRoom(ChatConnection conn, String roomName);
+ void destroyRoom(ChatConnection conn, String roomName);
- void disconnect(ChatConnection connection);
+ void disconnect(ChatConnection connection);
- Collection<RosterEntry> getRoster(ChatConnection connection);
+ Collection<RosterEntry> getRoster(ChatConnection connection);
- Room joinRoom(ChatConnection connection, String roomName, String alias);
+ Room joinRoom(ChatConnection connection, String roomName, String alias);
- ChatConnection login(String userName, String password, String resource);
+ ChatConnection login(String userName, String password, String resource);
- void sendMessage(Room room, String message);
+ void sendMessage(Room room, String message);
- void sendMessage(String userName, String message);
+ void sendMessage(String userName, String message);
}
Modified: trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -39,6 +39,7 @@
import org.jivesoftware.smackx.FormField;
import org.jivesoftware.smackx.muc.MultiUserChat;
+import cc.kune.common.client.utils.TextUtils;
import cc.kune.core.server.properties.ChatProperties;
import com.google.inject.Inject;
@@ -75,7 +76,8 @@
}
@Override
- public Room createRoom(final ChatConnection conn, final String roomName, final String alias) {
+ public Room createRoom(final ChatConnection conn, final String roomName, final String alias,
+ final String subject) {
final XmppConnection xConn = (XmppConnection) conn;
final MultiUserChat muc = new MultiUserChat(xConn.getConn(), getRoomName(roomName));
try {
@@ -83,6 +85,9 @@
configure(muc);
final XmppRoom room = new XmppRoom(muc, alias);
muc.addMessageListener(room);
+ if (TextUtils.notEmpty(subject)) {
+ muc.changeSubject(subject);
+ }
return room;
} catch (final XMPPException e) {
throw new ChatException(e);
Added: trunk/src/main/java/cc/kune/core/shared/dto/AbstractContentSimpleDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/AbstractContentSimpleDTO.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/shared/dto/AbstractContentSimpleDTO.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,41 @@
+package cc.kune.core.shared.dto;
+
+import cc.kune.core.shared.domain.utils.StateToken;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public abstract class AbstractContentSimpleDTO implements IsSerializable {
+
+ protected Long id;
+ private StateToken stateToken;
+ private String typeId;
+
+ public Long getId() {
+ return id;
+ }
+
+ public abstract String getName();
+
+ public StateToken getStateToken() {
+ return stateToken;
+ }
+
+ public String getTypeId() {
+ return typeId;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public abstract void setName(final String name);
+
+ public void setStateToken(final StateToken stateToken) {
+ this.stateToken = stateToken;
+ }
+
+ public void setTypeId(final String typeId) {
+ this.typeId = typeId;
+ }
+
+}
Property changes on: trunk/src/main/java/cc/kune/core/shared/dto/AbstractContentSimpleDTO.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/core/shared/dto/ContainerSimpleDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/ContainerSimpleDTO.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/core/shared/dto/ContainerSimpleDTO.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -19,59 +19,28 @@
*/
package cc.kune.core.shared.dto;
-import cc.kune.core.shared.domain.utils.StateToken;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
/**
* A item can be both a container or a content
*
*/
-public class ContainerSimpleDTO implements IsSerializable {
- private Long id;
- private String name;
- private String typeId;
- private StateToken stateToken;
- private Long parentFolderId;
+public class ContainerSimpleDTO extends AbstractContentSimpleDTO {
+ private String name;
+ private Long parentFolderId;
- public Long getId() {
- return id;
- }
+ public String getName() {
+ return name;
+ }
- public String getName() {
- return name;
- }
+ public Long getParentFolderId() {
+ return parentFolderId;
+ }
- public Long getParentFolderId() {
- return parentFolderId;
- }
+ public void setName(final String name) {
+ this.name = name;
+ }
- public StateToken getStateToken() {
- return stateToken;
- }
+ public void setParentFolderId(final Long parentFolderId) {
+ this.parentFolderId = parentFolderId;
+ }
- public String getTypeId() {
- return typeId;
- }
-
- public void setId(final Long id) {
- this.id = id;
- }
-
- public void setName(final String name) {
- this.name = name;
- }
-
- public void setParentFolderId(final Long parentFolderId) {
- this.parentFolderId = parentFolderId;
- }
-
- public void setStateToken(final StateToken stateToken) {
- this.stateToken = stateToken;
- }
-
- public void setTypeId(final String typeId) {
- this.typeId = typeId;
- }
-
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/ContentSimpleDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/ContentSimpleDTO.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/core/shared/dto/ContentSimpleDTO.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -21,26 +21,16 @@
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.domain.utils.AccessRights;
-import cc.kune.core.shared.domain.utils.StateToken;
-import com.google.gwt.user.client.rpc.IsSerializable;
+public class ContentSimpleDTO extends AbstractContentSimpleDTO {
-public class ContentSimpleDTO implements IsSerializable {
-
- private Long id;
private BasicMimeTypeDTO mimeType;
private Long modifiedOn;
private AccessRights rights;
- private StateToken stateToken;
private ContentStatus status;
private String title;
- private String typeId;
private String waveId;
- public Long getId() {
- return id;
- }
-
public BasicMimeTypeDTO getMimeType() {
return mimeType;
}
@@ -49,14 +39,15 @@
return modifiedOn;
}
+ @Override
+ public String getName() {
+ return title;
+ }
+
public AccessRights getRights() {
return rights;
}
- public StateToken getStateToken() {
- return stateToken;
- }
-
public ContentStatus getStatus() {
return status;
}
@@ -65,18 +56,10 @@
return title;
}
- public String getTypeId() {
- return typeId;
- }
-
public String getWaveId() {
return waveId;
}
- public void setId(final Long id) {
- this.id = id;
- }
-
public void setMimeType(final BasicMimeTypeDTO mimeType) {
this.mimeType = mimeType;
}
@@ -85,14 +68,15 @@
this.modifiedOn = modifiedOn;
}
+ @Override
+ public void setName(final String name) {
+ this.title = name;
+ }
+
public void setRights(final AccessRights rights) {
this.rights = rights;
}
- public void setStateToken(final StateToken stateToken) {
- this.stateToken = stateToken;
- }
-
public void setStatus(final ContentStatus status) {
this.status = status;
}
@@ -101,10 +85,6 @@
this.title = title;
}
- public void setTypeId(final String typeId) {
- this.typeId = typeId;
- }
-
public void setWaveId(final String waveId) {
this.waveId = waveId;
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/DelContainerMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/DelContainerMenuItem.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/DelContainerMenuItem.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -30,6 +30,7 @@
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
import cc.kune.core.shared.dto.AccessRolDTO;
import cc.kune.core.shared.i18n.I18nTranslationService;
import cc.kune.gspace.client.viewers.FolderViewerPresenter;
@@ -40,49 +41,49 @@
public class DelContainerMenuItem extends MenuItemDescriptor {
- public static class DelContainerAction extends RolAction {
+ public static class DelContainerAction extends RolAction {
- private final Provider<ContentServiceAsync> contentService;
- private final EventBus eventBus;
- private final I18nTranslationService i18n;
- private final Provider<FolderViewerPresenter> presenter;
- private final Session session;
- private final StateManager stateManager;
+ private final Provider<ContentServiceAsync> contentService;
+ private final EventBus eventBus;
+ private final I18nTranslationService i18n;
+ private final Provider<FolderViewerPresenter> presenter;
+ private final Session session;
+ private final StateManager stateManager;
- @Inject
- public DelContainerAction(final EventBus eventBus, final StateManager stateManager, final Session session,
- final Provider<ContentServiceAsync> contentService, final I18nTranslationService i18n,
- final Provider<FolderViewerPresenter> presenter) {
- super(AccessRolDTO.Administrator, true);
- this.eventBus = eventBus;
- this.stateManager = stateManager;
- this.session = session;
- this.contentService = contentService;
- this.i18n = i18n;
- this.presenter = presenter;
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- final StateToken token = (StateToken) event.getTarget();
- ConfirmAskEvent.fire(eventBus, i18n.t("Please confirm"),
- i18n.t("You will delete it with all its contents. Are you sure?"), i18n.t("Yes"), i18n.t("No"),
- null, null, new OnAcceptCallback() {
- @Override
- public void onSuccess() {
- NotifyUser.showProgress();
- NotifyUser.info("Sorry, in development");
- NotifyUser.hideProgress();
- }
- });
- }
-
+ @Inject
+ public DelContainerAction(final EventBus eventBus, final StateManager stateManager,
+ final Session session, final Provider<ContentServiceAsync> contentService,
+ final I18nTranslationService i18n, final Provider<FolderViewerPresenter> presenter) {
+ super(AccessRolDTO.Administrator, true);
+ this.eventBus = eventBus;
+ this.stateManager = stateManager;
+ this.session = session;
+ this.contentService = contentService;
+ this.i18n = i18n;
+ this.presenter = presenter;
}
- public DelContainerMenuItem(final I18nTranslationService i18n, final DelContainerAction action,
- final CoreResources res) {
- super(action);
- this.withText(i18n.t("Delete")).withIcon(res.cancel());
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ final StateToken token = ((AbstractContentSimpleDTO) event.getTarget()).getStateToken();
+ ConfirmAskEvent.fire(eventBus, i18n.t("Please confirm"),
+ i18n.t("You will delete it with all its contents. Are you sure?"), i18n.t("Yes"),
+ i18n.t("No"), null, null, new OnAcceptCallback() {
+ @Override
+ public void onSuccess() {
+ NotifyUser.showProgress();
+ NotifyUser.info("Sorry, in development");
+ NotifyUser.hideProgress();
+ }
+ });
}
+ }
+
+ public DelContainerMenuItem(final I18nTranslationService i18n, final DelContainerAction action,
+ final CoreResources res) {
+ super(action);
+ this.withText(i18n.t("Delete")).withIcon(res.cancel());
+ }
+
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/DelContentMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/DelContentMenuItem.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/DelContentMenuItem.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -31,6 +31,7 @@
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
import cc.kune.core.shared.dto.AccessRolDTO;
import cc.kune.core.shared.dto.StateContentDTO;
import cc.kune.core.shared.i18n.I18nTranslationService;
@@ -42,64 +43,65 @@
public class DelContentMenuItem extends MenuItemDescriptor {
- public static class DelContentAction extends RolAction {
+ public static class DelContentAction extends RolAction {
- private final Provider<ContentServiceAsync> contentService;
- private final EventBus eventBus;
- private final I18nTranslationService i18n;
- private final Provider<FolderViewerPresenter> presenter;
- private final Session session;
- private final StateManager stateManager;
+ private final Provider<ContentServiceAsync> contentService;
+ private final EventBus eventBus;
+ private final I18nTranslationService i18n;
+ private final Provider<FolderViewerPresenter> presenter;
+ private final Session session;
+ private final StateManager stateManager;
- @Inject
- public DelContentAction(final EventBus eventBus, final StateManager stateManager, final Session session,
- final Provider<ContentServiceAsync> contentService, final I18nTranslationService i18n,
- final Provider<FolderViewerPresenter> presenter) {
- super(AccessRolDTO.Administrator, true);
- this.eventBus = eventBus;
- this.stateManager = stateManager;
- this.session = session;
- this.contentService = contentService;
- this.i18n = i18n;
- this.presenter = presenter;
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- final StateToken token = (StateToken) event.getTarget();
- ConfirmAskEvent.fire(eventBus, i18n.t("Please confirm"), i18n.t("Are you sure?"), i18n.t("Yes"),
- i18n.t("No"), null, null, new OnAcceptCallback() {
- @Override
- public void onSuccess() {
- NotifyUser.showProgress();
- contentService.get().delContent(session.getUserHash(), token,
- new AsyncCallbackSimple<StateContentDTO>() {
- @Override
- public void onSuccess(final StateContentDTO state) {
- // Is this necessary?
- // session.setCurrentState(state);
- final StateToken parent = token.copy().clearDocument();
- if (session.getCurrentStateToken().equals(parent)) {
- stateManager.refreshCurrentGroupState();
- // Warning: the previous action
- // is asynchronous (it gets a
- // content)
- presenter.get().refreshState();
- } else {
- stateManager.gotoStateToken(parent, false);
- }
- NotifyUser.hideProgress();
- }
- });
- }
- });
- }
-
+ @Inject
+ public DelContentAction(final EventBus eventBus, final StateManager stateManager,
+ final Session session, final Provider<ContentServiceAsync> contentService,
+ final I18nTranslationService i18n, final Provider<FolderViewerPresenter> presenter) {
+ super(AccessRolDTO.Administrator, true);
+ this.eventBus = eventBus;
+ this.stateManager = stateManager;
+ this.session = session;
+ this.contentService = contentService;
+ this.i18n = i18n;
+ this.presenter = presenter;
}
- public DelContentMenuItem(final I18nTranslationService i18n, final DelContentAction action, final CoreResources res) {
- super(action);
- this.withText(i18n.t("Delete")).withIcon(res.cancel());
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ final StateToken token = ((AbstractContentSimpleDTO) event.getTarget()).getStateToken();
+ ConfirmAskEvent.fire(eventBus, i18n.t("Please confirm"), i18n.t("Are you sure?"), i18n.t("Yes"),
+ i18n.t("No"), null, null, new OnAcceptCallback() {
+ @Override
+ public void onSuccess() {
+ NotifyUser.showProgress();
+ contentService.get().delContent(session.getUserHash(), token,
+ new AsyncCallbackSimple<StateContentDTO>() {
+ @Override
+ public void onSuccess(final StateContentDTO state) {
+ // Is this necessary?
+ // session.setCurrentState(state);
+ final StateToken parent = token.copy().clearDocument();
+ if (session.getCurrentStateToken().equals(parent)) {
+ stateManager.refreshCurrentGroupState();
+ // Warning: the previous action
+ // is asynchronous (it gets a
+ // content)
+ presenter.get().refreshState();
+ } else {
+ stateManager.gotoStateToken(parent, false);
+ }
+ NotifyUser.hideProgress();
+ }
+ });
+ }
+ });
}
+ }
+
+ public DelContentMenuItem(final I18nTranslationService i18n, final DelContentAction action,
+ final CoreResources res) {
+ super(action);
+ this.withText(i18n.t("Delete")).withIcon(res.cancel());
+ }
+
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/OpenContentMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/OpenContentMenuItem.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/OpenContentMenuItem.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -24,32 +24,33 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.core.client.resources.nav.NavResources;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
import cc.kune.core.shared.i18n.I18nTranslationService;
import com.google.inject.Inject;
public class OpenContentMenuItem extends MenuItemDescriptor {
- public static class OpenContentAction extends AbstractExtendedAction {
+ public static class OpenContentAction extends AbstractExtendedAction {
- private final StateManager stateManager;
+ private final StateManager stateManager;
- @Inject
- public OpenContentAction(final StateManager stateManager) {
- this.stateManager = stateManager;
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- stateManager.gotoStateToken((StateToken) event.getTarget());
- }
-
+ @Inject
+ public OpenContentAction(final StateManager stateManager) {
+ this.stateManager = stateManager;
}
- public OpenContentMenuItem(final I18nTranslationService i18n, final OpenContentAction action, final NavResources res) {
- super(action);
- this.withText(i18n.t("Open")).withIcon(res.go());
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ stateManager.gotoStateToken(((AbstractContentSimpleDTO) event.getTarget()).getStateToken());
}
+ }
+
+ public OpenContentMenuItem(final I18nTranslationService i18n, final OpenContentAction action,
+ final NavResources res) {
+ super(action);
+ this.withText(i18n.t("Open")).withIcon(res.go());
+ }
+
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/SetAsHomePageMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/SetAsHomePageMenuItem.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/SetAsHomePageMenuItem.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -28,6 +28,7 @@
import cc.kune.core.client.rpcservices.ContentServiceAsync;
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
import cc.kune.core.shared.dto.AccessRolDTO;
import cc.kune.core.shared.dto.ContentSimpleDTO;
import cc.kune.core.shared.i18n.I18nTranslationService;
@@ -54,7 +55,7 @@
@Override
public void actionPerformed(final ActionEvent event) {
- final StateToken token = (StateToken) event.getTarget();
+ final StateToken token = ((AbstractContentSimpleDTO) event.getTarget()).getStateToken();
NotifyUser.showProgressProcessing();
contentService.get().setAsDefaultContent(session.getUserHash(), token,
new AsyncCallbackSimple<ContentSimpleDTO>() {
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -21,10 +21,8 @@
import javax.annotation.Nonnull;
-import cc.kune.barters.shared.BartersConstants;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.errors.UIException;
-import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.ui.EditEvent;
import cc.kune.common.client.ui.EditEvent.EditHandler;
import cc.kune.common.client.ui.HasEditHandler;
@@ -42,7 +40,6 @@
import cc.kune.gspace.client.actions.RenameAction;
import cc.kune.gspace.client.actions.RenameListener;
import cc.kune.gspace.client.tool.ContentViewer;
-import cc.kune.meets.shared.MeetingsConstants;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.event.shared.HandlerRegistration;
@@ -168,10 +165,10 @@
// is already participant, show wave editor
if (org.waveprotocol.box.webclient.client.Session.get().isLoggedIn()) {
final String typeId = stateContent.getTypeId();
- if (typeId.equals(BartersConstants.TYPE_BARTER)
- || typeId.equals(MeetingsConstants.TYPE_MEETING)) {
- NotifyUser.important("Currently we are experiencing problems with this tool. We'll fix ASAP...");
- }
+ // if (typeId.equals(BartersConstants.TYPE_BARTER)
+ // || typeId.equals(MeetingsConstants.TYPE_MEETING)) {
+ // NotifyUser.important("Currently we are experiencing problems with this tool. We'll fix ASAP...");
+ // }
getView().setEditableContent(stateContent);
} else {
getView().setContent(stateContent);
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -23,6 +23,7 @@
import cc.kune.common.client.actions.ui.ActionSimplePanel;
import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
@@ -91,7 +92,9 @@
menu.setStandalone(false);
itemWidget.setMenuVisible(false);
toolbar.add(menu);
- for (final GuiActionDescrip menuItem : item.getActionCollection()) {
+ final GuiActionDescCollection actions = item.getActionCollection();
+ toolbar.setVisible(actions.size() > 0);
+ for (final GuiActionDescrip menuItem : actions) {
menuItem.setParent(menu);
toolbar.add(menuItem);
}
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -36,6 +36,7 @@
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.domain.utils.AccessRights;
import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
import cc.kune.core.shared.dto.BasicMimeTypeDTO;
import cc.kune.core.shared.dto.ContainerDTO;
import cc.kune.core.shared.dto.ContainerSimpleDTO;
@@ -135,16 +136,19 @@
this.renameAction = renameAction;
}
- private void addItem(final String title, final String contentTypeId, final BasicMimeTypeDTO mimeType,
- final ContentStatus status, final StateToken stateToken, final StateToken parentStateToken,
- final AccessRights rights, final long modifiedOn) {
- final Object icon = getIcon(stateToken, contentTypeId, mimeType);
+ private void addItem(final AbstractContentSimpleDTO content, final BasicMimeTypeDTO mimeType,
+ final ContentStatus status, final StateToken parentStateToken, final AccessRights rights,
+ final long modifiedOn) {
+ final StateToken stateToken = content.getStateToken();
+ final String typeId = content.getTypeId();
+ final String name = content.getName();
+ final Object icon = getIcon(stateToken, typeId, mimeType);
final String tooltip = getTooltip(stateToken, mimeType);
final FolderItemDescriptor item = new FolderItemDescriptor(genId(stateToken),
- genId(parentStateToken), icon, title, tooltip, status, stateToken, modifiedOn,
- capabilitiesRegistry.isDragable(contentTypeId) && rights.isAdministrable(),
- capabilitiesRegistry.isDropable(contentTypeId) && rights.isAdministrable(),
- actionsRegistry.getCurrentActions(stateToken, contentTypeId, session.isLogged(), rights,
+ genId(parentStateToken), icon, name, tooltip, status, stateToken, modifiedOn,
+ capabilitiesRegistry.isDragable(typeId) && rights.isAdministrable(),
+ capabilitiesRegistry.isDropable(typeId) && rights.isAdministrable(),
+ actionsRegistry.getCurrentActions(content, typeId, session.isLogged(), rights,
ActionGroups.MENUITEM));
if (status.equals(ContentStatus.inTheDustbin) && !session.getShowDeletedContent()) {
// Don't show
@@ -195,16 +199,14 @@
} else {
// Folders
for (final ContainerSimpleDTO childFolder : container.getChilds()) {
- addItem(childFolder.getName(), childFolder.getTypeId(), null, ContentStatus.publishedOnline,
- childFolder.getStateToken(),
+ addItem(childFolder, null, ContentStatus.publishedOnline,
childFolder.getStateToken().copy().setFolder(childFolder.getParentFolderId()),
containerRights, FolderViewerView.NO_DATE);
}
// Other contents (docs, etc)
for (final ContentSimpleDTO content : container.getContents()) {
- addItem(content.getTitle(), content.getTypeId(), content.getMimeType(), content.getStatus(),
- content.getStateToken(), content.getStateToken().copy().clearDocument(),
- content.getRights(), content.getModifiedOn());
+ addItem(content, content.getMimeType(), content.getStatus(),
+ content.getStateToken().copy().clearDocument(), content.getRights(), content.getModifiedOn());
}
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -28,19 +28,20 @@
import cc.kune.gspace.client.tool.selector.ToolSelector;
public class ChatClientTool extends OldFoldableAbstractClientTool {
- public static final String NAME = "chats";
- public static final String TYPE_ROOT = "chat.root";
- public static final String TYPE_ROOM = "chat.room";
- public static final String TYPE_CHAT = "chat.chat";
+ public static final String NAME = "chats";
+ public static final String TYPE_CHAT = "chat.chat";
+ public static final String TYPE_ROOM = "chat.room";
+ public static final String TYPE_ROOT = "chat.root";
- public ChatClientTool(final I18nTranslationService i18n, final WorkspaceSkeleton ws,
- final ToolSelector toolSelector, final WsThemeManager wsThemePresenter,
- ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
- super(NAME, i18n.t("chat rooms"), toolSelector, wsThemePresenter, ws, contentCapabilitiesRegistry);
- registerContentTypeIcon(TYPE_ROOM, "images/emite-room.png");
- }
+ public ChatClientTool(final I18nTranslationService i18n, final WorkspaceSkeleton ws,
+ final ToolSelector toolSelector, final WsThemeManager wsThemePresenter,
+ final ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
+ super(NAME, i18n.t("chat rooms"), toolSelector, wsThemePresenter, ws, contentCapabilitiesRegistry);
+ registerContentTypeIcon(TYPE_ROOM, "images/emite-room.png");
+ }
- public String getName() {
- return NAME;
- }
+ @Override
+ public String getName() {
+ return NAME;
+ }
}
Added: trunk/src/main/webapp/others/kune-wave-extensions.xml
===================================================================
--- trunk/src/main/webapp/others/kune-wave-extensions.xml (rev 0)
+++ trunk/src/main/webapp/others/kune-wave-extensions.xml 2011-06-09 12:25:38 UTC (rev 1399)
@@ -0,0 +1,65 @@
+
+<!-- List of Wave extensions to use in Kune ===================== -->
+
+<extensions>
+
+ <extension>
+ <name>massmob</name>
+ <installerUrl>http://mass-mob.appspot.com/massmob/massmob-extension.xml
+ </installerUrl>
+ <gadgetUrl>http://mass-mob.appspot.com/massmob/org.ourproject.massmob.client.MassmobGa…
+ </gadgetUrl>
+ <iconUrl>http://mass-mob.appspot.com/logo.png</iconUrl>
+ <iconCss></iconCss>
+ </extension>
+
+</extensions>
+
+<!-- Where and how to use the above extensions ================ -->
+
+<guiActionDescriptors>
+
+ <guiActionDescriptor>
+ <extensionName>massmob</extensionName>
+ <name>Create a meeting</name>
+ <description>Call and speed-up of events as meeting, smartmobs,
+ flashmobs, protest demonstrations, etc.</description>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId>docs.folder</typeId>
+ <typeId>docs.root</typeId>
+ <typeId>docs.root</typeId>
+ <typeId>blogs.blog</typeId>
+ </typeIds>
+ <name></name>
+ <location>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </location>
+ <!-- only for new waves: anyone, onlymembers, onlyadmins, ask -->
+ <participants>ask</participants>
+ </guiActionDescriptor>
+
+ <guiActionDescriptor>
+ <extensionName>massmob</extensionName>
+ <name>Add a meeting</name>
+ <description>Call and speed-up of events as meeting, smartmobs,
+ flashmobs, protest demonstrations, etc.</description>
+ <enabled>true</enabled>
+ <typeIds>
+ <typeId>docs.doc</typeId>
+ </typeIds>
+ <name></name>
+ <location>
+ <rol>
+ <!-- Administrator, Editor, Viewer -->
+ <rolRequired>Editor</rolRequired>
+ <authNeed>true</authNeed>
+ </rol>
+ </location>
+ </guiActionDescriptor>
+
+</guiActionDescriptors>
Property changes on: trunk/src/main/webapp/others/kune-wave-extensions.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -29,8 +29,8 @@
import org.junit.Before;
import org.junit.Test;
-import org.ourproject.kune.chat.server.ChatServerTool;
+import cc.kune.chat.shared.ChatConstants;
import cc.kune.core.server.content.ContainerManager;
import cc.kune.core.server.content.ContentManager;
import cc.kune.core.server.manager.GroupManager;
@@ -47,64 +47,64 @@
import com.google.inject.persist.Transactional;
public class DatabaseInitializerTest {
- @Inject
- ContainerManager containerManager;
- @Inject
- ContentManager contentManager;
- @Inject
- I18nCountryManager countryManager;
- private Group defaultGroup;
- @Inject
- GroupManager groupManager;
- @Inject
- I18nLanguageManager languageManager;
- @Inject
- LicenseManager licenseManager;
+ @Inject
+ ContainerManager containerManager;
+ @Inject
+ ContentManager contentManager;
+ @Inject
+ I18nCountryManager countryManager;
+ private Group defaultGroup;
+ @Inject
+ GroupManager groupManager;
+ @Inject
+ I18nLanguageManager languageManager;
+ @Inject
+ LicenseManager licenseManager;
- @Inject
- I18nTranslationManager transManager;
+ @Inject
+ I18nTranslationManager transManager;
- @Transactional
- @Before
- public void init() {
- new IntegrationTestHelper(this);
- defaultGroup = groupManager.getSiteDefaultGroup();
- }
+ @Transactional
+ @Before
+ public void init() {
+ new IntegrationTestHelper(this);
+ defaultGroup = groupManager.getSiteDefaultGroup();
+ }
- @Test
- public void testDefaultContentAndLicenses() {
- assertNotNull(defaultGroup.getDefaultContent());
- assertTrue(licenseManager.getAll().size() > 0);
- assertNotNull(defaultGroup.getDefaultLicense());
- }
+ @Test
+ public void testDefaultContentAndLicenses() {
+ assertNotNull(defaultGroup.getDefaultContent());
+ assertTrue(licenseManager.getAll().size() > 0);
+ assertNotNull(defaultGroup.getDefaultLicense());
+ }
- @Test
- public void testDefaultDocumentContent() {
- final Content content = defaultGroup.getDefaultContent();
- assertEquals(TYPE_DOCUMENT, content.getTypeId());
- final Container rootDocFolder = content.getContainer();
- assertEquals(true, rootDocFolder.isRoot());
- }
+ @Test
+ public void testDefaultDocumentContent() {
+ final Content content = defaultGroup.getDefaultContent();
+ assertEquals(TYPE_DOCUMENT, content.getTypeId());
+ final Container rootDocFolder = content.getContainer();
+ assertEquals(true, rootDocFolder.isRoot());
+ }
- @Test
- public void testI18n() {
- assertNotNull(countryManager.find(Long.valueOf(75)));
- assertNotNull(languageManager.findByCode("en"));
- assertNotNull(languageManager.find(Long.valueOf(1819)));
- }
+ @Test
+ public void testI18n() {
+ assertNotNull(countryManager.find(Long.valueOf(75)));
+ assertNotNull(languageManager.findByCode("en"));
+ assertNotNull(languageManager.find(Long.valueOf(1819)));
+ }
- @Test
- public void testToolConfiguration() {
- assertNotNull(defaultGroup);
- final ToolConfiguration docToolConfig = defaultGroup.getToolConfiguration(NAME);
- assertNotNull(docToolConfig);
- assertTrue(docToolConfig.isEnabled());
- final ToolConfiguration chatToolConfig = defaultGroup.getToolConfiguration(ChatServerTool.NAME);
- assertNotNull(chatToolConfig);
- assertTrue(chatToolConfig.isEnabled());
- final List<String> enabledTools = groupManager.findEnabledTools(defaultGroup.getId());
- assertNotNull(enabledTools);
- assertTrue(enabledTools.size() > 0);
- }
+ @Test
+ public void testToolConfiguration() {
+ assertNotNull(defaultGroup);
+ final ToolConfiguration docToolConfig = defaultGroup.getToolConfiguration(NAME);
+ assertNotNull(docToolConfig);
+ assertTrue(docToolConfig.isEnabled());
+ final ToolConfiguration chatToolConfig = defaultGroup.getToolConfiguration(ChatConstants.NAME);
+ assertNotNull(chatToolConfig);
+ assertTrue(chatToolConfig.isEnabled());
+ final List<String> enabledTools = groupManager.findEnabledTools(defaultGroup.getId());
+ assertNotNull(enabledTools);
+ assertTrue(enabledTools.size() > 0);
+ }
}
Modified: trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -22,7 +22,6 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.configuration.ConfigurationException;
-import org.ourproject.kune.chat.server.ChatServerModule;
import org.waveprotocol.box.server.CoreSettings;
import org.waveprotocol.box.server.ServerModule;
import org.waveprotocol.box.server.persistence.PersistenceModule;
@@ -31,6 +30,7 @@
import org.waveprotocol.box.server.waveserver.WaveServerImpl;
import org.waveprotocol.wave.federation.noop.NoOpFederationModule;
+import cc.kune.chat.server.ChatServerModule;
import cc.kune.core.server.KunePersistenceService;
import cc.kune.core.server.PlatformServerModule;
import cc.kune.core.server.TestConstants;
Modified: trunk/src/test/java/org/ourproject/kune/chat/ChatToolTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/chat/ChatToolTest.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/test/java/org/ourproject/kune/chat/ChatToolTest.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -23,15 +23,16 @@
import org.junit.Test;
import org.ourproject.kune.chat.client.ChatClientTool;
-import org.ourproject.kune.chat.server.ChatServerTool;
+import cc.kune.chat.shared.ChatConstants;
+
public class ChatToolTest {
- @Test
- public void clientAndServerAreSync() {
- assertEquals(ChatServerTool.NAME, ChatClientTool.NAME);
- assertEquals(ChatServerTool.TYPE_ROOT, ChatClientTool.TYPE_ROOT);
- assertEquals(ChatServerTool.TYPE_ROOM, ChatClientTool.TYPE_ROOM);
- assertEquals(ChatServerTool.TYPE_CHAT, ChatClientTool.TYPE_CHAT);
- }
+ @Test
+ public void clientAndServerAreSync() {
+ assertEquals(ChatConstants.NAME, ChatClientTool.NAME);
+ assertEquals(ChatConstants.TYPE_ROOT, ChatClientTool.TYPE_ROOT);
+ assertEquals(ChatConstants.TYPE_ROOM, ChatClientTool.TYPE_ROOM);
+ assertEquals(ChatConstants.TYPE_CHAT, ChatClientTool.TYPE_CHAT);
+ }
}
Modified: trunk/src/test/java/org/ourproject/kune/chat/server/managers/XmppManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/chat/server/managers/XmppManagerDefaultTest.java 2011-06-07 16:07:55 UTC (rev 1398)
+++ trunk/src/test/java/org/ourproject/kune/chat/server/managers/XmppManagerDefaultTest.java 2011-06-09 12:25:38 UTC (rev 1399)
@@ -75,7 +75,7 @@
final String roomName = "roomName";
final ChatConnection conn1 = manager.login("testUser1", "easy1", "test");
final ChatConnection conn2 = manager.login("testUser2", "easy2", "test");
- final Room room1 = manager.createRoom(conn1, roomName, "user1Alias");
+ final Room room1 = manager.createRoom(conn1, roomName, "user1Alias", "subject");
final OutputListener listener1 = new OutputListener("1");
room1.setListener(listener1);
final Room room2 = manager.joinRoom(conn2, roomName, "user2Alias");
1
0
r1398 - / donate donate/.settings donate/src donate/src/cc donate/src/cc/kune donate/src/cc/kune/sandbox donate/src/cc/kune/sandbox/donate donate/src/cc/kune/sandbox/donate/client donate/war donate/war/WEB-INF
by Vicente J. Ruiz Jurado 07 Jun '11
by Vicente J. Ruiz Jurado 07 Jun '11
07 Jun '11
Author: vjrj_
Date: 2011-06-07 18:07:55 +0200 (Tue, 07 Jun 2011)
New Revision: 1398
Added:
donate/
donate/.classpath
donate/.project
donate/.settings/
donate/.settings/com.google.gdt.eclipse.core.prefs
donate/.settings/com.google.gwt.eclipse.core.prefs
donate/.settings/org.eclipse.jdt.core.prefs
donate/bin/
donate/src/
donate/src/cc/
donate/src/cc/kune/
donate/src/cc/kune/sandbox/
donate/src/cc/kune/sandbox/donate/
donate/src/cc/kune/sandbox/donate/Donate.gwt.xml
donate/src/cc/kune/sandbox/donate/client/
donate/src/cc/kune/sandbox/donate/client/Donate.java
donate/src/cc/kune/sandbox/donate/server/
donate/war/
donate/war/Donate.css
donate/war/Donate.html
donate/war/WEB-INF/
donate/war/WEB-INF/web.xml
donate/war/blue_gradient.gif
donate/war/btn-blue.png
donate/war/btn-orange.png
donate/war/dot1.png
donate/war/dot2.png
donate/war/dot3.png
donate/war/dot4.png
donate/war/drafts.gif
donate/war/gray_gradient.gif
donate/war/home.gif
Log:
donate test page
Property changes on: donate
___________________________________________________________________
Name: svn:ignore
+ .gwt
Added: donate/.classpath
===================================================================
--- donate/.classpath (rev 0)
+++ donate/.classpath 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER/GWT (6)"/>
+ <classpathentry kind="output" path="war/WEB-INF/classes"/>
+</classpath>
Added: donate/.project
===================================================================
--- donate/.project (rev 0)
+++ donate/.project 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>donate</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.google.gdt.eclipse.designer.GWTBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>com.google.gdt.eclipse.designer.GWTNature</nature>
+ <nature>com.google.gwt.eclipse.core.gwtNature</nature>
+ </natures>
+</projectDescription>
Added: donate/.settings/com.google.gdt.eclipse.core.prefs
===================================================================
--- donate/.settings/com.google.gdt.eclipse.core.prefs (rev 0)
+++ donate/.settings/com.google.gdt.eclipse.core.prefs 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,5 @@
+#Mon Jun 06 15:05:50 CEST 2011
+eclipse.preferences.version=1
+jarsExcludedFromWebInfLib=
+warSrcDir=war
+warSrcDirIsOutput=true
Added: donate/.settings/com.google.gwt.eclipse.core.prefs
===================================================================
--- donate/.settings/com.google.gwt.eclipse.core.prefs (rev 0)
+++ donate/.settings/com.google.gwt.eclipse.core.prefs 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,5 @@
+#Mon Jun 06 15:05:57 CEST 2011
+eclipse.preferences.version=1
+entryPointModules=
+filesCopiedToWebInfLib=gwt-servlet.jar
+gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBW11dPjwvZXh0cmEtYXJncz48dm0tYXJncz48IVtDREFUQVstWG14NTEybV1dPjwvdm0tYXJncz48ZW50cnktcG9pbnQtbW9kdWxlPmNjLmt1bmUuc2FuZGJveC5kb25hdGUuRG9uYXRlPC9lbnRyeS1wb2ludC1tb2R1bGU+PC9nd3QtY29tcGlsZS1zZXR0aW5ncz4\=
Added: donate/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- donate/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ donate/.settings/org.eclipse.jdt.core.prefs 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,12 @@
+#Thu Jun 02 21:06:12 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Added: donate/src/cc/kune/sandbox/donate/Donate.gwt.xml
===================================================================
--- donate/src/cc/kune/sandbox/donate/Donate.gwt.xml (rev 0)
+++ donate/src/cc/kune/sandbox/donate/Donate.gwt.xml 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,4 @@
+<module>
+ <inherits name="com.google.gwt.user.User"/>
+ <entry-point class="cc.kune.sandbox.donate.client.Donate"/>
+</module>
Added: donate/src/cc/kune/sandbox/donate/client/Donate.java
===================================================================
--- donate/src/cc/kune/sandbox/donate/client/Donate.java (rev 0)
+++ donate/src/cc/kune/sandbox/donate/client/Donate.java 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,353 @@
+package cc.kune.sandbox.donate.client;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.user.client.ui.FormPanel;
+import com.google.gwt.user.client.ui.Hidden;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.HTMLPanel;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.TextBoxBase;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.event.dom.client.FocusHandler;
+import com.google.gwt.event.dom.client.FocusEvent;
+import com.google.gwt.event.dom.client.BlurHandler;
+import com.google.gwt.event.dom.client.BlurEvent;
+
+/**
+ * Entry point classes define <code>onModuleLoad()</code>.
+ */
+public class Donate implements EntryPoint {
+ //Definicion de variables
+ private TextBox txtbxOtherValue = new TextBox(); //TextBox otro valor EUROS
+ private TextBox txtbxOtherValueDolar = new TextBox();
+ private String sDefaultValue = "other value"; //Valor por defecto
+ @SuppressWarnings("deprecation")
+ public void onModuleLoad() {
+ RootPanel rootPanel = RootPanel.get();
+
+ HTMLPanel divEntries = new HTMLPanel("");
+ divEntries.setStyleName("entries");
+ rootPanel.add(divEntries, 10, 10);
+
+ HTMLPanel divRightedit = new HTMLPanel("");
+ divRightedit.setStyleName("rightedit");
+ divEntries.add(divRightedit);
+
+
+ HTMLPanel divPost = new HTMLPanel("");
+ divPost.setStyleName("post");
+ divEntries.add(divPost);
+
+ HTML contenidoDivPost = new HTML(getParrafo(null) + getCabecera("Donate to comunes", 2)+
+ getParrafo("Comunes is a non-profit organization dedicated to " +
+ "encourage the commons, those goods collectively owned by everybody, " +
+ "and also serves as an umbrella for other related initiatives. We rely " +
+ "on the generous support of people like you and other collectives to " +
+ "help us continue the work we do.") + getParrafo(null) +
+ getCabecera("Regular donation per month (the most necessary for us)", 3) +
+ getParrafo(null), true);
+ contenidoDivPost.setStyleName("textoPost");
+
+ divPost.add(contenidoDivPost);
+
+ //Opciones para donaciones en Euros
+ HTMLPanel pnListaEuro = new HTMLPanel("");
+ pnListaEuro.setStyleName("p0");
+
+ HTML divListaEUR = new HTML("<ul class='blue'>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>10 €/month</span></a></li> " +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>15 €/month</span></a></li>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>20 €/month</span></a></li>");
+ divListaEUR.setStyleName("cm-btn cm-btn-line");
+ pnListaEuro.add(divListaEUR);
+
+ divPost.add(pnListaEuro);
+ txtbxOtherValue.addBlurHandler(new BlurHandler() {
+ String sDefaultValue = "other value";
+ public void onBlur(BlurEvent event) {
+ String sActualValue = txtbxOtherValue.getText();
+ int iActualValue = 0;
+ if(!sActualValue.equals(""))
+ {
+ iActualValue = Integer.parseInt(sActualValue);
+ }
+ //validate
+ if(sActualValue == "" || iActualValue == 0 || sActualValue != "" + iActualValue)
+ {
+ txtbxOtherValue.setText(sDefaultValue);
+ }
+ }
+ });
+
+ //Configuramos el boton
+ txtbxOtherValue.setName("a3");
+ txtbxOtherValue.setVisibleLength(10);
+ txtbxOtherValue.setTextAlignment(TextBoxBase.ALIGN_CENTER);
+ txtbxOtherValue.setSize("83px", "16px");
+ txtbxOtherValue.setValue(sDefaultValue);
+ txtbxOtherValue.setTitle("Type other value and press Enter");
+
+ txtbxOtherValue.addFocusHandler(new FocusHandler() {
+ //FieldFocused
+ public void onFocus(FocusEvent event) {
+ String sDefaultValue = "other value";
+ //Window.alert(txtbxOtherValue.getText());
+ if(txtbxOtherValue.getText().equals(sDefaultValue))
+ {
+ txtbxOtherValue.setText("");
+ }
+ }
+ });
+
+ HTMLPanel pnOtherValue = new HTMLPanel("");
+ divPost.add(pnOtherValue);
+ pnOtherValue.setStyleName("p1");
+
+ //Campos del form
+ Hidden h1 = new Hidden();
+ h1.setName("business");
+ h1.setValue("donate(a)ourproject.org");
+
+ Hidden h2 = new Hidden();
+ h2.setName("cmd");
+ h2.setValue("_xclick-subscriptions");
+
+ Hidden h3 = new Hidden();
+ h3.setName("item_name");
+ h3.setValue("Donate to comunes.org");
+
+ Hidden h4 = new Hidden();
+ h4.setName("currency_code");
+ h4.setValue("EUR");
+
+ Hidden h4Dolar = new Hidden();
+ h4Dolar.setName("currency_code");
+ h4Dolar.setValue("USD");
+
+ Hidden h5 = new Hidden();
+ h5.setName("no_shipping");
+ h5.setValue("1");
+
+ Hidden h6 = new Hidden();
+ h6.setName("t3");
+ h6.setValue("M");
+
+ Hidden h7 = new Hidden();
+ h7.setName("p3");
+ h7.setValue("1");
+
+ Hidden h8 = new Hidden();
+ h8.setName("src");
+ h8.setValue("1");
+
+ Hidden h9 = new Hidden();
+ h9.setName("image_url");
+ h9.setValue("http://comunes.org/cm/images/logo-pp.png");
+
+ Hidden h10 = new Hidden();
+ h10.setName("sra");
+ h10.setValue("1");
+
+ Hidden h11 = new Hidden();
+ h11.setName("lc");
+ h11.setValue("us");
+ //Fin campos del form
+
+ FormPanel frmOtherValue = new FormPanel();
+ frmOtherValue.setMethod("get");
+ frmOtherValue.setAction("https://www.paypal.com/cgi-bin/webscr");
+
+ VerticalPanel pnFrmOtherValue = new VerticalPanel();
+
+ pnFrmOtherValue.add(h1);
+ pnFrmOtherValue.add(h2);
+ pnFrmOtherValue.add(h3);
+ pnFrmOtherValue.add(h4);
+ pnFrmOtherValue.add(h5);
+ pnFrmOtherValue.add(h6);
+ pnFrmOtherValue.add(h7);
+ pnFrmOtherValue.add(h8);
+ pnFrmOtherValue.add(h9);
+ pnFrmOtherValue.add(h10);
+ pnFrmOtherValue.add(h11);
+ pnFrmOtherValue.add(txtbxOtherValue);
+
+ frmOtherValue.add(pnFrmOtherValue);
+ pnOtherValue.add(frmOtherValue);
+
+ HTMLPanel pnLabelEUR = new HTMLPanel(" €/month ");
+ pnLabelEUR.setStyleName("p1Label");
+ divPost.add(pnLabelEUR);
+
+ //Opciones para donaciones en Dolares
+ HTMLPanel pnListaDolar = new HTMLPanel("");
+ pnListaDolar.setStyleName("p0");
+
+ HTML divListaUSA = new HTML("<ul class='blue'>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>10 $/month</span></a></li> " +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>15 $/month</span></a></li>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=do… to comunes.org&image_url=http://comunes.org/cm/images/logo-pp.png' class='current'><span>20 $/month</span></a></li>");
+ divListaUSA.setStyleName("cm-btn cm-btn-line");
+ pnListaDolar.add(divListaUSA);
+
+ divPost.add(pnListaDolar);
+ txtbxOtherValueDolar.addBlurHandler(new BlurHandler() {
+ String sDefaultValue = "other value";
+ public void onBlur(BlurEvent event) {
+ String sActualValue = txtbxOtherValueDolar.getText();
+ int iActualValue = 0;
+ if(!sActualValue.equals(""))
+ {
+ iActualValue = Integer.parseInt(sActualValue);
+ }
+ //validate
+ if(sActualValue == "" || iActualValue == 0 || sActualValue != "" + iActualValue)
+ {
+ txtbxOtherValueDolar.setText(sDefaultValue);
+ }
+ }
+ });
+
+ //Configuramos el boton de Dolar
+ txtbxOtherValueDolar.setName("a3");
+ txtbxOtherValueDolar.setVisibleLength(10);
+ txtbxOtherValueDolar.setTextAlignment(TextBoxBase.ALIGN_CENTER);
+ txtbxOtherValueDolar.setSize("83px", "16px");
+ txtbxOtherValueDolar.setValue(sDefaultValue);
+ txtbxOtherValueDolar.setTitle("Type other value and press Enter");
+
+ txtbxOtherValueDolar.addFocusHandler(new FocusHandler() {
+ //FieldFocused
+ public void onFocus(FocusEvent event) {
+ String sDefaultValue = "other value";
+ //Window.alert(txtbxOtherValueDolar.getText());
+ if(txtbxOtherValueDolar.getText().equals(sDefaultValue))
+ {
+ txtbxOtherValueDolar.setText("");
+ }
+ }
+ });
+
+ HTMLPanel pnOtherValueDolar = new HTMLPanel("");
+ divPost.add(pnOtherValueDolar);
+ pnOtherValueDolar.setStyleName("p1");
+
+ FormPanel frmOtherValueDolar = new FormPanel();
+ frmOtherValueDolar.setMethod("get");
+ frmOtherValueDolar.setAction("https://www.paypal.com/cgi-bin/webscr");
+
+ VerticalPanel pnFrmOtherValueDolar = new VerticalPanel();
+
+ pnFrmOtherValueDolar.add(h1);
+ pnFrmOtherValueDolar.add(h2);
+ pnFrmOtherValueDolar.add(h3);
+ pnFrmOtherValueDolar.add(h4Dolar); //Hidden diferente
+ pnFrmOtherValueDolar.add(h5);
+ pnFrmOtherValueDolar.add(h6);
+ pnFrmOtherValueDolar.add(h7);
+ pnFrmOtherValueDolar.add(h8);
+ pnFrmOtherValueDolar.add(h9);
+ pnFrmOtherValueDolar.add(h10);
+ pnFrmOtherValueDolar.add(h11);
+ pnFrmOtherValueDolar.add(txtbxOtherValueDolar);
+
+ frmOtherValueDolar.add(pnFrmOtherValueDolar);
+ pnOtherValueDolar.add(frmOtherValueDolar);
+
+ HTMLPanel pnLabelDolar = new HTMLPanel(" $/month ");
+ pnLabelDolar.setStyleName("p1Label");
+ divPost.add(pnLabelDolar);
+
+ //Siguiente p�rrafo
+ HTML contenidoDivPost2 = new HTML(getCabecera("Single donation", 3), true);
+ contenidoDivPost2.setStyleName("textoPost");
+
+ divPost.add(contenidoDivPost2);
+
+ //Opciones para donaciones simples en Euros
+ HTMLPanel pnListaEuro2 = new HTMLPanel("");
+ pnListaEuro2.setStyleName("p0");
+
+ HTML divListaEUR2 = new HTML("<ul class='blue'>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&amount=25&image_url=http://comunes.org/cm/ima…' class='current'><span>25 € </span></a></li>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&amount=75&image_url=http://comunes.org/cm/ima…' class='current'><span>75 € </span></a></li> " +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&amount=150&image_url=http://comunes.org/cm/im…' class='current'><span>150 € </span></a></li>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&amount=300&image_url=http://comunes.org/cm/im…' class='current'><span>300 € </span></a></li>");
+ divListaEUR2.setStyleName("cm-btn cm-btn-line");
+ pnListaEuro2.add(divListaEUR2);
+ divPost.add(pnListaEuro2);
+
+ //Opciones para donaciones simples en dolares
+ HTMLPanel pnListaDolar2 = new HTMLPanel("");
+ pnListaDolar2.setStyleName("p0");
+
+ HTML divListaUSA2 = new HTML("<ul class='blue'>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&amount=25&image_url=http://comunes.org/cm/ima…' class='current'><span>25 $ </span></a></li>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&amount=75&image_url=http://comunes.org/cm/ima…' class='current'><span>75 $ </span></a></li>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&amount=150&image_url=http://comunes.org/cm/im…' class='current'><span>150 $ </span></a></li>" +
+ "<li><a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&amount=300&image_url=http://comunes.org/cm/im…' class='current'><span>300 $ </span></a></li>");
+ divListaUSA2.setStyleName("cm-btn cm-btn-line");
+ pnListaDolar2.add(divListaUSA2);
+
+ divPost.add(pnListaDolar2);
+
+ HTMLPanel pnVacio = new HTMLPanel("");
+ pnVacio.setStyleName("divVacio");
+
+ divPost.add(pnVacio);
+
+ //Texto final
+ HTML contenidoDivPost3 = new HTML(getParrafo("For other amounts use <a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=EUR&image_url=http://comunes.org/cm/images/logo-p…'>this link for Euros</a> or <a href='https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=donate@ourpro… to comunes.org¤cy_code=USD&image_url=http://comunes.org/cm/images/logo-p…'>this one for USD.</a>") +
+ getParrafo("Please consider donating more if you can afford it.") +
+ getCabecera("Give using your Bank", 3) +
+ "<br />" +
+ getParrafo("<a href='http://comunes.org/bank-info'>See our Bank account info page</a>") +
+ getParrafo("Unless you specify the contrary, we will add you to our donor list.") +
+ getParrafo("If you have doubts please contact us at donate at ourproject dot org.") +
+ getCabecera("Thanks indeed!", 3), true);
+ contenidoDivPost3.setStyleName("textoPost");
+
+ divPost.add(contenidoDivPost3);
+ }
+
+ public String getParrafo(String sTexto)
+ {
+ String p = "<p>";
+ if(sTexto != null)
+ {
+ p += sTexto;
+ }
+ p += "</p>";
+
+ return p;
+ }
+
+ public String getCabecera(String sTexto, int iTipo)
+ {
+ String cab = "";
+ String sCabecera = "";
+ String sFinCabecera = "";
+ switch(iTipo)
+ {
+ case 2:
+ case 3:
+ sCabecera = "<h" + iTipo + ">";
+ sFinCabecera = "</h" + iTipo + ">";
+ break;
+ default:
+ sCabecera = "<h2>";
+ sFinCabecera = "</h2>";
+ break;
+ }
+
+ cab += sCabecera;
+ if(sTexto != null)
+ {
+ cab += sTexto;
+ }
+ cab += sFinCabecera;
+
+ return cab;
+ }
+}
Property changes on: donate/war
___________________________________________________________________
Name: svn:ignore
+ cc.kune.sandbox.donate.Donate
Added: donate/war/Donate.css
===================================================================
--- donate/war/Donate.css (rev 0)
+++ donate/war/Donate.css 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,404 @@
+html {overflow:auto;height:100%;margin-bottom : 0.1em;}
+* {padding:0;margin:0;}
+body {background:#fff;font:0.88em Arial,Helvetica,Geneva,sans-serif;line-height:1.5em;color:#444444;}
+a {color:#FE7047;text-decoration:none;outline:none;font-weight:bold;}
+a:hover {background:inherit;color:#029A00;text-decoration:none;outline:0;}
+a:visited {text-decoration:none;outline:0;}
+a:link h3 {color:#951400;border:none;outline:0;}
+a:link img {border:none;outline:none;}
+p {padding-top:5px;padding-bottom:5px;}
+ul {list-style:none;margin-left:0;padding-left:0;margin-top:0;}
+ol {margin-left:0;margin-left:30px;margin-top:0;}
+img {border:none;padding-top:3px;padding-bottom:3px;}
+.textoPost{float:none;clear: both;}
+.p0{float:left;}
+.p0 ul li{
+ background: url(btn-blue.png) no-repeat top right;
+}
+.p1{float:left;border-bottom: 1px solid #E7E7E7;background-color: #FFFFFF;list-style: none outside none;margin: 10px 0;padding: 5px;}
+.p1 input {margin: 5px 0;}
+
+.p1Label{float:left;background-color: #FFFFFF;list-style: none outside none;margin: 14px 0;padding: 5px;}
+
+.divVacio{clear:both;}
+
+.post-edit-link { margin-left: 10px; border: 1px solid #CCC; padding:3px; text-decoration:none; }
+.post h2 {text-align: inherits; }
+
+entries div {padding-right:15px; border-right: 0px solid #F2F2F2;}
+.entries {width : 590px;float : left;padding : 0 0 15px 0;line-height : 1.7em;}
+.post {text-align: justify; text-justify: newspaper; margin-bottom : 2em;}
+.post ul {list-style : disc;margin : 1px 5px 3px 15px; padding : 2px; }
+.post li ul li { list-style-type : circle; margin-bottom : 0px; }
+.post li ul li ul li { list-style-type : square; margin-bottom : 0px; }
+h1 {font-size : 2em;line-height : 1em;/** text-transform : uppercase; **/ display : inline;margin-bottom : 0.2em;margin-top : 2.5em;}
+entries div h2 {font-size : 2em;line-height : 1em;display : inline;margin-bottom : 0.2em;margin-top : 2.5em;}
+entries div h2 a {color:#444444;}
+entries div h2 a:hover {color:#029A00; background-color: inherit;}
+h3 {font-weight : bold;font-size : 1em;text-transform : uppercase;margin-bottom : 0.2em; /** margin-top : 2.5em; **/ letter-spacing : 0.2em;color : #34353e;
+/** border-bottom : 1px solid silver; **/ }
+entries h3 {clear: both;padding-top: 1em; /** margin-top: 1em; **/ }
+entries div h1.big {margin-bottom: 1.5em;}
+.post h3 {border-bottom : none;letter-spacing : normal;margin-bottom : -0.5em;}
+blockquote {background-color : #f3f3f3;padding : 10px;margin : 15px 0;}
+.big {display : inline;font-size : 3em;}
+.results_content {padding : 0 0 .5em 0;border-bottom : 1px solid silver;}
+span.archive-meta {font-size: .9em;}
+a.archive-permalink {color:#444444;display: block;font-size: 1.2em;}
+.except {margin-top : 1em;}
+div.results_date {margin-top: .5em;font-size: .9em;}
+.archlist {float : left;color : #333;width : 100%;}
+ul.archlist li {display : inline;list-style-type : none;margin-right : 10px;float : left;display : block;width : 215px;}
+ul.archlist li a {float : left;margin-right : 3px;}
+ul.archlist li a:hover {background : #f3f3f3 !important;color : #029A00;}
+div.post p img {max-width: 580px;}
+div.post-tags {margin: .25em 0;}
+
+.post ul li {list-style-image: url("dot1.png");}
+
+.post li li {list-style-image: url("dot2.png");}
+
+.post li li li {list-style-image: url("dot3.png");}
+
+.post li li li li {list-style-image: url("dot4.png");}
+
+h3 {color:#555;font-size:17px;font-weight:bold;letter-spacing:0em;margin-bottom:0.1em;text-transform:none;}
+
+.cm-btn ul {padding: 5px;margin: 10px 0;list-style: none;background-color: #FFF;float: left;clear: left;}
+
+.cm-btn-line ul {border-bottom: 1px solid #E7E7E7;}
+
+.cm-btn ul li {float: left;display: inline; /*For ignore double margin in IE6*/margin: 0 10px;}
+
+.cm-btn ul li a {text-decoration: none;float:left;color: #999;cursor: pointer;font: 900 14px/22px "Arial", Helvetica, sans-serif;}
+
+.cm-btn ul li a span {
+ margin: 0 10px 0 -10px;
+ padding: 1px 8px 5px 18px;
+ position: relative; /*To fix IE6 problem (not displaying)*/
+ float:left;
+}
+
+/*BLUE*/
+.cm-btn ul.blue li a.current, .cm-btn ul.blue li a:hover {
+ background: url(btn-blue.png) no-repeat top right;
+}
+
+.cm-btn ul.blue li a.current {
+ color: #13335b;
+}
+
+.cm-btn ul.blue li a:hover {
+ color: #951400;
+}
+
+.cm-btn ul.blue li a:active {
+ color: #029A00;
+}
+
+.cm-btn ul.blue li a.current span, .cm-btn ul.blue li a:hover span {
+ background: url(btn-blue.png) no-repeat top left;
+}
+
+/*ORANGE*/
+.cm-btn ul.orange li a.current, .cm-btn ul.orange li a:hover {
+ background: url(btn-orange.png) no-repeat top right;
+
+}
+
+.cm-btn ul.orange li a.current {
+ color: #FFFFFF;
+}
+
+.cm-btn ul.orange li a:hover {
+ color: #951400;
+}
+
+.cm-btn ul.orange li a:active {
+ color: #029A00;
+}
+
+
+.cm-btn ul.orange li a.current span, .cm-btn ul.orange li a:hover span {background: url(btn-orange.png) no-repeat top left;}
+
+
+.gwt-DialogBox {
+ border: 2px solid #AAAAAA;
+ background-color: white;
+}
+
+.gwt-DialogBox .Caption {
+ background-image: url(gray_gradient.gif);
+ background-repeat: repeat-x;
+ padding: 4px;
+ padding-bottom: 8px;
+ font-weight: bold;
+ cursor: default;
+}
+
+.gwt-MenuBar {
+ background-color: #C3D9FF;
+ cursor: default;
+}
+
+.gwt-MenuItem {
+ font-size: 80%;
+ margin: 1px;
+ cursor: default;
+}
+
+.gwt-MenuItem-selected {
+ background-color: #E8EEF7;
+}
+
+.gwt-Tree {
+}
+
+.gwt-Tree .gwt-TreeItem {
+ font-size: 80%;
+ cursor: default;
+}
+
+.gwt-Tree .gwt-TreeItem-selected {
+ background-color: #C3D9FF;
+}
+
+.gwt-StackPanel {
+ background-color: white;
+ border: 1px solid #AAAAAA;
+ width: 15em;
+}
+
+.gwt-StackPanel .gwt-StackPanelItem {
+ background-image: url(blue_gradient.gif);
+ background-repeat: repeat-x;
+ background-color: #EEEEEE;
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-StackPanel .gwt-StackPanelItem-selected {
+}
+
+.gwt-TabPanel {
+
+}
+
+.gwt-TabPanelBottom {
+ border-left: 1px solid #87b3ff;
+ border-right: 1px solid #87b3ff;
+ border-bottom: 1px solid #87b3ff;
+}
+
+.gwt-TabBar {
+ font-size: smaller;
+}
+
+.gwt-TabBar .gwt-TabBarFirst {
+ height: 100%;
+ border-bottom: 1px solid #87b3ff;
+ border-right: 1px solid #87b3ff;
+ padding-left: 3px;
+}
+
+.gwt-TabBar .gwt-TabBarRest {
+ border-bottom: 1px solid #87b3ff;
+ padding-right: 3px;
+}
+
+.gwt-TabBar .gwt-TabBarItem {
+ border-top: 1px solid #87b3ff;
+ border-bottom: 1px solid #87b3ff;
+ padding: 2px;
+ cursor: hand;
+ white-space: nowrap;
+ border-right: 1px solid #87b3ff;
+}
+
+.gwt-TabBar .gwt-TabBarItem-selected {
+ font-weight: bold;
+ background-color: #e8eef7;
+ border-top: 1px solid #87b3ff;
+ border-right: 1px solid #87b3ff;
+ border-bottom: 1px solid #e8eef7;
+ padding: 2px;
+ cursor: default;
+ white-space: nowrap;
+}
+
+.gwt-PushButton-up {
+ background-color: #C3D9FF;
+ padding: 2px;
+ border: 2px solid transparent;
+ border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-PushButton-up-hovering {
+ background-color: #C3D9FF;
+ padding: 2px;
+ border: 2px solid transparent;
+ border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-PushButton-down {
+ background-color: #C3D9FF;
+ padding: 2px;
+ border: 2px solid transparent;
+ border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-PushButton-down-hovering {
+ background-color: #C3D9FF;
+ padding: 2px;
+ border: 2px solid transparent;
+ border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-ToggleButton-up {
+ background-color: #C3D9FF;
+ padding: 2px;
+ border: 2px solid transparent;
+ border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-ToggleButton-up-hovering {
+ background-color: #C3D9FF;
+ padding: 2px;
+ border: 2px solid transparent;
+ border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-ToggleButton-down {
+ background-color: #C3D9FF;
+ padding: 2px;
+ background-color: #E8F1FF;
+ border: 2px solid transparent;
+ border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-ToggleButton-down-hovering {
+ background-color: #C3D9FF;
+ padding: 2px;
+ background-color: #E8F1FF;
+ border: 2px solid transparent;
+ border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
+ cursor: pointer;
+ cursor: hand;
+}
+
+.gwt-RichTextArea {
+ border: 1px solid black;
+ background-color: white;
+}
+
+.gwt-RichTextToolbar {
+ background-color: #C3D9FF;
+ padding: 2px;
+}
+
+.gwt-RichTextToolbar .gwt-PushButton-up {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+}
+
+.gwt-RichTextToolbar .gwt-PushButton-up-hovering {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+ border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
+}
+
+.gwt-RichTextToolbar .gwt-PushButton-down {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
+}
+
+.gwt-RichTextToolbar .gwt-PushButton-down-hovering {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton-up {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+ border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) rgb(232, 241, 255);
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton-down {
+ margin-right: 2px;
+ background-color: #E8F1FF;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering {
+ margin-right: 2px;
+ background-color: #E8F1FF;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) rgb(157, 174, 205);
+}
+
+.gwt-HorizontalSplitPanel {
+ border: 8px solid #C3D9FF;
+}
+
+.gwt-HorizontalSplitPanel .splitter {
+ background-color: #C3D9FF;
+ cursor: move;
+}
+
+.gwt-HorizontalSplitPanel .left {
+ background-color: #E8EEF7;
+}
+
+.gwt-VerticalSplitPanel {
+ border: 8px solid #C3D9FF;
+}
+
+.gwt-VerticalSplitPanel .splitter {
+ background-color: #C3D9FF;
+ height: 8px;
+ cursor: move;
+}
+
+.gwt-SuggestBoxPopup {
+ border: 2px solid #C3D9FF;
+}
+
+.gwt-SuggestBoxPopup .item {
+ padding: 2px;
+}
+
+.gwt-SuggestBoxPopup .item-selected {
+ background-color: #C3D9FF;
+ padding: 2px;
+}
+
+.gwt-DisclosurePanel {
+ border: 2px solid #C3D9FF;
+}
+
+.gwt-DisclosurePanel .header {
+ background-color: #e8eef7;
+ cursor: hand;
+}
Added: donate/war/Donate.html
===================================================================
--- donate/war/Donate.html (rev 0)
+++ donate/war/Donate.html 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,36 @@
+<!doctype html>
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+
+ <!-- -->
+ <!-- Consider inlining CSS to reduce the number of requested files -->
+ <!-- -->
+ <link type="text/css" rel="stylesheet" href="Donate.css">
+
+ <!-- -->
+ <!-- Any title is fine -->
+ <!-- -->
+ <title>Wrapper HTML for Donate</title>
+
+ <!-- -->
+ <!-- This script loads your compiled module. -->
+ <!-- If you add any GWT meta tags, they must -->
+ <!-- be added before this line. -->
+ <!-- -->
+ <script language="javascript" src="cc.kune.sandbox.donate.Donate/cc.kune.sandbox.donate.Donate.nocache.js"></script>
+
+ </head>
+
+ <!-- -->
+ <!-- The body can have arbitrary html, or -->
+ <!-- we leave the body empty because we want -->
+ <!-- to create a completely dynamic ui -->
+ <!-- -->
+ <body>
+
+ <!-- OPTIONAL: include this if you want history support -->
+ <iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>
+
+ </body>
+</html>
Property changes on: donate/war/WEB-INF
___________________________________________________________________
Name: svn:ignore
+ classes
deploy
lib
Added: donate/war/WEB-INF/web.xml
===================================================================
--- donate/war/WEB-INF/web.xml (rev 0)
+++ donate/war/WEB-INF/web.xml 2011-06-07 16:07:55 UTC (rev 1398)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app
+ PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+
+ <!-- Default page to serve -->
+ <welcome-file-list>
+ <welcome-file>Donate.html</welcome-file>
+ </welcome-file-list>
+
+</web-app>
Added: donate/war/blue_gradient.gif
===================================================================
(Binary files differ)
Property changes on: donate/war/blue_gradient.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/btn-blue.png
===================================================================
(Binary files differ)
Property changes on: donate/war/btn-blue.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/btn-orange.png
===================================================================
(Binary files differ)
Property changes on: donate/war/btn-orange.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/dot1.png
===================================================================
(Binary files differ)
Property changes on: donate/war/dot1.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/dot2.png
===================================================================
(Binary files differ)
Property changes on: donate/war/dot2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/dot3.png
===================================================================
(Binary files differ)
Property changes on: donate/war/dot3.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/dot4.png
===================================================================
(Binary files differ)
Property changes on: donate/war/dot4.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/drafts.gif
===================================================================
(Binary files differ)
Property changes on: donate/war/drafts.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/gray_gradient.gif
===================================================================
(Binary files differ)
Property changes on: donate/war/gray_gradient.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: donate/war/home.gif
===================================================================
(Binary files differ)
Property changes on: donate/war/home.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
1
0
r1397 - in trunk/src/main/java: cc/kune/blogs/client/actions cc/kune/chat/client/actions cc/kune/docs/client/actions cc/kune/wiki/client/actions org/ourproject/kune
by Vicente J. Ruiz Jurado 01 Jun '11
by Vicente J. Ruiz Jurado 01 Jun '11
01 Jun '11
Author: vjrj_
Date: 2011-06-02 00:07:48 +0200 (Thu, 02 Jun 2011)
New Revision: 1397
Added:
trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java
Removed:
trunk/src/main/java/org/ourproject/kune/blogs/
Modified:
trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java
trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java
trunk/src/main/java/cc/kune/wiki/client/actions/WikiClientActions.java
Log:
Chat about contents action
Modified: trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java 2011-06-01 19:01:44 UTC (rev 1396)
+++ trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java 2011-06-01 22:07:48 UTC (rev 1397)
@@ -23,6 +23,7 @@
import static cc.kune.blogs.shared.BlogsConstants.TYPE_POST;
import static cc.kune.blogs.shared.BlogsConstants.TYPE_ROOT;
import static cc.kune.blogs.shared.BlogsConstants.TYPE_UPLOADEDFILE;
+import cc.kune.chat.client.actions.ChatAboutContentBtn;
import cc.kune.core.client.actions.ActionRegistryByType;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.resources.CoreResources;
@@ -55,7 +56,7 @@
final Provider<RefreshContentMenuItem> refresh,
final Provider<ContentViewerOptionsMenu> optionsMenuContent,
final Provider<ParticipateInContentBtn> participateBtn,
- final Provider<DelBlogMenuItem> delFolderMenuItem,
+ final Provider<ChatAboutContentBtn> chatAbout, final Provider<DelBlogMenuItem> delFolderMenuItem,
final Provider<SetAsHomePageMenuItem> setAsHomePage) {
super(session, stateManager, i18n, registry);
actionsRegistry.addAction(ActionGroups.VIEW, optionsMenuContent, all);
@@ -65,6 +66,7 @@
actionsRegistry.addAction(ActionGroups.VIEW, participateBtn, contents);
actionsRegistry.addAction(ActionGroups.VIEW, newDocBtn, containersNoRoot);
actionsRegistry.addAction(ActionGroups.VIEW, newFolderBtn, TYPE_ROOT);
+ actionsRegistry.addAction(ActionGroups.VIEW, chatAbout, contents);
actionsRegistry.addAction(ActionGroups.MENUITEM, openContentMenuItem, contents);
actionsRegistry.addAction(ActionGroups.MENUITEM, openContentMenuItem, containersNoRoot);
actionsRegistry.addAction(ActionGroups.MENUITEM, delContentMenuItem, contents);
Added: trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java 2011-06-01 22:07:48 UTC (rev 1397)
@@ -0,0 +1,72 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.chat.client.actions;
+
+import cc.kune.chat.client.ChatClient;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class ChatAboutContentBtn extends ButtonDescriptor {
+
+ public static class ChatAboutContentAction extends RolAction {
+
+ private final Provider<ChatClient> chatClient;
+ private final I18nTranslationService i18n;
+ private final Session session;
+
+ @Inject
+ public ChatAboutContentAction(final Session session, final I18nTranslationService i18n,
+ final Provider<ChatClient> chatClient) {
+ super(AccessRolDTO.Viewer, true);
+ this.session = session;
+ this.i18n = i18n;
+ this.chatClient = chatClient;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ final String subject = i18n.t("Chat about: [%s]", session.getContentState().getTitle());
+ final StateToken token = session.getCurrentStateToken();
+ chatClient.get().joinRoom(token.toString().replaceAll("\\.", "-"), subject,
+ session.getCurrentUserInfo().getShortName());
+ chatClient.get().show();
+ }
+
+ }
+
+ public static final String ID = "k-chatabout-btn";
+
+ @Inject
+ public ChatAboutContentBtn(final ChatAboutContentAction action, final CoreResources res,
+ final I18nTranslationService i18n) {
+ super(action);
+ this.withIcon(res.emiteRoom()).withToolTip(i18n.t("Chat and comment this")).withText(
+ i18n.t("Chat about")).withStyles("k-def-docbtn, k-fr").withId(ID);
+ }
+}
Property changes on: trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2011-06-01 19:01:44 UTC (rev 1396)
+++ trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2011-06-01 22:07:48 UTC (rev 1397)
@@ -23,6 +23,7 @@
import static cc.kune.docs.shared.DocsConstants.TYPE_FOLDER;
import static cc.kune.docs.shared.DocsConstants.TYPE_ROOT;
import static cc.kune.docs.shared.DocsConstants.TYPE_UPLOADEDFILE;
+import cc.kune.chat.client.actions.ChatAboutContentBtn;
import cc.kune.core.client.actions.ActionRegistryByType;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.resources.CoreResources;
@@ -55,7 +56,8 @@
final Provider<ContentViewerOptionsMenu> optionsMenuContent,
final Provider<ParticipateInContentBtn> participateBtn,
final Provider<DelFolderMenuItem> delFolderMenuItem,
- final Provider<RefreshContentMenuItem> refresh, final Provider<SetAsHomePageMenuItem> setAsHomePage) {
+ final Provider<ChatAboutContentBtn> chatAbout, final Provider<RefreshContentMenuItem> refresh,
+ final Provider<SetAsHomePageMenuItem> setAsHomePage) {
super(session, stateManager, i18n, registry);
actionsRegistry.addAction(ActionGroups.VIEW, optionsMenuContent, all);
actionsRegistry.addAction(ActionGroups.VIEW, refresh, all);
@@ -64,6 +66,7 @@
actionsRegistry.addAction(ActionGroups.VIEW, newDocBtn, containers);
actionsRegistry.addAction(ActionGroups.VIEW, participateBtn, contents);
actionsRegistry.addAction(ActionGroups.VIEW, newFolderBtn, containers);
+ actionsRegistry.addAction(ActionGroups.VIEW, chatAbout, contents);
actionsRegistry.addAction(ActionGroups.MENUITEM, openContentMenuItem, contents);
actionsRegistry.addAction(ActionGroups.MENUITEM, openContentMenuItem, containersNoRoot);
actionsRegistry.addAction(ActionGroups.MENUITEM, delContentMenuItem, contents);
Modified: trunk/src/main/java/cc/kune/wiki/client/actions/WikiClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/client/actions/WikiClientActions.java 2011-06-01 19:01:44 UTC (rev 1396)
+++ trunk/src/main/java/cc/kune/wiki/client/actions/WikiClientActions.java 2011-06-01 22:07:48 UTC (rev 1397)
@@ -23,6 +23,7 @@
import static cc.kune.wiki.shared.WikiConstants.TYPE_ROOT;
import static cc.kune.wiki.shared.WikiConstants.TYPE_UPLOADEDFILE;
import static cc.kune.wiki.shared.WikiConstants.TYPE_WIKIPAGE;
+import cc.kune.chat.client.actions.ChatAboutContentBtn;
import cc.kune.core.client.actions.ActionRegistryByType;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.resources.CoreResources;
@@ -53,7 +54,8 @@
final Provider<ContentViewerOptionsMenu> optionsMenuContent,
final Provider<ParticipateInContentBtn> participateBtn,
final Provider<DelFolderMenuItem> delFolderMenuItem,
- final Provider<RefreshContentMenuItem> refresh, final Provider<SetAsHomePageMenuItem> setAsHomePage) {
+ final Provider<ChatAboutContentBtn> chatAbout, final Provider<RefreshContentMenuItem> refresh,
+ final Provider<SetAsHomePageMenuItem> setAsHomePage) {
super(session, stateManager, i18n, registry);
actionsRegistry.addAction(ActionGroups.VIEW, optionsMenuContent, all);
actionsRegistry.addAction(ActionGroups.VIEW, refresh, all);
@@ -62,6 +64,7 @@
actionsRegistry.addAction(ActionGroups.VIEW, newWikiBtn, containers);
actionsRegistry.addAction(ActionGroups.VIEW, participateBtn, contents);
actionsRegistry.addAction(ActionGroups.VIEW, newFolderBtn, containers);
+ actionsRegistry.addAction(ActionGroups.VIEW, chatAbout, contents);
actionsRegistry.addAction(ActionGroups.MENUITEM, openContentMenuItem, contents);
actionsRegistry.addAction(ActionGroups.MENUITEM, openContentMenuItem, containersNoRoot);
actionsRegistry.addAction(ActionGroups.MENUITEM, delContentMenuItem, contents);
1
0
r1396 - in trunk: . src/main/java/cc/kune/core/client/auth src/test/java/cc/kune src/test/java/cc/kune/selenium src/test/java/cc/kune/selenium/login src/test/java/cc/kune/selenium/tools
by Vicente J. Ruiz Jurado 01 Jun '11
by Vicente J. Ruiz Jurado 01 Jun '11
01 Jun '11
Author: vjrj_
Date: 2011-06-01 21:01:44 +0200 (Wed, 01 Jun 2011)
New Revision: 1396
Added:
trunk/src/test/java/cc/kune/selenium/
trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java
trunk/src/test/java/cc/kune/selenium/PageObject.java
trunk/src/test/java/cc/kune/selenium/login/
trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
trunk/src/test/java/cc/kune/selenium/testng.xml
trunk/src/test/java/cc/kune/selenium/tools/
trunk/src/test/java/cc/kune/selenium/tools/AbstractWebTester.java
trunk/src/test/java/cc/kune/selenium/tools/GenericWebTester.java
trunk/src/test/java/cc/kune/selenium/tools/I18nHelper.java
trunk/src/test/java/cc/kune/selenium/tools/I18nHelperTest.java
trunk/src/test/java/cc/kune/selenium/tools/Lorem.java
trunk/src/test/java/cc/kune/selenium/tools/PageObjectModule.java
trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java
trunk/src/test/java/cc/kune/selenium/tools/SeleniumModule.java
Modified:
trunk/
trunk/pom.xml
trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java
Log:
More on selenium tests
Property changes on: trunk
___________________________________________________________________
Name: svn:ignore
- pmd-eclipse.log
.pmd
www-test
screenlog.0
client
public
target
target-local
Main-compile
.settings
.gwt-cache
repository
derby.log
star-yellow-grey.png
run.sh
tomcat
gwt-out
synccss.sh
.externalToolBuilders
.wtpmodules
www
testRepository
kune-OLD-jcr
KuneApp.launch
KuneApp NOSERVER.launch
old_src
org.ourproject.kune.app.Kune
org.ourproject.kune.iml
org.ourproject.kune.ipr
org.ourproject.kune.iws
nbproject
hibernate.reveng.xml
.gwt-tmp
target-eclipse
.checkstyle
.classpath-bien
pom.xml.*
.gwt
.jdee_sources
.jdee_classpath
prj.el
.factorypath
.apt_generated
target.old
_accounts
_certificates
_deltas
logs
+ pmd-eclipse.log
.pmd
www-test
screenlog.0
client
public
target
target-local
Main-compile
.settings
.gwt-cache
repository
derby.log
star-yellow-grey.png
run.sh
tomcat
gwt-out
synccss.sh
.externalToolBuilders
.wtpmodules
www
testRepository
kune-OLD-jcr
KuneApp.launch
KuneApp NOSERVER.launch
old_src
org.ourproject.kune.app.Kune
org.ourproject.kune.iml
org.ourproject.kune.ipr
org.ourproject.kune.iws
nbproject
hibernate.reveng.xml
.gwt-tmp
target-eclipse
.checkstyle
.classpath-bien
pom.xml.*
.gwt
.jdee_sources
.jdee_classpath
prj.el
.factorypath
.apt_generated
target.old
_accounts
_certificates
_deltas
logs
test-output
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-15 22:23:33 UTC (rev 1395)
+++ trunk/pom.xml 2011-06-01 19:01:44 UTC (rev 1396)
@@ -507,7 +507,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.8.1</version>
+ <version>4.8.2</version>
<!-- =roo -->
<scope>test</scope>
</dependency>
@@ -522,8 +522,12 @@
</exclusion>
</exclusions>
</dependency>
- <!-- <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId>
- <version>5.14</version> <scope>test</scope> </dependency> -->
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>6.0.1</version>
+ <scope>test</scope>
+ </dependency>
<!-- If you want to start a selenium server, you will need the following
dependency: -->
<!-- <dependency> -->
@@ -803,12 +807,21 @@
<!-- =roo + custom -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.8</version>
+ <version>2.8.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.surefire</groupId>
+ <artifactId>surefire-junit47</artifactId>
+ <version>2.8.1</version>
+ </dependency>
+ </dependencies>
<configuration>
<excludes>
<exclude>**/*_Roo_*</exclude>
</excludes>
<forkMode>pertest</forkMode>
+ <parallel>methods</parallel>
+ <threadCount>10</threadCount>
<property>
<name>junit</name>
<value>true</value>
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java 2011-05-15 22:23:33 UTC (rev 1395)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -30,8 +30,8 @@
import com.extjs.gxt.ui.client.widget.form.TextField;
public class SignInForm extends DefaultForm {
- public static final String NICKOREMAIL_FIELD = "kune-sif-nkf";
- public static final String PASSWORD_FIELD = "kune-sif-psf";
+ public static final String PASSWORD_FIELD_ID = "kune-sif-psf";
+ public static final String USER_FIELD_ID = "kune-sif-nkf";
private final TextField<String> loginNickOrEmailField;
private final TextField<String> loginPassField;
@@ -42,22 +42,22 @@
loginNickOrEmailField = new TextField<String>();
loginNickOrEmailField.setFieldLabel(i18n.t("Username"));
- loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
+ loginNickOrEmailField.setName(USER_FIELD_ID);
loginNickOrEmailField.setWidth(DEF_SMALL_FIELD_WIDTH);
loginNickOrEmailField.setAllowBlank(false);
loginNickOrEmailField.setValidationDelay(1000);
- loginNickOrEmailField.setId(NICKOREMAIL_FIELD);
+ loginNickOrEmailField.setId(USER_FIELD_ID);
loginNickOrEmailField.setTabIndex(100);
super.add(loginNickOrEmailField);
loginPassField = new TextField<String>();
loginPassField.setFieldLabel(i18n.t("Password"));
- loginPassField.setName(PASSWORD_FIELD);
+ loginPassField.setName(PASSWORD_FIELD_ID);
loginPassField.setWidth(DEF_MEDIUM_FIELD_WIDTH);
loginPassField.setPassword(true);
loginPassField.setAllowBlank(false);
loginPassField.setValidationDelay(1000);
- loginPassField.setId(PASSWORD_FIELD);
+ loginPassField.setId(PASSWORD_FIELD_ID);
loginPassField.setTabIndex(101);
loginPassField.addListener(Events.OnKeyPress, new Listener<FieldEvent>() {
@Override
Added: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,109 @@
+package cc.kune.selenium;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
+import org.testng.Assert;
+import org.testng.ITestContext;
+import org.testng.annotations.AfterSuite;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
+
+import cc.kune.selenium.login.LoginPageObject;
+import cc.kune.selenium.tools.GenericWebTester;
+import cc.kune.selenium.tools.SeleniumConstants;
+import cc.kune.selenium.tools.SeleniumModule;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+public class KuneSeleniumDefaults {
+ private static final Log LOG = LogFactory.getLog(KuneSeleniumDefaults.class);
+ public static boolean mustCloseFinally = true;
+
+ private final Injector injector;
+
+ protected LoginPageObject login;
+ protected GenericWebTester webtester;
+
+ public KuneSeleniumDefaults() {
+ injector = Guice.createInjector(new SeleniumModule());
+ webtester = injector.getInstance(GenericWebTester.class);
+ login = injector.getInstance(LoginPageObject.class);
+ final ElementLocatorFactory locator = injector.getInstance(ElementLocatorFactory.class);
+ PageFactory.initElements(locator, login);
+ }
+
+ @AfterSuite
+ public void closeBrowser() {
+ // We try to only open one window for all our selenium tests
+ if (mustCloseFinally) {
+ webtester.close();
+ }
+ }
+
+ @DataProvider(name = "correctlogin")
+ public Object[][] createCorrectLogin() {
+ // The default correct user/password used in tests
+ return new Object[][] { { SeleniumConstants.USERNAME, SeleniumConstants.PASSWD }, };
+ }
+
+ // public void moveMouseAt(final Point point) {
+ // webtester.moveMouseAt(point);
+ // }
+
+ @DataProvider(name = "incorrectlogin")
+ public Object[][] createIncorrectLogin() {
+ // Some pairs of user/passwd that must fail when try to login
+ return new Object[][] { { "test1@localhost", "test1blabla" }, { "test1", "test1" },
+ { "test1@localhost", "test" }, { "", "" } };
+ }
+
+ @BeforeMethod
+ public void setupSeleniumModule(final ITestContext context) {
+
+ // if (!Suco.getComponents().hasProvider(WebDriver.class)) {
+ // Suco.install(new SeleniumModule());
+ // }
+ if (webtester == null) {
+ // final ChromeDriver driver = new ChromeDriver();
+ // // final HtmlUnitDriver driver = new HtmlUnitDriver(true);
+ //
+ // // final ProfilesIni allProfiles = new ProfilesIni();
+ // // final FirefoxProfile profile =
+ // // allProfiles.getProfile(SeleniumConstants.FIREFOX_PROFILE_NAME);
+ // // final FirefoxDriver driver = new FirefoxDriver(profile);
+ //
+ // locator = new AjaxElementLocatorFactory(driver,
+ // SeleniumConstants.TIMEOUT);
+ // webtester = new GenericWebTester(driver,
+ // "http://kune.beta.iepala.es/ws/?locale=en#");
+ // // webtester = Suco.get(GenericWebTester.class);
+ // // login = Suco.get(LoginPageObject.class);
+ // login = new LoginPageObject();
+ // PageFactory.initElements(locator, login);
+ // driver.get("http://kune.beta.iepala.es/ws/?locale=en#");
+ // roster = Suco.get(RosterPageObject.class);
+ // openChat = Suco.get(OpenChatPageObject.class);
+ // search = Suco.get(SearchPageObject.class);
+ // chat = Suco.get(ChatPageObject.class);
+ // editBuddy = Suco.get(EditBuddyPageObject.class);
+ // groupChat = Suco.get(GroupChatPageObject.class);
+ // userPage = Suco.get(UserPageObject.class);
+ // otherVCardPage = Suco.get(OtherVCardPageObject.class);
+ // copyToClipboard = Suco.get(CopyToClipboardPageObject.class);
+ // openGroupChat = Suco.get(OpenGroupChatPageObject.class);
+ }
+ LOG.info("Going home");
+ webtester.home();
+ }
+
+ public void sleep(final int milliseconds) {
+ try {
+ Thread.sleep(milliseconds);
+ } catch (final InterruptedException e) {
+ Assert.fail("Exception in sleep method", e);
+ }
+ }
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,31 @@
+package cc.kune.selenium;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * Shared behaviour in selenium tests
+ */
+public abstract class KuneSeleniumTest extends KuneSeleniumDefaults {
+
+ protected String getTempString() {
+ final DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+ final String value = dateFormat.format(new Date());
+ return value;
+ }
+
+ protected void login() {
+ login("admin", "easyeasy");
+ }
+
+ protected void login(final String user, final String password) {
+ login.signIn(user, password);
+ login.assertIsConnectedAs(user);
+ }
+
+ protected void logout() {
+ login.logout();
+ }
+
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/KuneSeleniumTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/PageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/PageObject.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,129 @@
+package cc.kune.selenium;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.openqa.selenium.By;
+import org.openqa.selenium.NoSuchElementException;
+import org.openqa.selenium.RenderedWebElement;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ByIdOrName;
+import org.testng.Assert;
+
+import com.google.inject.Inject;
+
+public abstract class PageObject {
+ protected static final String GWTDEV = "gwt-debug-";
+ private static final Log LOG = LogFactory.getLog(PageObject.class.getName());
+ private static final long[] POLL_INTERVALS = { 10, 20, 30, 40, 50, 50, 50, 50, 100 };
+
+ @Inject
+ private WebDriver webdriver;
+
+ protected RenderedWebElement findElement(final By by) {
+ return (RenderedWebElement) getWebDriver().findElement(by);
+ }
+
+ private WebDriver getWebDriver() {
+ return webdriver;
+ }
+
+ public boolean isPresent(final RenderedWebElement element) {
+ // FIXME: find a better way to do this
+ try {
+ getWebDriver().findElement(By.id(element.getAttribute("id")));
+ return true;
+ } catch (final NoSuchElementException e) {
+ return false;
+ }
+ }
+
+ public void waitFor(final RenderedWebElement element) {
+ final String id = element.getAttribute("id");
+ LOG.info("WAIT FOR: " + id);
+ waitFor(id, new Runnable() {
+ @Override
+ public void run() {
+ Assert.assertTrue(element.isDisplayed());
+ }
+ });
+ }
+
+ /**
+ * Thanks to:
+ * http://groups.google.com/group/webdriver/browse_frm/thread/6e705242
+ * cc6d75ed/f5f8dca438397254?lnk=gst#f5f8dca438397254
+ *
+ * @param waitForWhat
+ * @param runnable
+ */
+ protected void waitFor(final String waitForWhat, final Runnable runnable) {
+ int i = 0;
+ boolean success = false;
+ final long timeout = System.currentTimeMillis() + 9000;
+ while (i < POLL_INTERVALS.length && !success) {
+ try {
+ runnable.run();
+ success = true;
+ } catch (final Throwable e) {
+ if (++i == POLL_INTERVALS.length) {
+ if (System.currentTimeMillis() > timeout) {
+ throw new RuntimeException("Timeout while waiting for " + waitForWhat, e); // NOPMD
+ // by
+ // vjrj
+ // on
+ // 16/05/11
+ // 13:05
+ } else {
+ --i;
+ }
+ }
+ try {
+ Thread.sleep(POLL_INTERVALS[i]);
+ } catch (final InterruptedException e2) {
+ Thread.currentThread().interrupt();
+ throw new RuntimeException("Got interrupted while waiting for " + waitForWhat, e2); // NOPMD
+ // by
+ // vjrj
+ // on
+ // 16/05/11
+ // 13:08
+ }
+ }
+ }
+ }
+
+ protected void waitFor(final WebElement element, final String text) {
+ LOG.info("WAIT FOR: " + text);
+ waitFor(text, new Runnable() {
+ @Override
+ public void run() {
+ final String elText = element.getText();
+ LOG.info("Element text: " + elText);
+ Assert.assertTrue(elText.contains(text));
+ }
+ });
+ }
+
+ protected void waitForId(final String id) {
+ LOG.info("WAIT FOR: " + id);
+ waitFor(id, new Runnable() {
+ @Override
+ public void run() {
+ Assert.assertTrue(((RenderedWebElement) getWebDriver().findElement(new ByIdOrName(id))).isDisplayed());
+ }
+ });
+ }
+
+ protected void waitForValue(final WebElement element, final String text) {
+ LOG.info("WAIT FOR: " + text);
+ waitFor(text, new Runnable() {
+ @Override
+ public void run() {
+ final String elValue = element.getValue();
+ LOG.info("Element value: " + elValue);
+ Assert.assertTrue(elValue.contains(text));
+ }
+ });
+ }
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/PageObject.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,76 @@
+package cc.kune.selenium.login;
+
+import org.openqa.selenium.RenderedWebElement;
+import org.openqa.selenium.support.FindBy;
+
+import cc.kune.core.client.auth.SignInForm;
+import cc.kune.core.client.auth.SignInPanel;
+import cc.kune.core.client.sitebar.SiteUserOptionsPresenter;
+import cc.kune.core.client.sitebar.SitebarSignInLink;
+import cc.kune.core.client.sitebar.SitebarSignOutLink;
+import cc.kune.selenium.PageObject;
+import cc.kune.selenium.tools.I18nHelper;
+import cc.kune.selenium.tools.SeleniumConstants;
+
+import com.calclab.hablar.login.client.LoginMessages;
+
+public class LoginPageObject extends PageObject {
+
+ @FindBy(id = GWTDEV + SignInPanel.SIGN_IN_BUTTON_ID)
+ private RenderedWebElement button;
+ private final I18nHelper i18n;
+ @FindBy(id = SignInForm.PASSWORD_FIELD_ID + "-input")
+ private RenderedWebElement passwd;
+ @FindBy(id = GWTDEV + SitebarSignInLink.SITE_SIGN_IN)
+ private RenderedWebElement signInLink;
+ @FindBy(id = GWTDEV + SitebarSignOutLink.SITE_SIGN_OUT)
+ private RenderedWebElement signOutLink;
+ @FindBy(id = SignInForm.USER_FIELD_ID + "-input")
+ private RenderedWebElement user;
+ @FindBy(id = GWTDEV + SiteUserOptionsPresenter.LOGGED_USER_MENU_ID)
+ private RenderedWebElement userMenu;
+
+ public LoginPageObject() {
+ i18n = new I18nHelper(LoginMessages.class);
+ }
+
+ public void assertIsConnectedAs(final String user) {
+ waitFor(userMenu, user);
+ }
+
+ public void assertIsDisconnected() {
+ try {
+ signOutLink.click();
+ } catch (final Exception e) {
+ }
+ waitFor(signInLink);
+ }
+
+ public RenderedWebElement getHeader() {
+ return signInLink;
+ }
+
+ public RenderedWebElement header() {
+ return getHeader();
+ }
+
+ public void logout() {
+ signOutLink.click();
+ assertIsDisconnected();
+ }
+
+ public void signIn(final String username, final String password) {
+ assertIsDisconnected();
+ signInLink.click();
+ user.clear();
+ passwd.clear();
+ user.sendKeys(username);
+ passwd.sendKeys(password);
+ button.click();
+ }
+
+ public void signInDefUser() {
+ signIn(SeleniumConstants.USERNAME, SeleniumConstants.PASSWD);
+ }
+
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,37 @@
+package cc.kune.selenium.login;
+
+import org.testng.annotations.Test;
+
+import cc.kune.selenium.KuneSeleniumTest;
+
+public class LoginSeleniumTests extends KuneSeleniumTest {
+
+ @Test(dataProvider = "correctlogin", enabled = false)
+ public void severalsSignInSingOut(final String user, final String passwd) {
+ login.assertIsDisconnected();
+ login.signIn(user, passwd);
+ login.assertIsConnectedAs(user);
+ login.logout();
+
+ login.assertIsDisconnected();
+ login.signIn(user, passwd);
+ login.assertIsConnectedAs(user);
+ login.logout();
+
+ login.assertIsDisconnected();
+ }
+
+ @Test(dataProvider = "correctlogin")
+ public void signIn(final String user, final String passwd) {
+ login.assertIsDisconnected();
+ login.signIn(user, passwd);
+ login.assertIsConnectedAs(user);
+ }
+
+ @Test
+ public void signInIncorrectPasswd() {
+ login.assertIsDisconnected();
+ login.signIn("nouser", "nopassword");
+ login.assertIsDisconnected();
+ }
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/testng.xml
===================================================================
--- trunk/src/test/java/cc/kune/selenium/testng.xml (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/testng.xml 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,8 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+<suite name="Kune" verbose="1">
+ <test name="Login">
+ <packages>
+ <package name="cc.kune.selenium.login" />
+ </packages>
+ </test>
+</suite>
Property changes on: trunk/src/test/java/cc/kune/selenium/testng.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/tools/AbstractWebTester.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/AbstractWebTester.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/tools/AbstractWebTester.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,52 @@
+package cc.kune.selenium.tools;
+
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+
+import com.google.gwt.user.client.ui.UIObject;
+
+public abstract class AbstractWebTester {
+ private final String baseUrl;
+ private final WebDriver driver;
+
+ // private final Selenium selenium;
+
+ public AbstractWebTester(final WebDriver driver, final String baseUrl) {
+ this.driver = driver;
+ this.baseUrl = baseUrl;
+
+ // selenium = new WebDriverBackedSelenium(driver, baseUrl);
+ // selenium.setTimeout("5000");
+ }
+
+ public void close() {
+ driver.close();
+ }
+
+ public WebElement getById(final String id) {
+ return driver.findElement(By.id(UIObject.DEBUG_ID_PREFIX + id));
+ }
+
+ public void home() {
+ assert baseUrl != null;
+ // selenium.open(baseUrl);
+ driver.get(baseUrl);
+ }
+ //
+ // public boolean isElementPresent(final String id) {
+ // return true;
+ // // return selenium.isElementPresent(id);
+ // }
+ //
+ // public boolean isTextPresent(final String text) {
+ // return true;
+ // // return selenium.isTextPresent(text);
+ // }
+ //
+ // public void moveMouseAt(final Point point) {
+ // // seenium.mouseMoveAt(String.valueOf(point.getX()),
+ // // String.valueOf(point.getY()));
+ // }
+
+}
\ No newline at end of file
Property changes on: trunk/src/test/java/cc/kune/selenium/tools/AbstractWebTester.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/tools/GenericWebTester.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/GenericWebTester.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/tools/GenericWebTester.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,14 @@
+package cc.kune.selenium.tools;
+
+import org.openqa.selenium.WebDriver;
+
+import com.google.inject.Inject;
+
+public class GenericWebTester extends AbstractWebTester {
+
+ @Inject
+ public GenericWebTester(final WebDriver driver) {
+ super(driver, "http://kune.beta.iepala.es/ws/?locale=en#");
+ }
+
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/tools/GenericWebTester.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/tools/I18nHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/I18nHelper.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/tools/I18nHelper.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,82 @@
+package cc.kune.selenium.tools;
+
+import java.lang.reflect.Method;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.google.gwt.i18n.client.Messages;
+import com.google.gwt.i18n.client.Messages.DefaultMessage;
+import com.google.gwt.i18n.client.Messages.PluralText;
+
+public class I18nHelper {
+
+ public static String get(final Class<? extends Messages> messageType, final String methodName,
+ final Object... params) {
+ try {
+ final Class<?>[] classes = new Class<?>[params.length];
+ for (int i = 0; i < params.length; i++) {
+ final Class<? extends Object> class1 = params[i].getClass();
+ classes[i] = class1 == Integer.class ? int.class : class1;
+ }
+ final Method method = messageType.getMethod(methodName, classes);
+ final String defaultValue = i18nDefaultValue(method, classes);
+ final String pluralOrDefValue = getPlural(method, getFirstInt(params), defaultValue);
+ return MessageFormat.format(pluralOrDefValue, params);
+ } catch (final Exception e) {
+ e.printStackTrace();
+ return "Error: Inexistent i18n String definition for method: " + methodName;
+ }
+ }
+
+ public static String get(final Class<? extends Messages> classToMock, final Method method, final Object[] arguments) {
+ return get(classToMock, method.getName(), arguments);
+ }
+
+ private static int getFirstInt(final Object[] params) {
+ for (final Object param : params) {
+ final Class<? extends Object> class1 = param.getClass();
+ if (class1 == Integer.class) {
+ return (Integer) param;
+ }
+ }
+ return 0;
+ }
+
+ private static String getPlural(final Method method, final int value, final String def) {
+ final PluralText pluralText = method.getAnnotation(PluralText.class);
+ if (pluralText != null) {
+ final Map<String, String> pluralMap = new HashMap<String, String>();
+ final String[] pluralForms = pluralText.value();
+ for (int i = 0; i + 1 < pluralForms.length; i += 2) {
+ pluralMap.put(pluralForms[i], pluralForms[i + 1]);
+ }
+ switch (value) {
+ case 0:
+ final String zero = pluralMap.get("none");
+ return zero == null ? def : zero;
+ case 1:
+ final String one = pluralMap.get("one");
+ return one == null ? def : one;
+ default:
+ final String other = pluralMap.get("other");
+ return other == null ? def : other;
+ }
+ }
+ return def;
+ }
+
+ private static String i18nDefaultValue(final Method method, final Class<?>... params) {
+ return method.getAnnotation(DefaultMessage.class).value();
+ }
+
+ private final Class<? extends Messages> messagesClass;
+
+ public I18nHelper(final Class<? extends Messages> messagesClass) {
+ this.messagesClass = messagesClass;
+ }
+
+ public String get(final String methodName, final Object... params) {
+ return get(messagesClass, methodName, params);
+ }
+}
\ No newline at end of file
Property changes on: trunk/src/test/java/cc/kune/selenium/tools/I18nHelper.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/tools/I18nHelperTest.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/I18nHelperTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/tools/I18nHelperTest.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,29 @@
+package cc.kune.selenium.tools;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+import com.calclab.hablar.login.client.LoginMessages;
+import com.calclab.hablar.search.client.SearchMessages;
+
+public class I18nHelperTest {
+
+ @Test
+ public void testOnePlural() {
+ assertEquals("Results for «test1»: One user found.", I18nHelper.get(SearchMessages.class, "searchResultsFor",
+ "test1", 1));
+ }
+
+ @Test
+ public void testSimpleArg() {
+ assertEquals("Connected as test1", I18nHelper.get(LoginMessages.class, "connectedAs", "test1"));
+ }
+
+ @Test
+ public void testSimpleSeveralArgs() {
+ assertEquals("Results for «test1»: 2 users found.", I18nHelper.get(SearchMessages.class, "searchResultsFor",
+ "test1", 2));
+ }
+
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/tools/I18nHelperTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/tools/Lorem.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/Lorem.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/tools/Lorem.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,11 @@
+package cc.kune.selenium.tools;
+
+public final class Lorem {
+
+ public static final String CHINESE = "吗 台湾 六种辅音韵尾 中国政府要求在中国出售的软件必须使用编码 过国标 名词的复数形式只在代词及多音节 台湾和港澳三地日益加深的经济联系 白话 如上面提到的 个例外可能是 个有意思的问题是中文数据的繁简体转换看 就有明显的区别 推广普通话的效率 虽然不同方言区的人们可能不能互相理解对方的语音 吗 另外, 汉语维基百科 公元前世纪到世纪随着中国大陆政治上的影响不断增加 韩语 上, 文言 新 唐朝和宋朝 历史书书经以及部分的易经 上古汉语存在于周朝前期和中期\n";
+
+ public static final String LATIN = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce leo felis, cursus eget, scelerisque adipiscing, fringilla vel, sem. Vestibulum semper tristique sem. Etiam quam neque, consectetuer at, fermentum id, vulputate non, leo. Ut condimentum, mauris et sollicitudin faucibus, lectus arcu facilisis mi, eu pretium arcu tortor quis sem. Pellentesque sit amet nulla ut tellus dapibus blandit. Donec eu dolor vitae mi scelerisque pretium. Donec sit amet nunc ut risus laoreet porta. Integer dictum mi at mauris. Vivamus vulputate, dolor quis pharetra interdum, augue nisi congue eros, a consectetuer libero mi ut quam. Fusce commodo sem blandit massa. Phasellus vehicula varius felis.\n";
+
+ private Lorem() {
+ }
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/tools/Lorem.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/tools/PageObjectModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/PageObjectModule.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/tools/PageObjectModule.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,15 @@
+package cc.kune.selenium.tools;
+
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
+
+import com.google.inject.AbstractModule;
+
+public abstract class PageObjectModule extends AbstractModule {
+ protected <T> void registerPageObject(final Class<T> componentType, final T object,
+ final ElementLocatorFactory locator) {
+ bind(componentType).toInstance(object);
+ PageFactory.initElements(locator, object);
+
+ }
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/tools/PageObjectModule.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,12 @@
+package cc.kune.selenium.tools;
+
+public final class SeleniumConstants {
+ public static final String FIREFOX_PROFILE_NAME = "selenium";
+ public static final String PASSWD = "easyeasy";
+ public static final int TIMEOUT = 15;
+ public static final String USERNAME = "admin";
+
+ SeleniumConstants() {
+ // Final class
+ }
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/src/test/java/cc/kune/selenium/tools/SeleniumModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/SeleniumModule.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/tools/SeleniumModule.java 2011-06-01 19:01:44 UTC (rev 1396)
@@ -0,0 +1,55 @@
+package cc.kune.selenium.tools;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.chrome.ChromeDriver;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.firefox.FirefoxProfile;
+import org.openqa.selenium.firefox.internal.ProfilesIni;
+import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
+import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
+
+import cc.kune.selenium.login.LoginPageObject;
+
+import com.google.inject.Singleton;
+
+public class SeleniumModule extends PageObjectModule {
+
+ public SeleniumModule() {
+ }
+
+ @Override
+ protected void configure() {
+
+ // bind(WebDriver.class).toInstance(creatFirefoxDriver());
+ final ChromeDriver driver = createChromeDriver();
+ bind(WebDriver.class).toInstance(driver);
+
+ bind(GenericWebTester.class).in(Singleton.class);
+
+ // "http://127.0.0.1:8888/ws/?locale=en&log_level=INFO&gwt.codesvr=127.0.0.1:99…");
+
+ bind(ElementLocatorFactory.class).toInstance(
+ new AjaxElementLocatorFactory(driver, SeleniumConstants.TIMEOUT));
+
+ // Page Objects here!
+ bind(LoginPageObject.class).in(Singleton.class);
+ }
+
+ private ChromeDriver createChromeDriver() {
+ final ChromeDriver driver = new ChromeDriver();
+ return driver;
+ }
+
+ @SuppressWarnings("unused")
+ private FirefoxDriver creatFirefoxDriver() {
+ // final FirefoxProfile profile = new FirefoxProfile();
+ // profile.setPreference("webdriver.firefox.profile",
+ // SeleniumConstants.FIREFOX_PROFILE_NAME);
+ // profile.setPreference("webdriver.firefox.useExisting",true);
+ final ProfilesIni allProfiles = new ProfilesIni();
+ final FirefoxProfile profile = allProfiles.getProfile(SeleniumConstants.FIREFOX_PROFILE_NAME);
+ // profile.setPreferences("foo.bar", 23);
+ final FirefoxDriver driver = new FirefoxDriver(profile);
+ return driver;
+ }
+}
Property changes on: trunk/src/test/java/cc/kune/selenium/tools/SeleniumModule.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
1
0