diff --git a/.classpath b/.classpath
index 1a0e679..01af6fd 100644
--- a/.classpath
+++ b/.classpath
@@ -23,7 +23,6 @@
-
diff --git a/src/main/java/org/gcube/portlets/widgets/pickitem/client/PickItem.java b/src/main/java/org/gcube/portlets/widgets/pickitem/client/PickItem.java
index d1bc5cb..61f052e 100644
--- a/src/main/java/org/gcube/portlets/widgets/pickitem/client/PickItem.java
+++ b/src/main/java/org/gcube/portlets/widgets/pickitem/client/PickItem.java
@@ -48,7 +48,7 @@ public class PickItem implements EntryPoint {
final TextBox tb = new TextBox();
final int popUpY = tb.getAbsoluteTop()+30;
- final PickItemsDialog pickUserDlg = new PickItemsDialog('#', users, eventbus, 300);
+ final PickItemsDialog pickUserDlg = new PickItemsDialog('#', users, eventbus, 300, true);
tb.addKeyUpHandler(new KeyUpHandler() {
@Override
public void onKeyUp(KeyUpEvent event) {
diff --git a/src/main/java/org/gcube/portlets/widgets/pickitem/client/bundle/PickItem.css b/src/main/java/org/gcube/portlets/widgets/pickitem/client/bundle/PickItem.css
index b54d961..1a9f02b 100644
--- a/src/main/java/org/gcube/portlets/widgets/pickitem/client/bundle/PickItem.css
+++ b/src/main/java/org/gcube/portlets/widgets/pickitem/client/bundle/PickItem.css
@@ -1,4 +1,4 @@
-@external pickDialog, pick-label, pickperson, pickperson-selected, pickperson-photo, user-table, user-table-row, user-table-col, user-table-col.content, .user-table-col.smallphoto, user-token, content, smallphoto;
+@external pick-item, pickDialog, pick-label, pickperson, pickperson-selected, pickperson-photo, user-table, user-table-row, user-table-col, user-table-col.content, .user-table-col.smallphoto, user-token, content, smallphoto;
.pickDialog {
border: 1px solid #333;
@@ -12,6 +12,13 @@
color: inherit;
}
+.pick-item {
+ font-family: 'Helvetica Neue', Arial, sans-serif;
+ font-size: 13px;
+ color: inherit;
+ padding: 0 4px;
+}
+
.pickperson {
color: #0B61A4;
diff --git a/src/main/java/org/gcube/portlets/widgets/pickitem/client/dialog/PickItemsDialog.java b/src/main/java/org/gcube/portlets/widgets/pickitem/client/dialog/PickItemsDialog.java
index 1957c65..3f7b36d 100644
--- a/src/main/java/org/gcube/portlets/widgets/pickitem/client/dialog/PickItemsDialog.java
+++ b/src/main/java/org/gcube/portlets/widgets/pickitem/client/dialog/PickItemsDialog.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import org.gcube.portlets.widgets.pickitem.client.bundle.CssAndImages;
import org.gcube.portlets.widgets.pickitem.client.events.PickedItemEvent;
+import org.gcube.portlets.widgets.pickitem.client.uibinder.NoPhotoTemplate;
import org.gcube.portlets.widgets.pickitem.client.uibinder.SelectableItem;
import org.gcube.portlets.widgets.pickitem.client.uibinder.WithPhotoTemplate;
import org.gcube.portlets.widgets.pickitem.shared.ItemBean;
@@ -59,6 +60,7 @@ public class PickItemsDialog extends PopupPanel {
//needed because is selected when it popups
private Widget first;
+ private boolean hasPhoto;
static {
CssAndImages.INSTANCE.css().ensureInjected();
@@ -68,14 +70,16 @@ public class PickItemsDialog extends PopupPanel {
* @param the list of user to pick
* @param eventBus the event bus on where the widget will fire the selected user event
* @param widthInPixel the desired width (grater than 199 pixel)
+ * @param hasPhoto tell of you have want to show photo for the item or not
*/
- public PickItemsDialog(char triggerChar, ArrayList users, final HandlerManager eventBus, int widthInPixel) {
+ public PickItemsDialog(char triggerChar, ArrayList users, final HandlerManager eventBus, int widthInPixel, boolean hasPhoto) {
super(true, false);
if (widthInPixel < 200) {
throw new IllegalArgumentException("width must be greater than 199");
}
this.eventBus = eventBus;
this.triggerChar = ""+triggerChar;
+ this.hasPhoto = hasPhoto;
this.users = users;
focusPanel.setWidth(widthInPixel+"px");
mainPanel.setWidth(widthInPixel+"px");
@@ -192,12 +196,12 @@ public class PickItemsDialog extends PopupPanel {
int i = 0;
for (Suggestion s : response.getSuggestions()) {
if (i == 0) {
- first = getUserTemplate(getUserModelBySuggestion(s), i);
+ first = getUserTemplate(getUserModelBySuggestion(s), i, hasPhoto);
first.addStyleName("pickperson-selected");
mainPanel.add(first);
}
else
- mainPanel.add(getUserTemplate(getUserModelBySuggestion(s), i));
+ mainPanel.add(getUserTemplate(getUserModelBySuggestion(s), i, hasPhoto));
i++;
}
if (i > 0) {
@@ -216,8 +220,10 @@ public class PickItemsDialog extends PopupPanel {
return new ItemBean("no-match","no-match","no-match","no-match");
}
- private WithPhotoTemplate getUserTemplate(ItemBean user, int displayIndex) {
- return new WithPhotoTemplate(this, user, displayIndex);
+ private Widget getUserTemplate(ItemBean user, int displayIndex, boolean hasPhoto) {
+ if (hasPhoto)
+ return new WithPhotoTemplate(this, user, displayIndex);
+ return new NoPhotoTemplate(this, user, displayIndex);
}
/**
diff --git a/src/main/java/org/gcube/portlets/widgets/pickitem/client/uibinder/NoPhotoTemplate.java b/src/main/java/org/gcube/portlets/widgets/pickitem/client/uibinder/NoPhotoTemplate.java
new file mode 100644
index 0000000..c04313f
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/widgets/pickitem/client/uibinder/NoPhotoTemplate.java
@@ -0,0 +1,52 @@
+package org.gcube.portlets.widgets.pickitem.client.uibinder;
+
+import org.gcube.portlets.widgets.pickitem.client.dialog.PickItemsDialog;
+import org.gcube.portlets.widgets.pickitem.shared.ItemBean;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.MouseOverEvent;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FocusPanel;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.Widget;
+
+public class NoPhotoTemplate extends Composite implements SelectableItem {
+
+ private static NoPhotoTemplateUiBinder uiBinder = GWT
+ .create(NoPhotoTemplateUiBinder.class);
+
+ interface NoPhotoTemplateUiBinder extends UiBinder {
+ }
+
+ PickItemsDialog owner;
+ private int currDisplayIndex;
+
+ @UiField
+ FocusPanel focusDiv;
+ @UiField
+ HTML contentArea;
+
+ public NoPhotoTemplate(PickItemsDialog owner, ItemBean user, int displayIndex) {
+ initWidget(uiBinder.createAndBindUi(this));
+ this.owner = owner;
+ currDisplayIndex = displayIndex;
+ contentArea.setHTML(user.getAlternativeName());
+
+
+ }
+
+ @UiHandler("focusDiv")
+ void onMouseOver(MouseOverEvent e) {
+ owner.select(currDisplayIndex);
+ }
+
+ @Override
+ public String getItemName() {
+ return contentArea.getText();
+ }
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/widgets/pickitem/client/uibinder/NoPhotoTemplate.ui.xml b/src/main/java/org/gcube/portlets/widgets/pickitem/client/uibinder/NoPhotoTemplate.ui.xml
new file mode 100644
index 0000000..53849c6
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/widgets/pickitem/client/uibinder/NoPhotoTemplate.ui.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
\ No newline at end of file