Author: ludovic
Date: 2007-09-11 00:28:30 +0200 (Tue, 11 Sep 2007)
New Revision: 4865

Modified:
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/Constants.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/Main.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/metadata/MetadataEdit.java
Log:
CURRIKI-866 Implemented initial GWT par of CRS

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/Constants.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/Constants.java
        2007-09-10 22:23:37 UTC (rev 4864)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/Constants.java
        2007-09-10 22:28:30 UTC (rev 4865)
@@ -197,4 +197,8 @@
     public static final int PROPOSE_DUPLICATE_TEMPLATE = 1;
     public static final int PROPOSE_DUPLICATE_EDIT = 2;
     public static final int DEFAULT_NB_VERSIONS = 0;
+
+    // CRS constants
+    public static final String CURRIKI_REVIEW_STATUS_CLASS = 
"CRS.CurrikiReviewStatusClass";
+    public static final String CURRIKI_REVIEW_CLASS = 
"CRS.CurrikiReviewStatusClass";
 }

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/Main.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/Main.java 
    2007-09-10 22:23:37 UTC (rev 4864)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/Main.java 
    2007-09-10 22:28:30 UTC (rev 4865)
@@ -483,4 +483,11 @@
         else
             return panel.getAbsoluteTop() + panel.getScrollPosition();
     }
+
+    /**
+     * Native method in JavaScript to access gwt:property
+     */
+    public static native String getProperty(String name) /*-{
+        return $wnd.__gwt_getMetaProperty(name);
+     }-*/;
 }

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/metadata/MetadataEdit.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/metadata/MetadataEdit.java
    2007-09-10 22:23:37 UTC (rev 4864)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/metadata/MetadataEdit.java
    2007-09-10 22:28:30 UTC (rev 4865)
@@ -25,30 +25,14 @@
 import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.WindowResizeListener;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.FormHandler;
-import com.google.gwt.user.client.ui.FormPanel;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.Hidden;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Hyperlink;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.MouseListener;
-import com.google.gwt.user.client.ui.Panel;
-import com.google.gwt.user.client.ui.PopupPanel;
-import com.google.gwt.user.client.ui.ScrollPanel;
-import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.*;
 import com.xpn.xwiki.gwt.api.client.DOMUtils;
 import com.xpn.xwiki.gwt.api.client.Document;
 import com.xpn.xwiki.gwt.api.client.User;
 import com.xpn.xwiki.gwt.api.client.XObject;
 import org.curriki.gwt.client.Constants;
 import org.curriki.gwt.client.Main;
+import org.curriki.gwt.client.editor.Editor;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -153,13 +137,11 @@
         hPanel.setCellWidth(hPanel.getWidget(1), "50%");
         panel.add(hPanel);
 
-
         addSectionTitle("general_information", fullMode);
         addEditor(assetObj, "keywords", "keywords", panel, false, fullMode);
         addEditor(assetObj, "language", "language", panel, false, fullMode);
-        // addEditor(assetObj, "review_status", "review_status");
+        addCRS(doc, panel, "private".equals(assetObj.get("rights")));
 
-
         addSectionTitle("educational_information", fullMode);
         addEditor(assetObj, Constants.ASSET_INSTRUCTIONAL_COMPONENT_PROPERTY, 
Constants.ASSET_INSTRUCTIONAL_COMPONENT_PROPERTY, panel, false, fullMode);
 
@@ -186,6 +168,72 @@
         }
     }
 
