/v3.2/nimbits-tds/src/com/nimbits/client/panels/UserListPanel.java
http://nimbits-server.googlecode.com/ · Java · 233 lines · 114 code · 60 blank · 59 comment · 1 complexity · ca5318063284bda441fa13d87164db54 MD5 · raw file
- /*
- * Copyright (c) 2010 Tonic Solutions LLC.
- *
- * http://www.nimbits.com
- *
- *
- * Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.gnu.org/licenses/gpl.html
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- */
- package com.nimbits.client.panels;
- import com.extjs.gxt.ui.client.event.Events;
- import com.extjs.gxt.ui.client.event.Listener;
- import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
- import com.extjs.gxt.ui.client.store.ListStore;
- import com.extjs.gxt.ui.client.util.Format;
- import com.extjs.gxt.ui.client.widget.ContentPanel;
- import com.extjs.gxt.ui.client.widget.ListView;
- import com.extjs.gxt.ui.client.widget.layout.FillLayout;
- import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
- import com.google.gwt.core.client.GWT;
- import com.google.gwt.user.client.Element;
- import com.google.gwt.user.client.rpc.AsyncCallback;
- import com.nimbits.client.exception.NimbitsException;
- import com.nimbits.client.model.Const;
- import com.nimbits.client.model.GxtUserModel;
- import com.nimbits.client.model.category.Category;
- import com.nimbits.client.model.diagram.Diagram;
- import com.nimbits.client.model.email.EmailAddress;
- import com.nimbits.client.model.point.Point;
- import com.nimbits.client.model.user.User;
- import com.nimbits.client.service.user.UserService;
- import com.nimbits.client.service.user.UserServiceAsync;
- import java.util.List;
- class UserListPanel extends NavigationEventProvider {
- private final UserServiceAsync userService = GWT.create(UserService.class);
- // private NavigationPanel navTree;// = new NavTree();
- private final EmailAddress email;
- public UserListPanel(EmailAddress email) {
- setLayout(new FlowLayout(10));
- this.email = email;
- }
- @Override
- protected void onRender(Element parent, int index) {
- super.onRender(parent, index);
- final ListStore<GxtUserModel> store = new ListStore<GxtUserModel>();
- userService.getConnections(email, new AsyncCallback<List<User>>() {
- @Override
- public void onFailure(Throwable caught) {
- }
- @Override
- public void onSuccess(List<User> result) {
- for (User n : result) {
- store.add(new GxtUserModel(n));
- }
- }
- });
- final ContentPanel panel = new ContentPanel();
- panel.setCollapsible(false);
- panel.setAnimCollapse(false);
- panel.setFrame(false);
- panel.setHeaderVisible(false);
- panel.setBorders(false);
- panel.setId("images-view");
- // panel.setWidth(535);
- panel.setAutoHeight(true);
- panel.setBodyBorder(false);
- ListView<GxtUserModel> view = new ListView<GxtUserModel>() {
- @Override
- protected GxtUserModel prepareData(GxtUserModel model) {
- String s = model.get(Const.PARAM_NAME);
- model.set("shortName", Format.ellipse(s, 15));
- model.set(Const.PARAM_PATH, model.get(Const.PARAM_PATH));
- return model;
- }
- };
- view.setTemplate(getTemplate());
- view.setBorders(false);
- view.setStore(store);
- view.setItemSelector("div.thumb-wrap");
- view.setWidth(100);
- view.getSelectionModel().addListener(Events.SelectionChange,
- new Listener<SelectionChangedEvent<GxtUserModel>>() {
- public void handleEvent(SelectionChangedEvent<GxtUserModel> be) {
- final NavigationPanel navigationPanel = createNavigationPanel(be.getSelectedItem().getEmail());
- navigationPanel.setLayout(new FillLayout());
- // initTree(true);
- //navigationPanel.setHeight(400);
- panel.removeAll();
- panel.add(navigationPanel);
- panel.setHeight("100%");
- // panel.setHeight(800);
- // panel.setHeaderVisible(true);
- // panel.setHeading(be.getSelectedItem().getValue());
- doLayout();
- }
- });
- panel.add(view);
- add(panel);
- }
- final NavigationPanel createNavigationPanel(final EmailAddress selectedEmail) {
- final NavigationPanel navTree = new NavigationPanel(selectedEmail, true);
- // navTree.loadAuthTree();
- navTree.addCategoryClickedListeners(new NavigationEventProvider.CategoryClickedListener() {
- @Override
- public void onCategoryClicked(final Category c, boolean readOnly) throws NimbitsException {
- notifyCategoryClickedListener(c, readOnly);
- }
- });
- navTree.addPointClickedListeners(new NavigationEventProvider.PointClickedListener() {
- @Override
- public void onPointClicked(final Point p) {
- notifyPointClickedListener(p);
- }
- });
- navTree.addDiagramClickedListeners(new NavigationEventProvider.DiagramClickedListener() {
- @Override
- public void onDiagramClicked(final Diagram p) {
- notifyDiagramClickedListener(p);
- }
- });
- navTree.addDiagramDeletedListeners(new NavigationEventProvider.DiagramDeletedListener() {
- @Override
- public void onDiagramDeleted(final Diagram c, final boolean readOnly) throws NimbitsException {
- notifyDiagramDeletedListener(c, readOnly);
- }
- });
- return navTree;
- }
- // private NavigationPanel createTree() {
- // final NavigationPanel navTree = new NavigationPanel(anEmailAddress, true);
- // navTree.addCategoryClickedListeners(new CategoryClickedListener() {
- // @Override
- // public void onCategoryClicked(final Category c, final boolean readOnly) throws NimbitsException {
- // notifyCategoryClickedListener(c, readOnly);
- // }
- //
- // });
- //
- // navTree.addPointClickedListeners(new PointClickedListener() {
- //
- // @Override
- // public void onPointClicked(final Point p) {
- //
- // notifyPointClickedListener(p);
- // }
- //
- // });
- // navTree.addDiagramClickedListeners(new NavigationEventProvider.DiagramClickedListener() {
- //
- // @Override
- // public void onDiagramClicked(Diagram p, String target) {
- //
- // notifyDiagramClickedListener(p, Const.WORD_BLANK);
- // }
- //
- // });
- // return navTree;
- //
- // }
- private native String getTemplate() /*-{
- return ['<tpl for=".">',
- '<div class="thumb-wrap" id="{name}" style="border: 0px solid white">',
- '<div class="thumb"><img border="0px" src="{path}" title="{name}"></div>',
- '<span class="x-editable">{shortName}</span></div>',
- '</tpl>',
- '<div class="x-clear"></div>'].join("");
- }-*/;
- }