+    private void addCRS(Document doc, Panel panel, boolean isPrivate) {
+        XObject crsObj = doc.getObject(Constants.CURRIKI_REVIEW_STATUS_CLASS);
+        Integer reviewpending = (crsObj==null) ? null : (Integer) 
crsObj.get("reviewpending");
+        Object status = (crsObj==null) ? null : crsObj.get("status");
+        Object lastReviewDate = (crsObj==null) ? null : 
crsObj.getViewProperty("lastreview_date");
+        FlowPanel crsPanel = new FlowPanel();
+        crsPanel.setStyleName("crs_review");
+        HTMLPanel crsPanelTitle = new 
HTMLPanel(Main.getTranslation("curriki.crs.review"));
+        crsPanelTitle.setStyleName("crs_reviewtitle");
+        crsPanel.add(crsPanelTitle);
+        FlowPanel crsRatingPanel = new FlowPanel();
+        crsRatingPanel.setStyleName("crs_reviewrating");
+        if ((status==null)||(status.equals("0"))) {
+            HTMLPanel crsRatingTextPanel = new 
HTMLPanel(Main.getTranslation("curriki.crs.unrated"));
+            crsRatingTextPanel.setStyleName("crs_reviewratingtext");
+            crsRatingPanel.add(crsRatingTextPanel);
+        } else {
+            HTMLPanel crsRatingTextPanel = new 
HTMLPanel(Main.getTranslation("curriki.crs.rating"  + status));
+            crsRatingTextPanel.setStyleName("crs_reviewratingtext");
+            crsRatingPanel.add(crsRatingTextPanel);
+            if ((lastReviewDate!=null)&&(!lastReviewDate.equals(""))) {
+                HTMLPanel crsRatingDatePanel = new 
HTMLPanel(Main.getTranslation("curriki.crs.asof") + lastReviewDate);
+                crsRatingDatePanel.setStyleName("crs_reviewratingdate");
+                crsRatingPanel.add(crsRatingDatePanel);
+            }
+            Image crsRatingImage = new Image();
+            crsRatingImage.setStyleName("crs_reviewratingtext");
+            crsRatingPanel.add(crsRatingImage);
+        }
+        crsPanel.add(crsRatingPanel);
+        if (!"P".equals(status)&&!isPrivate) {
+            if ((reviewpending!=null)&&reviewpending.intValue()==1)  {
+                HTMLPanel crsReviewPendingPanel = new 
HTMLPanel(Main.getTranslation("curriki.crs.reviewpending"));
+                crsReviewPendingPanel.setStyleName("crs_reviewpending");
+                crsPanel.add(crsReviewPendingPanel);
+            } else {
+                Hyperlink crsReviewNominateLink = new Hyperlink();
+                
crsReviewNominateLink.setText(Main.getTranslation("curriki.crs.reviewnominate"));
+                crsReviewNominateLink.setStyleName("crs_reviewnominate");
+                crsReviewNominateLink.addClickListener(new ClickListener() {
+                    public void onClick(Widget widget) {
+                        Document currentAsset = 
Main.getSingleton().getEditor().getCurrentAsset();
+                        String url = 
Main.getTranslation("params.crs.nominateurl") + "?page=" + 
currentAsset.getFullName();
+                        Window.open(url, "_blank", "");
+                    }
+                });
+                crsPanel.add(crsReviewNominateLink);
+            }
+            // if the reviewer mode is set to one then we show the review link
+            if ("1".equals(Main.getProperty("reviewer"))) {
+                Hyperlink crsReviewReviewLink = new Hyperlink();
+                
crsReviewReviewLink.setText(Main.getTranslation("curriki.crs.reviewreview"));
+                crsReviewReviewLink.setStyleName("crs_reviewreview");
+                crsReviewReviewLink.addClickListener(new ClickListener() {
+                    public void onClick(Widget widget) {
+                        Document currentAsset = 
Main.getSingleton().getEditor().getCurrentAsset();
+                        String url = 
Main.getTranslation("params.crs.reviewurl") + "?page=" + 
currentAsset.getFullName();
+                        Window.open(url, "_blank", "");
+                    }
+                });
+                crsPanel.add(crsReviewReviewLink);
+            }
+        }
+        panel.add(crsPanel);
+    }
+
     public void addSectionTitle(String titleKey, boolean visible){
         Label label = new Label(Main.getTranslation("metadata." + titleKey));
         label.addStyleName("curriki-title");

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to