finished up switch to CLI
114 files changed, 1192 lines added, 1016 lines removed
Changes
--- Collective Congress/src/org/colcon/web/client/ui/HeaderPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/HeaderPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,10 +1,8 @@
-import org.colcon.web.client.ui.link.AccountLink;
-import org.colcon.web.client.ui.link.NewsLink;
@@ -22,9 +20,6 @@
- //headerPanel.add(new NewsLink(client));
- //headerPanel.add(new GroupsLink(client));
- //headerPanel.add(new UsersLink(client));
@@ -33,7 +28,7 @@
- userPanel.add(new AccountLink(client));
+ userPanel.add(new LinkPanel(client, "user-item", client.getUser().getPath()));
--- Collective Congress/src/org/colcon/web/client/ui/ItemPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/ItemPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -3,6 +3,8 @@
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HorizontalPanel;
@@ -15,7 +17,21 @@
- add(new LinkPanel(client, "item-title", item.getPath()));
+ HorizontalPanel header = new HorizontalPanel();
+ HorizontalPanel headerRight = new HorizontalPanel();
+
+ header.setWidth("100%");+ headerRight.setWidth("100%");+
+ headerRight.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
+
+ header.add(new LinkPanel(client, "link-title", item.getPath()));
+
+ if(!item.isRoot())
+ headerRight.add(new LinkPanel(client, "link-parent", item.getParentPath()));
+
+ header.add(headerRight);
+ add(header);
--- Collective Congress/src/org/colcon/web/client/ui/LinkPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/LinkPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -2,8 +2,11 @@
+import org.colcon.web.client.ui.panel.UserPanel;
+import org.colcon.web.model.Model;
+import org.colcon.web.model.framework.IUser;
@@ -19,7 +22,12 @@
- super(client, style, Item.getId(path));
+ this(client, style, Model.parseId(path), path);
+ }
+
+ public LinkPanel(Collective_Congress client, String style, String text, String path)
+ {+ super(client, style, text);
@@ -55,10 +63,16 @@
+ ItemPanel panel;
+
- getBodyPanel().add(new ContainerPanel(getClient(), (IContainer) item));
+ panel = new ContainerPanel(getClient(), (IContainer) item);
+ else if(item instanceof IUser)
+ panel = new UserPanel(getClient(), (IUser) item);
- getBodyPanel().add(new ItemPanel(getClient(), item));
+ panel = new ItemPanel(getClient(), item);
+
+ getBodyPanel().add(panel);
--- Collective Congress/src/org/colcon/web/client/ui/deprecated 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,18 @@
+100644 blob c9bfb2562976a4ea32eebfc005a8a22b28ca1127 AccountLink.java
+100644 blob e1c437dd95f3a19c6d13d72094277a76eaf54294 CreateGroupPanel.java
+100644 blob e0d02b82c6d47ffd5cec7734def147e70eb4e75e ElectionPanel.java
+100644 blob 64e23379a11e2a91ed19394c1c9201cdedf0dd9b GroupInfoPanel.java
+100644 blob 362557decd1093a77e1fb78d8c2d57e759742b0f GroupsLink.java
+100644 blob e8906e9cfdbfdd6c61c00bd5c25d358ed4984dde InfoNamePanel.java
+100644 blob 04a8bb78c5d757355180233af2db48d2623f4783 InfoPanel.java
+100644 blob 0d9694ce7040713608dd376fb998300a8c43584d NamePanel.java
+100644 blob 6f352e4a162e9be92490cd6f691ce3fc183b035e NamedItemListPanel.java
+100644 blob 629b8eb31adc5b4acb7a237a2055565d56ce96b5 NamedItemPanel.java
+100644 blob 508920e561c33556946098fb344a7d2d3a29e203 NewsLink.java
+100644 blob 4ff7a316fa6385f8808bedc299c213b0954c5631 NewsListPanel.java
+100644 blob a9198e34d9ddda3b8658567347592d2a1a538767 PowerInfoPanel.java
+100644 blob 9edf56c05cac25d9049c7aeb155760c6f1819ea6 PowerNamePanel.java
+100644 blob 673432f89f75b72f176cfd9e49432ba6e6d17a45 TitleInfoPanel.java
+100644 blob b3e9584be3354c28131dc711409bc1e323d58ea4 TitleNamePanel.java
+100644 blob 2d84bc2c2021345896546bfb420eafe74467816b UserInfoPanel.java
+100644 blob 342c0acbdeafecdaeb8b8c5c591eb7181cd4dacc UsersLink.java
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/AccountLink.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/AccountLink.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,40 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ClickablePanel;
+import org.colcon.web.model.User;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Label;
+
+public class AccountLink extends ClickablePanel
+{+ public AccountLink(Collective_Congress client)
+ {+ super(client, "user-item", client.getUser().getId());
+ }
+
+ public void click()
+ {+ getBodyPanel().clear();
+ getBodyPanel().add(new Label("Loading..."));+
+ getService().getUser(getClient().getUser().getId(), new AsyncCallback<User>()
+ {+ public void onFailure(Throwable caught)
+ {+ System.err.println("Failed to refresh user " + getClient().getUser().getId());+ getClient().logout();
+ getClient().refresh();
+ }
+
+ public void onSuccess(User user)
+ {+ getClient().login(user);
+ getBodyPanel().clear();
+ UserInfoPanel panel = new UserInfoPanel(getClient(), getClient().getUser());
+ getBodyPanel().add(panel);
+ }
+ });
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/CreateGroupPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/CreateGroupPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,125 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ColConPanel;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.dom.client.KeyPressEvent;
+import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class CreateGroupPanel extends ColConPanel
+{+ private VerticalPanel panel = new VerticalPanel();
+
+ private Grid grid = new Grid(3, 2);
+
+ private Label nameLabel = new Label("Name:");+ private TextBox nameBox = new TextBox();
+ private Label charterLabel = new Label("Charter:");+ private TextArea charterBox = new TextArea();
+ private Button button = new Button("Create Group");+
+ public CreateGroupPanel(Collective_Congress client)
+ {+ super(client, null, null);
+
+ setStyleName("register");+
+ panel.setWidth("100%");+ panel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+
+ button.addClickHandler(new MyButtonHandler());
+
+ sinkEvents(Event.ONKEYPRESS);
+ addHandler(new MyEnterHandler(), KeyPressEvent.getType());
+
+ grid.setWidget(0, 0, nameLabel);
+ grid.setWidget(0, 1, nameBox);
+ grid.setWidget(1, 0, charterLabel);
+ grid.setWidget(1, 1, charterBox);
+ grid.setWidget(2, 1, button);
+
+ panel.add(grid);
+ add(panel);
+
+ setFocus(nameBox);
+ }
+
+ private class MyButtonHandler implements ClickHandler
+ {+ public void onClick(ClickEvent event)
+ {+ buttonClick();
+ }
+ }
+
+ private class MyEnterHandler implements KeyPressHandler
+ {+ public void onKeyPress(KeyPressEvent event)
+ {+ if(event.getCharCode() == KeyCodes.KEY_ENTER)
+ buttonClick();
+ }
+ }
+
+ public void buttonClick()
+ {+ if(!validate())
+ {+ panel.clear();
+ panel.add(grid);
+ panel.add(new HTML("Invalid input"));+ return;
+ }
+
+ panel.clear();
+ panel.add(new HTML("Loading..."));+
+ getService().addGroup(nameBox.getText(), charterBox.getText(), new AsyncCallback<Boolean>()
+ {+ public void onFailure(Throwable caught)
+ {+ caught.printStackTrace();
+
+ panel.clear();
+ panel.add(grid);
+ panel.add(new HTML(caught.getMessage()));
+ }
+
+ public void onSuccess(Boolean result)
+ {+ panel.clear();
+
+ if(result)
+ {+ panel.add(new HTML("Group creation successful"));+ }
+ else
+ {+ panel.add(grid);
+ panel.add(new HTML("Name already taken"));+ }
+ }
+ });
+ }
+
+ private boolean validate()
+ {+ return
+ !(
+ nameBox.getText().isEmpty() ||
+ charterBox.getText().isEmpty()
+ );
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/ElectionPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/ElectionPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,144 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.model.Ballot;
+import org.colcon.web.model.framework.IUser;
+import org.colcon.web.model.framework.IVote;
+import org.colcon.web.model.vote.ElectionVote;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.dom.client.KeyPressEvent;
+import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.RadioButton;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class ElectionPanel extends InfoPanel
+{+ private VerticalPanel panel;
+ private RadioButton[] radioButtons;
+ private IUser[] candidates;
+
+ public ElectionPanel(Collective_Congress client, IVote vote)
+ {+ super(client, vote);
+ }
+
+ public void init()
+ {+ super.init();
+
+ IVote vote = getVote();
+
+ sinkEvents(Event.ONKEYPRESS);
+ addHandler(new MyEnterHandler(), KeyPressEvent.getType());
+
+ panel = new VerticalPanel();
+
+ if(!vote.isEligible(getClient().getUser()))
+ {+ panel.clear();
+ panel.add(new Label("You are not eligible for this vote or have already voted"));+ add(panel);
+ return;
+ }
+
+ ElectionVote election = (ElectionVote) vote;
+
+ candidates = election.getCandidates();
+ radioButtons = new RadioButton[candidates.length];
+
+ for(int i = 0; i < candidates.length; i++)
+ {+ String username = candidates[i].getId();
+ int votes = election.getVotes(username);
+ if(votes > 0)
+ add(new Label(username + ": " + votes));
+ }
+
+ for(int i = 0; i < candidates.length; i++)
+ {+ radioButtons[i] = new RadioButton("buttonGroup", candidates[i].getId());+ panel.add(radioButtons[i]);
+ }
+
+ Button button = new Button("Submit Vote");+ button.addClickHandler(new MyButtonHandler());
+ panel.add(button);
+
+ add(panel);
+ }
+
+ public IVote getVote()
+ {+ return (IVote) getItem();
+ }
+
+ private class MyButtonHandler implements ClickHandler
+ {+ public void onClick(ClickEvent event)
+ {+ buttonClick();
+ }
+ }
+
+ private class MyEnterHandler implements KeyPressHandler
+ {+ public void onKeyPress(KeyPressEvent event)
+ {+ if(event.getCharCode() == KeyCodes.KEY_ENTER)
+ buttonClick();
+ }
+ }
+
+ public void buttonClick()
+ {+ String user = getClient().getUser().getId();
+
+ if(getVoteValue() == null)
+ {+ init();
+ panel.add(new HTML("Invalid vote value"));+ return;
+ }
+
+ getService().submitVote(getVote().getPath(), user, getVoteValue(), new AsyncCallback<Ballot>()
+ {+ public void onFailure(Throwable caught)
+ {+ panel.clear();
+ caught.printStackTrace();
+ panel.add(new HTML(caught.getMessage()));
+ }
+
+ public void onSuccess(Ballot ballot)
+ {+ if(ballot != null)
+ {+ panel.clear();
+ panel.add(new HTML("Vote successful"));+ }
+ else
+ {+ panel.clear();
+ panel.add(new HTML("Vote failed"));+ }
+ }
+ });
+ }
+
+ public String getVoteValue()
+ {+ for(int i = 0; i < radioButtons.length; i++)
+ if(radioButtons[i].getValue())
+ return candidates[i].getId();
+
+ return null;
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/GroupInfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/GroupInfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,86 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.model.framework.IGroup;
+import org.colcon.web.model.framework.IProposal;
+import org.colcon.web.model.framework.ITitle;
+import org.colcon.web.model.framework.IVote;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.Label;
+
+public class GroupInfoPanel extends InfoPanel
+{+ public GroupInfoPanel(Collective_Congress client, IGroup group)
+ {+ super(client, group);
+
+ if(!group.hasMember(getClient().getUser().getId()))
+ {+ Button joinButton = new Button("Join this group");+ joinButton.addClickHandler(new MyButtonHandler());
+ add(joinButton);
+ }
+
+ add(new Label("Members"));+ for(String user : group.getMembers())
+ add(new NamePanel(client, user));
+
+ add(new Label("Titles"));+ for(ITitle title : group.getTitles())
+ add(new NamePanel(client, title.getPath()));
+
+ add(new Label("Proposals"));+ for(IProposal proposal : group.getProposals())
+ add(new NamePanel(client, proposal.getPath()));
+
+ add(new Label("Votes"));+ for(IVote vote : group.getVotes())
+ add(new NamePanel(client, vote.getPath()));
+ }
+
+ public IGroup getGroup()
+ {+ return (IGroup) getItem();
+ }
+
+ private class MyButtonHandler implements ClickHandler
+ {+ public void onClick(ClickEvent event)
+ {+ joinGroup();
+ }
+ }
+
+ public void joinGroup()
+ {+ getService().addMember(getGroup().getId(), getClient().getUser().getId(), new AsyncCallback<Boolean>()
+ {+ public void onFailure(Throwable caught)
+ {+ caught.printStackTrace();
+ }
+
+ public void onSuccess(Boolean result)
+ {+ if(result)
+ {+ getBodyPanel().clear();
+ Label label = new Label("Group joined successfully");+ label.setStyleName("item");+ getBodyPanel().add(label);
+ }
+ else
+ {+ getBodyPanel().clear();
+ Label label = new Label("GFailed to join group");+ label.setStyleName("item");+ getBodyPanel().add(label);
+ }
+ }
+ });
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/GroupsLink.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/GroupsLink.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,41 @@
+package org.colcon.web.client.ui.deprecated;
+
+import java.util.List;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ClickablePanel;
+import org.colcon.web.model.Group;
+import org.colcon.web.model.framework.IItem;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.HTML;
+
+public class GroupsLink extends ClickablePanel
+{+ public GroupsLink(Collective_Congress client)
+ {+ super(client, "header-item", "groups");
+ }
+
+ public void click()
+ {+ getBodyPanel().clear();
+ getBodyPanel().add(new HTML("Loading..."));+
+ getService().getGroups(new AsyncCallback<List<Group>>()
+ {+ public void onFailure(Throwable caught)
+ {+ getBodyPanel().clear();
+ caught.printStackTrace();
+ getBodyPanel().add(new HTML(caught.getMessage()));
+ }
+
+ public void onSuccess(List<Group> groups)
+ {+ getBodyPanel().clear();
+ getBodyPanel().add(new NamedItemListPanel(getClient(), groups.toArray(new IItem[0])));
+ }
+ });
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/InfoNamePanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/InfoNamePanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,14 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+
+public class InfoNamePanel extends NamePanel
+{+ public InfoNamePanel(Collective_Congress client, String item)
+ {+ super(client, item);
+ }
+
+ // using this class disables info panel refreshing
+ public void click() {};+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/InfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/InfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,47 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ColConPanel;
+import org.colcon.web.model.framework.IItem;
+
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+
+public class InfoPanel extends ColConPanel
+{+ private IItem item;
+
+ public InfoPanel(Collective_Congress client, IItem item)
+ {+ super(client, "info", null);
+
+ this.item = item;
+
+ init();
+ }
+
+ public void init()
+ {+ clear();
+
+ add(getHeader());
+
+ add(new Label(item.getText()));
+ }
+
+ public HorizontalPanel getHeader()
+ {+ HorizontalPanel header = new HorizontalPanel();
+
+ NamePanel title = new InfoNamePanel(getClient(), item.getId());
+ title.setStyleName("info-title");+ header.add(title);
+
+ return header;
+ }
+
+ public IItem getItem()
+ {+ return item;
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/NamePanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/NamePanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,93 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ClickablePanel;
+import org.colcon.web.client.ui.panel.LoginPanel;
+import org.colcon.web.model.Item;
+import org.colcon.web.model.framework.IGroup;
+import org.colcon.web.model.framework.IItem;
+import org.colcon.web.model.framework.ITitle;
+import org.colcon.web.model.framework.IUser;
+import org.colcon.web.model.framework.IVote;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Label;
+
+public class NamePanel extends ClickablePanel
+{+ private String item;
+
+ public NamePanel(Collective_Congress client, String item)
+ {+ this(client, item, item);
+ }
+
+ public NamePanel(Collective_Congress client, String item, String text)
+ {+ super(client, "name", text);
+
+ this.item = item;
+ }
+
+ public String getItem()
+ {+ return item;
+ }
+
+ public void click()
+ {+ getBodyPanel().clear();
+
+ if(!getClient().loggedIn())
+ {+ getBodyPanel().add(new LoginPanel(getClient()));
+ return;
+ }
+
+ getBodyPanel().add(new Label("Loading..."));+
+ getService().get(item, new AsyncCallback<Item>()
+ {+ public void onFailure(Throwable caught)
+ {+ getBodyPanel().clear();
+ getBodyPanel().add(new Label("failed to get item " + item));+ }
+
+ public void onSuccess(Item item)
+ {+ getBodyPanel().clear();
+
+ if(item != null)
+ {+ getBodyPanel().add(getInfoPanel(item));
+ }
+ else
+ {+ getBodyPanel().add(new Label("failed to get item " + item));+ }
+ }
+ });
+ }
+
+ public InfoPanel getInfoPanel(IItem item)
+ {+ if(item instanceof IUser)
+ return new UserInfoPanel(getClient(), (IUser) item);
+
+ if(item instanceof IGroup)
+ return new GroupInfoPanel(getClient(), (IGroup) item);
+
+ if(item instanceof ITitle)
+ return new TitleInfoPanel(getClient(), (ITitle) item);
+
+ if(item instanceof IVote)
+ return new ElectionPanel(getClient(), (IVote) item);
+
+ //TODO: is PowerNamePanel necessary?
+ //if(item instanceof IPower)
+ // use PowerNamePanel
+
+ return new InfoPanel(getClient(), item);
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/NamedItemListPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/NamedItemListPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,27 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ColConPanel;
+import org.colcon.web.model.framework.IItem;
+
+import com.google.gwt.user.client.ui.HTML;
+
+public class NamedItemListPanel extends ColConPanel
+{+ public NamedItemListPanel(Collective_Congress client, IItem[] items)
+ {+ super(client, "list");
+
+ if(items != null && items.length > 0)
+ {+ for(IItem item : items)
+ add(new NamedItemPanel(client, item));
+ }
+ else
+ {+ HTML html = new HTML("No items found");+ html.setStyleName("home");+ add(html);
+ }
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/NamedItemPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/NamedItemPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,15 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ItemPanel;
+import org.colcon.web.model.framework.IItem;
+
+public class NamedItemPanel extends ItemPanel
+{+ public NamedItemPanel(Collective_Congress client, IItem item)
+ {+ super(client, item);
+
+ insert(new NamePanel(client, item.getId()), this.getElement(), 0, true);
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/NewsLink.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/NewsLink.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,18 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ClickablePanel;
+
+public class NewsLink extends ClickablePanel
+{+ public NewsLink(Collective_Congress client)
+ {+ super(client, "header-item", "news");
+ }
+
+ public void click()
+ {+ getBodyPanel().clear();
+ getBodyPanel().add(new NewsListPanel());
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/NewsListPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/NewsListPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,15 @@
+package org.colcon.web.client.ui.deprecated;
+
+import com.google.gwt.user.client.ui.HTMLPanel;
+
+public class NewsListPanel extends HTMLPanel
+{+ public NewsListPanel()
+ {+ super(
+ "<p>This will be a news ticker</p>"
+ );
+
+ setStyleName("home");+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/PowerInfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/PowerInfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,137 @@
+package org.colcon.web.client.ui.deprecated;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.model.framework.IPower;
+import org.colcon.web.model.framework.ITitle;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.dom.client.KeyPressEvent;
+import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class PowerInfoPanel extends InfoPanel
+{+ private VerticalPanel panel;
+ private Grid grid;
+ private TextBox[] boxes;
+
+ private ITitle title;
+
+ public PowerInfoPanel(Collective_Congress client, ITitle title, IPower power)
+ {+ super(client, power);
+
+ this.title = title;
+
+ panel = new VerticalPanel();
+
+ if(!title.hasHolder(client.getUser().getId()))
+ {+ panel.add(new Label("You do not hold this title"));+ add(panel);
+ return;
+ }
+
+ String[] args = power.getDecisionArgs();
+ boxes = new TextBox[args.length];
+
+ grid = new Grid(args.length + 1, 2);
+
+ for(int i = 0; i < args.length; i++)
+ {+ String p = args[i];
+ grid.setWidget(i, 0, new Label(p));
+
+ TextBox box = new TextBox();
+ boxes[i] = box;
+ grid.setWidget(i, 1, box);
+ }
+
+ Button button = new Button("Submit");+ button.addClickHandler(new MyButtonHandler());
+ grid.setWidget(args.length, 1, button);
+
+ sinkEvents(Event.ONKEYPRESS);
+ addHandler(new MyEnterHandler(), KeyPressEvent.getType());
+
+ panel.add(grid);
+ add(panel);
+ }
+
+ private IPower getPower()
+ {+ return (IPower) getItem();
+ }
+
+ private Map<String, String> getParams()
+ {+ String[] args = getPower().getDecisionArgs();
+ Map<String, String> map = new HashMap<String, String>();
+
+ for(int i = 0; i < args.length; i++)
+ map.put(args[i], boxes[i].getText());
+
+ return map;
+ }
+
+ private class MyButtonHandler implements ClickHandler
+ {+ public void onClick(ClickEvent event)
+ {+ buttonClick();
+ }
+ }
+
+ private class MyEnterHandler implements KeyPressHandler
+ {+ public void onKeyPress(KeyPressEvent event)
+ {+ if(event.getCharCode() == KeyCodes.KEY_ENTER)
+ buttonClick();
+ }
+ }
+
+ public void buttonClick()
+ {+ IPower power = (IPower)getPower();
+
+ panel.clear();
+ panel.add(new Label("Processing..."));+
+ getService().usePower(title.getLongName(), power.getId(), getParams(), new AsyncCallback<Boolean>()
+ {+ public void onFailure(Throwable caught)
+ {+ caught.printStackTrace();
+
+ panel.clear();
+ panel.add(new Label("Decision failed"));+ }
+
+ public void onSuccess(Boolean result)
+ {+ if(result)
+ {+ panel.clear();
+ panel.add(new Label("Decision complete"));+ }
+ else
+ {+ panel.clear();
+ panel.add(new Label("Decision failed"));+ }
+ }
+ });
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/PowerNamePanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/PowerNamePanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,26 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.model.framework.IItem;
+import org.colcon.web.model.framework.ITitle;
+
+public class PowerNamePanel extends NamePanel
+{+ private String power;
+
+ public PowerNamePanel(Collective_Congress client, String title, String power)
+ {+ super(client, title);
+
+ this.power = power;
+
+ setWidth("300px");+ }
+
+ public InfoPanel getInfoPanel(IItem item)
+ {+ ITitle title = (ITitle) item;
+
+ return new PowerInfoPanel(getClient(), title, title.getPower(power));
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/TitleInfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/TitleInfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,35 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.model.framework.IPower;
+import org.colcon.web.model.framework.ITitle;
+
+import com.google.gwt.user.client.ui.HorizontalPanel;
+
+public class TitleInfoPanel extends InfoPanel
+{+ public TitleInfoPanel(Collective_Congress client, ITitle title)
+ {+ super(client, title);
+
+ //add(new NamePanel(client, title.getGroup()));
+
+ for(IPower power : title.getPowers())
+ add(new PowerNamePanel(getClient(), title.getPath(), power.getId()));
+ }
+
+ public HorizontalPanel getHeader()
+ {+ HorizontalPanel header = new HorizontalPanel();
+ header.setWidth("100%");+ NamePanel title = new NamePanel(getClient(), getItem().getPath());
+ title.setStyleName("info-title");+ header.add(title);
+
+ NamePanel groupName = new NamePanel(getClient(), ((ITitle)getItem()).getGroup());
+ groupName.setStyleName("info-group");+ header.add(groupName);
+
+ return header;
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/TitleNamePanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/TitleNamePanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,12 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+
+public class TitleNamePanel extends NamePanel
+{+ public TitleNamePanel(Collective_Congress client, String title)
+ {+ super(client, title);
+ setWidth("300px");+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/UserInfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/UserInfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,18 @@
+package org.colcon.web.client.ui.deprecated;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.model.framework.IUser;
+
+import com.google.gwt.user.client.ui.Label;
+
+public class UserInfoPanel extends InfoPanel
+{+ public UserInfoPanel(Collective_Congress client, IUser user)
+ {+ super(client, user);
+
+ add(new Label("Titles"));+ for(String title : user.getTitles())
+ add(new TitleNamePanel(client, title));
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/deprecated/UsersLink.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/deprecated/UsersLink.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,41 @@
+package org.colcon.web.client.ui.deprecated;
+
+import java.util.List;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ClickablePanel;
+import org.colcon.web.model.User;
+import org.colcon.web.model.framework.IItem;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.HTML;
+
+public class UsersLink extends ClickablePanel
+{+ public UsersLink(Collective_Congress client)
+ {+ super(client, "header-item", "users");
+ }
+
+ public void click()
+ {+ getBodyPanel().clear();
+ getBodyPanel().add(new HTML("Loading..."));+
+ getService().getUsers(new AsyncCallback<List<User>>()
+ {+ public void onFailure(Throwable caught)
+ {+ getBodyPanel().clear();
+ caught.printStackTrace();
+ getBodyPanel().add(new HTML(caught.getMessage()));
+ }
+
+ public void onSuccess(List<User> users)
+ {+ getBodyPanel().clear();
+ getBodyPanel().add(new NamedItemListPanel(getClient(), users.toArray(new IItem[0])));
+ }
+ });
+ }
+}
--- Collective Congress/src/org/colcon/web/client/ui/link/AccountLink.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/link/AccountLink.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,41 +1,0 @@
-package org.colcon.web.client.ui.link;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ClickablePanel;
-import org.colcon.web.client.ui.panel.UserInfoPanel;
-import org.colcon.web.model.User;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.Label;
-
-public class AccountLink extends ClickablePanel
-{- public AccountLink(Collective_Congress client)
- {- super(client, "user-item", client.getUser().getId());
- }
-
- public void click()
- {- getBodyPanel().clear();
- getBodyPanel().add(new Label("Loading..."));-
- getService().getUser(getClient().getUser().getId(), new AsyncCallback<User>()
- {- public void onFailure(Throwable caught)
- {- System.err.println("Failed to refresh user " + getClient().getUser().getId());- getClient().logout();
- getClient().refresh();
- }
-
- public void onSuccess(User user)
- {- getClient().login(user);
- getBodyPanel().clear();
- UserInfoPanel panel = new UserInfoPanel(getClient(), getClient().getUser());
- getBodyPanel().add(panel);
- }
- });
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/link/GroupsLink.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/link/GroupsLink.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,42 +1,0 @@
-package org.colcon.web.client.ui.link;
-
-import java.util.List;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ClickablePanel;
-import org.colcon.web.client.ui.panel.NamedItemListPanel;
-import org.colcon.web.model.Group;
-import org.colcon.web.model.framework.IItem;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.HTML;
-
-public class GroupsLink extends ClickablePanel
-{- public GroupsLink(Collective_Congress client)
- {- super(client, "header-item", "groups");
- }
-
- public void click()
- {- getBodyPanel().clear();
- getBodyPanel().add(new HTML("Loading..."));-
- getService().getGroups(new AsyncCallback<List<Group>>()
- {- public void onFailure(Throwable caught)
- {- getBodyPanel().clear();
- caught.printStackTrace();
- getBodyPanel().add(new HTML(caught.getMessage()));
- }
-
- public void onSuccess(List<Group> groups)
- {- getBodyPanel().clear();
- getBodyPanel().add(new NamedItemListPanel(getClient(), groups.toArray(new IItem[0])));
- }
- });
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/link/NewsLink.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/link/NewsLink.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,19 +1,0 @@
-package org.colcon.web.client.ui.link;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ClickablePanel;
-import org.colcon.web.client.ui.panel.NewsListPanel;
-
-public class NewsLink extends ClickablePanel
-{- public NewsLink(Collective_Congress client)
- {- super(client, "header-item", "news");
- }
-
- public void click()
- {- getBodyPanel().clear();
- getBodyPanel().add(new NewsListPanel());
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/link/UsersLink.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/link/UsersLink.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,42 +1,0 @@
-package org.colcon.web.client.ui.link;
-
-import java.util.List;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ClickablePanel;
-import org.colcon.web.client.ui.panel.NamedItemListPanel;
-import org.colcon.web.model.User;
-import org.colcon.web.model.framework.IItem;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.HTML;
-
-public class UsersLink extends ClickablePanel
-{- public UsersLink(Collective_Congress client)
- {- super(client, "header-item", "users");
- }
-
- public void click()
- {- getBodyPanel().clear();
- getBodyPanel().add(new HTML("Loading..."));-
- getService().getUsers(new AsyncCallback<List<User>>()
- {- public void onFailure(Throwable caught)
- {- getBodyPanel().clear();
- caught.printStackTrace();
- getBodyPanel().add(new HTML(caught.getMessage()));
- }
-
- public void onSuccess(List<User> users)
- {- getBodyPanel().clear();
- getBodyPanel().add(new NamedItemListPanel(getClient(), users.toArray(new IItem[0])));
- }
- });
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/CreateGroupPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/CreateGroupPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,125 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ColConPanel;
-
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.KeyCodes;
-import com.google.gwt.event.dom.client.KeyPressEvent;
-import com.google.gwt.event.dom.client.KeyPressHandler;
-import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.Grid;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.TextArea;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.VerticalPanel;
-
-public class CreateGroupPanel extends ColConPanel
-{- private VerticalPanel panel = new VerticalPanel();
-
- private Grid grid = new Grid(3, 2);
-
- private Label nameLabel = new Label("Name:");- private TextBox nameBox = new TextBox();
- private Label charterLabel = new Label("Charter:");- private TextArea charterBox = new TextArea();
- private Button button = new Button("Create Group");-
- public CreateGroupPanel(Collective_Congress client)
- {- super(client, null, null);
-
- setStyleName("register");-
- panel.setWidth("100%");- panel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
-
- button.addClickHandler(new MyButtonHandler());
-
- sinkEvents(Event.ONKEYPRESS);
- addHandler(new MyEnterHandler(), KeyPressEvent.getType());
-
- grid.setWidget(0, 0, nameLabel);
- grid.setWidget(0, 1, nameBox);
- grid.setWidget(1, 0, charterLabel);
- grid.setWidget(1, 1, charterBox);
- grid.setWidget(2, 1, button);
-
- panel.add(grid);
- add(panel);
-
- setFocus(nameBox);
- }
-
- private class MyButtonHandler implements ClickHandler
- {- public void onClick(ClickEvent event)
- {- buttonClick();
- }
- }
-
- private class MyEnterHandler implements KeyPressHandler
- {- public void onKeyPress(KeyPressEvent event)
- {- if(event.getCharCode() == KeyCodes.KEY_ENTER)
- buttonClick();
- }
- }
-
- public void buttonClick()
- {- if(!validate())
- {- panel.clear();
- panel.add(grid);
- panel.add(new HTML("Invalid input"));- return;
- }
-
- panel.clear();
- panel.add(new HTML("Loading..."));-
- getService().addGroup(nameBox.getText(), charterBox.getText(), new AsyncCallback<Boolean>()
- {- public void onFailure(Throwable caught)
- {- caught.printStackTrace();
-
- panel.clear();
- panel.add(grid);
- panel.add(new HTML(caught.getMessage()));
- }
-
- public void onSuccess(Boolean result)
- {- panel.clear();
-
- if(result)
- {- panel.add(new HTML("Group creation successful"));- }
- else
- {- panel.add(grid);
- panel.add(new HTML("Name already taken"));- }
- }
- });
- }
-
- private boolean validate()
- {- return
- !(
- nameBox.getText().isEmpty() ||
- charterBox.getText().isEmpty()
- );
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/ElectionPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/ElectionPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,144 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.model.Ballot;
-import org.colcon.web.model.framework.IUser;
-import org.colcon.web.model.framework.IVote;
-import org.colcon.web.model.vote.ElectionVote;
-
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.KeyCodes;
-import com.google.gwt.event.dom.client.KeyPressEvent;
-import com.google.gwt.event.dom.client.KeyPressHandler;
-import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.RadioButton;
-import com.google.gwt.user.client.ui.VerticalPanel;
-
-public class ElectionPanel extends InfoPanel
-{- private VerticalPanel panel;
- private RadioButton[] radioButtons;
- private IUser[] candidates;
-
- public ElectionPanel(Collective_Congress client, IVote vote)
- {- super(client, vote);
- }
-
- public void init()
- {- super.init();
-
- IVote vote = getVote();
-
- sinkEvents(Event.ONKEYPRESS);
- addHandler(new MyEnterHandler(), KeyPressEvent.getType());
-
- panel = new VerticalPanel();
-
- if(!vote.isEligible(getClient().getUser()))
- {- panel.clear();
- panel.add(new Label("You are not eligible for this vote or have already voted"));- add(panel);
- return;
- }
-
- ElectionVote election = (ElectionVote) vote;
-
- candidates = election.getCandidates();
- radioButtons = new RadioButton[candidates.length];
-
- for(int i = 0; i < candidates.length; i++)
- {- String username = candidates[i].getId();
- int votes = election.getVotes(username);
- if(votes > 0)
- add(new Label(username + ": " + votes));
- }
-
- for(int i = 0; i < candidates.length; i++)
- {- radioButtons[i] = new RadioButton("buttonGroup", candidates[i].getId());- panel.add(radioButtons[i]);
- }
-
- Button button = new Button("Submit Vote");- button.addClickHandler(new MyButtonHandler());
- panel.add(button);
-
- add(panel);
- }
-
- public IVote getVote()
- {- return (IVote) getItem();
- }
-
- private class MyButtonHandler implements ClickHandler
- {- public void onClick(ClickEvent event)
- {- buttonClick();
- }
- }
-
- private class MyEnterHandler implements KeyPressHandler
- {- public void onKeyPress(KeyPressEvent event)
- {- if(event.getCharCode() == KeyCodes.KEY_ENTER)
- buttonClick();
- }
- }
-
- public void buttonClick()
- {- String user = getClient().getUser().getId();
-
- if(getVoteValue() == null)
- {- init();
- panel.add(new HTML("Invalid vote value"));- return;
- }
-
- getService().submitVote(getVote().getPath(), user, getVoteValue(), new AsyncCallback<Ballot>()
- {- public void onFailure(Throwable caught)
- {- panel.clear();
- caught.printStackTrace();
- panel.add(new HTML(caught.getMessage()));
- }
-
- public void onSuccess(Ballot ballot)
- {- if(ballot != null)
- {- panel.clear();
- panel.add(new HTML("Vote successful"));- }
- else
- {- panel.clear();
- panel.add(new HTML("Vote failed"));- }
- }
- });
- }
-
- public String getVoteValue()
- {- for(int i = 0; i < radioButtons.length; i++)
- if(radioButtons[i].getValue())
- return candidates[i].getId();
-
- return null;
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/GroupInfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/GroupInfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,86 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.model.framework.IGroup;
-import org.colcon.web.model.framework.IProposal;
-import org.colcon.web.model.framework.ITitle;
-import org.colcon.web.model.framework.IVote;
-
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.Label;
-
-public class GroupInfoPanel extends InfoPanel
-{- public GroupInfoPanel(Collective_Congress client, IGroup group)
- {- super(client, group);
-
- if(!group.hasMember(getClient().getUser().getId()))
- {- Button joinButton = new Button("Join this group");- joinButton.addClickHandler(new MyButtonHandler());
- add(joinButton);
- }
-
- add(new Label("Members"));- for(String user : group.getMembers())
- add(new NamePanel(client, user));
-
- add(new Label("Titles"));- for(ITitle title : group.getTitles())
- add(new NamePanel(client, title.getPath()));
-
- add(new Label("Proposals"));- for(IProposal proposal : group.getProposals())
- add(new NamePanel(client, proposal.getPath()));
-
- add(new Label("Votes"));- for(IVote vote : group.getVotes())
- add(new NamePanel(client, vote.getPath()));
- }
-
- public IGroup getGroup()
- {- return (IGroup) getItem();
- }
-
- private class MyButtonHandler implements ClickHandler
- {- public void onClick(ClickEvent event)
- {- joinGroup();
- }
- }
-
- public void joinGroup()
- {- getService().addMember(getGroup().getId(), getClient().getUser().getId(), new AsyncCallback<Boolean>()
- {- public void onFailure(Throwable caught)
- {- caught.printStackTrace();
- }
-
- public void onSuccess(Boolean result)
- {- if(result)
- {- getBodyPanel().clear();
- Label label = new Label("Group joined successfully");- label.setStyleName("item");- getBodyPanel().add(label);
- }
- else
- {- getBodyPanel().clear();
- Label label = new Label("GFailed to join group");- label.setStyleName("item");- getBodyPanel().add(label);
- }
- }
- });
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/InfoNamePanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/InfoNamePanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,14 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-
-public class InfoNamePanel extends NamePanel
-{- public InfoNamePanel(Collective_Congress client, String item)
- {- super(client, item);
- }
-
- // using this class disables info panel refreshing
- public void click() {};-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/InfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/InfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,47 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ColConPanel;
-import org.colcon.web.model.framework.IItem;
-
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Label;
-
-public class InfoPanel extends ColConPanel
-{- private IItem item;
-
- public InfoPanel(Collective_Congress client, IItem item)
- {- super(client, "info", null);
-
- this.item = item;
-
- init();
- }
-
- public void init()
- {- clear();
-
- add(getHeader());
-
- add(new Label(item.getText()));
- }
-
- public HorizontalPanel getHeader()
- {- HorizontalPanel header = new HorizontalPanel();
-
- NamePanel title = new InfoNamePanel(getClient(), item.getId());
- title.setStyleName("info-title");- header.add(title);
-
- return header;
- }
-
- public IItem getItem()
- {- return item;
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/LoginPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/LoginPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -109,7 +109,7 @@
- getBodyPanel().add(new UserInfoPanel(getClient(), getClient().getUser()));
+ getBodyPanel().add(new UserPanel(getClient(), getClient().getUser()));
--- Collective Congress/src/org/colcon/web/client/ui/panel/NamePanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/NamePanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,92 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ClickablePanel;
-import org.colcon.web.model.Item;
-import org.colcon.web.model.framework.IGroup;
-import org.colcon.web.model.framework.IItem;
-import org.colcon.web.model.framework.ITitle;
-import org.colcon.web.model.framework.IUser;
-import org.colcon.web.model.framework.IVote;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.Label;
-
-public class NamePanel extends ClickablePanel
-{- private String item;
-
- public NamePanel(Collective_Congress client, String item)
- {- this(client, item, item);
- }
-
- public NamePanel(Collective_Congress client, String item, String text)
- {- super(client, "name", text);
-
- this.item = item;
- }
-
- public String getItem()
- {- return item;
- }
-
- public void click()
- {- getBodyPanel().clear();
-
- if(!getClient().loggedIn())
- {- getBodyPanel().add(new LoginPanel(getClient()));
- return;
- }
-
- getBodyPanel().add(new Label("Loading..."));-
- getService().get(item, new AsyncCallback<Item>()
- {- public void onFailure(Throwable caught)
- {- getBodyPanel().clear();
- getBodyPanel().add(new Label("failed to get item " + item));- }
-
- public void onSuccess(Item item)
- {- getBodyPanel().clear();
-
- if(item != null)
- {- getBodyPanel().add(getInfoPanel(item));
- }
- else
- {- getBodyPanel().add(new Label("failed to get item " + item));- }
- }
- });
- }
-
- public InfoPanel getInfoPanel(IItem item)
- {- if(item instanceof IUser)
- return new UserInfoPanel(getClient(), (IUser) item);
-
- if(item instanceof IGroup)
- return new GroupInfoPanel(getClient(), (IGroup) item);
-
- if(item instanceof ITitle)
- return new TitleInfoPanel(getClient(), (ITitle) item);
-
- if(item instanceof IVote)
- return new ElectionPanel(getClient(), (IVote) item);
-
- //TODO: is PowerNamePanel necessary?
- //if(item instanceof IPower)
- // use PowerNamePanel
-
- return new InfoPanel(getClient(), item);
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/NamedItemListPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/NamedItemListPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,27 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ColConPanel;
-import org.colcon.web.model.framework.IItem;
-
-import com.google.gwt.user.client.ui.HTML;
-
-public class NamedItemListPanel extends ColConPanel
-{- public NamedItemListPanel(Collective_Congress client, IItem[] items)
- {- super(client, "list");
-
- if(items != null && items.length > 0)
- {- for(IItem item : items)
- add(new NamedItemPanel(client, item));
- }
- else
- {- HTML html = new HTML("No items found");- html.setStyleName("home");- add(html);
- }
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/NamedItemPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/NamedItemPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,15 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.client.ui.ItemPanel;
-import org.colcon.web.model.framework.IItem;
-
-public class NamedItemPanel extends ItemPanel
-{- public NamedItemPanel(Collective_Congress client, IItem item)
- {- super(client, item);
-
- insert(new NamePanel(client, item.getId()), this.getElement(), 0, true);
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/NewsListPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/NewsListPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,15 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import com.google.gwt.user.client.ui.HTMLPanel;
-
-public class NewsListPanel extends HTMLPanel
-{- public NewsListPanel()
- {- super(
- "<p>This will be a news ticker</p>"
- );
-
- setStyleName("home");- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/PowerInfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/PowerInfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,137 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.model.framework.IPower;
-import org.colcon.web.model.framework.ITitle;
-
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.KeyCodes;
-import com.google.gwt.event.dom.client.KeyPressEvent;
-import com.google.gwt.event.dom.client.KeyPressHandler;
-import com.google.gwt.user.client.Event;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.Grid;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.VerticalPanel;
-
-public class PowerInfoPanel extends InfoPanel
-{- private VerticalPanel panel;
- private Grid grid;
- private TextBox[] boxes;
-
- private ITitle title;
-
- public PowerInfoPanel(Collective_Congress client, ITitle title, IPower power)
- {- super(client, power);
-
- this.title = title;
-
- panel = new VerticalPanel();
-
- if(!title.hasHolder(client.getUser().getId()))
- {- panel.add(new Label("You do not hold this title"));- add(panel);
- return;
- }
-
- String[] args = power.getDecisionArgs();
- boxes = new TextBox[args.length];
-
- grid = new Grid(args.length + 1, 2);
-
- for(int i = 0; i < args.length; i++)
- {- String p = args[i];
- grid.setWidget(i, 0, new Label(p));
-
- TextBox box = new TextBox();
- boxes[i] = box;
- grid.setWidget(i, 1, box);
- }
-
- Button button = new Button("Submit");- button.addClickHandler(new MyButtonHandler());
- grid.setWidget(args.length, 1, button);
-
- sinkEvents(Event.ONKEYPRESS);
- addHandler(new MyEnterHandler(), KeyPressEvent.getType());
-
- panel.add(grid);
- add(panel);
- }
-
- private IPower getPower()
- {- return (IPower) getItem();
- }
-
- private Map<String, String> getParams()
- {- String[] args = getPower().getDecisionArgs();
- Map<String, String> map = new HashMap<String, String>();
-
- for(int i = 0; i < args.length; i++)
- map.put(args[i], boxes[i].getText());
-
- return map;
- }
-
- private class MyButtonHandler implements ClickHandler
- {- public void onClick(ClickEvent event)
- {- buttonClick();
- }
- }
-
- private class MyEnterHandler implements KeyPressHandler
- {- public void onKeyPress(KeyPressEvent event)
- {- if(event.getCharCode() == KeyCodes.KEY_ENTER)
- buttonClick();
- }
- }
-
- public void buttonClick()
- {- IPower power = (IPower)getPower();
-
- panel.clear();
- panel.add(new Label("Processing..."));-
- getService().usePower(title.getLongName(), power.getId(), getParams(), new AsyncCallback<Boolean>()
- {- public void onFailure(Throwable caught)
- {- caught.printStackTrace();
-
- panel.clear();
- panel.add(new Label("Decision failed"));- }
-
- public void onSuccess(Boolean result)
- {- if(result)
- {- panel.clear();
- panel.add(new Label("Decision complete"));- }
- else
- {- panel.clear();
- panel.add(new Label("Decision failed"));- }
- }
- });
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/PowerNamePanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/PowerNamePanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,26 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.model.framework.IItem;
-import org.colcon.web.model.framework.ITitle;
-
-public class PowerNamePanel extends NamePanel
-{- private String power;
-
- public PowerNamePanel(Collective_Congress client, String title, String power)
- {- super(client, title);
-
- this.power = power;
-
- setWidth("300px");- }
-
- public InfoPanel getInfoPanel(IItem item)
- {- ITitle title = (ITitle) item;
-
- return new PowerInfoPanel(getClient(), title, title.getPower(power));
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/TitleInfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/TitleInfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,35 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.model.framework.IPower;
-import org.colcon.web.model.framework.ITitle;
-
-import com.google.gwt.user.client.ui.HorizontalPanel;
-
-public class TitleInfoPanel extends InfoPanel
-{- public TitleInfoPanel(Collective_Congress client, ITitle title)
- {- super(client, title);
-
- //add(new NamePanel(client, title.getGroup()));
-
- for(IPower power : title.getPowers())
- add(new PowerNamePanel(getClient(), title.getPath(), power.getId()));
- }
-
- public HorizontalPanel getHeader()
- {- HorizontalPanel header = new HorizontalPanel();
- header.setWidth("100%");- NamePanel title = new NamePanel(getClient(), getItem().getPath());
- title.setStyleName("info-title");- header.add(title);
-
- NamePanel groupName = new NamePanel(getClient(), ((ITitle)getItem()).getGroup());
- groupName.setStyleName("info-group");- header.add(groupName);
-
- return header;
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/TitleNamePanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/TitleNamePanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,12 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-
-public class TitleNamePanel extends NamePanel
-{- public TitleNamePanel(Collective_Congress client, String title)
- {- super(client, title);
- setWidth("300px");- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/UserInfoPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/UserInfoPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,18 +1,0 @@
-package org.colcon.web.client.ui.panel;
-
-import org.colcon.web.client.Collective_Congress;
-import org.colcon.web.model.framework.IUser;
-
-import com.google.gwt.user.client.ui.Label;
-
-public class UserInfoPanel extends InfoPanel
-{- public UserInfoPanel(Collective_Congress client, IUser user)
- {- super(client, user);
-
- add(new Label("Titles"));- for(String title : user.getTitles())
- add(new TitleNamePanel(client, title));
- }
-}
--- Collective Congress/src/org/colcon/web/client/ui/panel/UserPanel.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/client/ui/panel/UserPanel.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,23 @@
+package org.colcon.web.client.ui.panel;
+
+import org.colcon.web.client.Collective_Congress;
+import org.colcon.web.client.ui.ItemPanel;
+import org.colcon.web.client.ui.LinkPanel;
+import org.colcon.web.model.Model;
+import org.colcon.web.model.framework.IUser;
+
+public class UserPanel extends ItemPanel
+{+ public UserPanel(Collective_Congress client, IUser user)
+ {+ super(client, user);
+
+ for(String title : user.getTitles())
+ add(new LinkPanel(client, "link", Model.getTitleString(title), title));
+ }
+
+ public IUser getUser()
+ {+ return (IUser) getItem();
+ }
+}
--- Collective Congress/src/org/colcon/web/model/CLI.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/CLI.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -27,6 +27,7 @@
+ HELP = "help",
@@ -105,6 +106,10 @@
+ else if(cmd.equals(HELP))
+ {+ return getHelpString();
+ }
@@ -249,4 +254,16 @@
+
+ public static String getHelpString()
+ {+ return
+ "get -path [item_path]\n" +
+ "open -path [item_path]\n" +
+ "remove -path [item_path]\n" +
+ "add -path [item_path] -item_type [item_type] [item_args]\n" +
+ "create_user -id [group_id]\n" +
+ "create_group -id [group_id] -text [group_text]\n" +
+ "assign_title -path [title_path] -user [user_id]\n";
+ }
--- Collective Congress/src/org/colcon/web/model/Container.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/Container.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -39,11 +39,6 @@
- }
-
- public boolean isRoot()
- {- return getParentPath() == null;
--- Collective Congress/src/org/colcon/web/model/Group.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/Group.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -47,7 +47,7 @@
- super(Model.getGroupContainer(), id);
+ super(Model.getGroupContainerPath(), id);
--- Collective Congress/src/org/colcon/web/model/Item.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/Item.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -104,41 +104,8 @@
- public static String formatId(String id)
+ public boolean isRoot()
- String str = id.toLowerCase();
-
- str.replaceAll(" ", "_");-
- return str;
- }
-
- public static String getId(String path)
- {- if(path == null || path.length() == 0)
- return null;
-
- String[] array = path.split("/");-
- if(array == null || array.length == 0)
- return null;
-
- return array[array.length - 1];
- }
-
- public static String getGroup(String path)
- {- if(path == null || path.length() == 0)
- return null;
-
- String[] array = path.split("/");-
- if(array == null || array.length < 2)
- return null;
-
- if(!array[0].equals(Model.GROUPS))
- return null;
-
- return array[1];
+ return getParentPath() == null;
--- Collective Congress/src/org/colcon/web/model/Law.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/Law.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -36,7 +36,7 @@
- return Item.getGroup(getParentPath());
+ return Model.parseGroup(getParentPath());
--- Collective Congress/src/org/colcon/web/model/Model.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/Model.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -119,7 +119,7 @@
- item.setParentPath(parent);
+ //item.setParentPath(parent);
@@ -254,23 +254,81 @@
- public static String getContainer(String id)
+ public static String getContainerPath(String id)
- public static String getUserContainer()
- {- return getContainer(USERS);
- }
-
- public static String getGroupContainer()
- {- return getContainer(GROUPS);
+ public static String getUserContainerPath()
+ {+ return getContainerPath(USERS);
+ }
+
+ public static String getGroupContainerPath()
+ {+ return getContainerPath(GROUPS);
+ }
+
+ public static String getUserPath(String id)
+ {+ return getUserContainerPath() + '/' + id;
+ }
+
+ public static String getGroupPath(String id)
+ {+ return getGroupContainerPath() + '/' + id;
- return Model.getGroupContainer() + '/' + group + '/' + Group.TITLES;
+ return getGroupPath(group) + '/' + Group.TITLES;
+ }
+
+ public static String getTitlePath(String group, String title)
+ {+ return getTitleContainer(group) + '/' + title;
+ }
+
+ public static String formatId(String id)
+ {+ String str = id.toLowerCase();
+
+ str.replaceAll(" ", "_");+
+ return str;
+ }
+
+ public static String parseId(String path)
+ {+ if(path == null || path.length() == 0)
+ return null;
+
+ String[] array = path.split("/");+
+ if(array == null || array.length == 0)
+ return null;
+
+ return array[array.length - 1];
+ }
+
+ public static String parseGroup(String path)
+ {+ if(path == null || path.length() == 0)
+ return null;
+
+ String[] array = path.split("/");+
+ if(array == null || array.length < 2)
+ return null;
+
+ if(!array[0].equals(Model.GROUPS))
+ return null;
+
+ return array[1];
+ }
+
+ public static String getTitleString(String path)
+ {+ return Model.parseId(path) + " of " + Model.parseGroup(path);
--- Collective Congress/src/org/colcon/web/model/Power.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/Power.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -77,7 +77,7 @@
- String group = Item.getGroup(getParentPath());
+ String group = Model.parseGroup(getParentPath());
--- Collective Congress/src/org/colcon/web/model/Title.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/Title.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -139,9 +139,4 @@
-
- public static String getString(String path)
- {- return Item.getId(path) + " of " + Item.getGroup(path);
- }
--- Collective Congress/src/org/colcon/web/model/User.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/User.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -34,7 +34,7 @@
- super(Model.getUserContainer(), id);
+ super(Model.getUserContainerPath(), id);
@@ -52,10 +52,10 @@
- String text = Title.getString(getTitles()[0]);
+ String text = Model.getTitleString(getTitles()[0]);
- text += ", " + Title.getString(getTitles()[i]);
+ text += ", " + Model.getTitleString(getTitles()[i]);
--- Collective Congress/src/org/colcon/web/model/framework/IItem.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/framework/IItem.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -19,4 +19,5 @@
+ public boolean isRoot();
--- Collective Congress/src/org/colcon/web/model/power/CreateGroupPower.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/power/CreateGroupPower.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -16,11 +16,11 @@
- super("groups/" + Model.USER_CONGRESS + "/titles/" + Group.MEMBER, + super(
+ Model.getTitlePath(Model.USER_CONGRESS, Group.MEMBER),
-
--- Collective Congress/src/org/colcon/web/model/power/CreateTitlePower.java 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/src/org/colcon/web/model/power/CreateTitlePower.java 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,6 +1,7 @@
+import org.colcon.web.model.Group;
@@ -20,7 +21,9 @@
- super("create_title", group, + super(
+ Model.getTitlePath(group, Group.MEMBER),
+ "create_title",
--- Collective Congress/war/Collective_Congress.css 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/war/Collective_Congress.css 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -210,13 +210,13 @@
-.item-title
+.link-title
-.item-title:hover
+.link-title:hover
@@ -226,7 +226,7 @@
- width: 150px;
+ width: 200px;
@@ -239,6 +239,26 @@
+{+ background-color: #FFFFFF;
+ color: rgb(136, 0, 21);
+}
+
+.link-parent
+{+ width: 200px;
+
+ padding: 5px;
+ margin: 5px;
+
+ border-radius: 10px;
+ background-color: rgb(136, 0, 21);
+ color: #FFFFFF;
+
+ text-align: center;
+}
+
+.link-parent:hover
--- Collective Congress/war/WEB-INF/deploy/collective_congress/rpcPolicyManifest/manifests/49A566B27ED0EAE28B6772CBB368F3BC.txt 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/war/WEB-INF/deploy/collective_congress/rpcPolicyManifest/manifests/49A566B27ED0EAE28B6772CBB368F3BC.txt 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,2 @@
+serviceClass: org.colcon.web.client.ColConService
+path: 573CDAC0BAA96051CFB5863991048466.gwt.rpc
--- Collective Congress/war/collective_congress/573CDAC0BAA96051CFB5863991048466.gwt.rpc 8f4500f239b0633dc6b214642de1204981178655
+++ Collective Congress/war/collective_congress/573CDAC0BAA96051CFB5863991048466.gwt.rpc 63986c52115887bf23a4c6112d3fc2c23d53e92f
@@ -1,0 +1,55 @@
+com.google.gwt.i18n.shared.impl.DateRecord, true, true, false, false, com.google.gwt.i18n.shared.impl.DateRecord/3375188634, 3375188634
+com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException, true, true, true, true, com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533, 3936916533
+com.google.gwt.user.client.rpc.RpcTokenException, true, true, false, false, com.google.gwt.user.client.rpc.RpcTokenException/2345075298, 2345075298
+com.google.gwt.user.client.rpc.XsrfToken, false, false, true, true, com.google.gwt.user.client.rpc.XsrfToken/4254043109, 4254043109
+java.lang.Boolean, true, true, false, false, java.lang.Boolean/476441737, 476441737
+java.lang.Exception, true, false, true, false, java.lang.Exception/1920171873, 1920171873
+java.lang.RuntimeException, true, false, true, false, java.lang.RuntimeException/515124647, 515124647
+java.lang.String, true, true, true, true, java.lang.String/2004016611, 2004016611
+java.lang.Throwable, true, false, true, false, java.lang.Throwable/2953622131, 2953622131
+java.sql.Date, true, true, false, false, java.sql.Date/730999118, 730999118
+java.sql.Time, true, true, false, false, java.sql.Time/1816797103, 1816797103
+java.sql.Timestamp, true, true, false, false, java.sql.Timestamp/3040052672, 3040052672
+java.util.ArrayList, true, true, false, false, java.util.ArrayList/4159755760, 4159755760
+java.util.Arrays$ArrayList, true, true, false, false, java.util.Arrays$ArrayList/2507071751, 2507071751
+java.util.Collections$EmptyList, true, true, false, false, java.util.Collections$EmptyList/4157118744, 4157118744
+java.util.Collections$EmptyMap, true, true, true, true, java.util.Collections$EmptyMap/4174664486, 4174664486
+java.util.Collections$EmptySet, true, true, false, false, java.util.Collections$EmptySet/3523698179, 3523698179
+java.util.Collections$SingletonList, true, true, false, false, java.util.Collections$SingletonList/1586180994, 1586180994
+java.util.Date, true, true, false, false, java.util.Date/3385151746, 3385151746
+java.util.HashMap, true, true, true, true, java.util.HashMap/1797211028, 1797211028
+java.util.HashSet, true, true, false, false, java.util.HashSet/3273092938, 3273092938
+java.util.IdentityHashMap, true, true, true, true, java.util.IdentityHashMap/1839153020, 1839153020
+java.util.LinkedHashMap, true, true, true, true, java.util.LinkedHashMap/3008245022, 3008245022
+java.util.LinkedHashSet, true, true, false, false, java.util.LinkedHashSet/1826081506, 1826081506
+java.util.LinkedList, true, true, false, false, java.util.LinkedList/3953877921, 3953877921
+java.util.Stack, true, true, false, false, java.util.Stack/1346942793, 1346942793
+java.util.TreeMap, true, true, true, true, java.util.TreeMap/1493889780, 1493889780
+java.util.TreeSet, true, true, false, false, java.util.TreeSet/4043497002, 4043497002
+java.util.Vector, true, true, false, false, java.util.Vector/3057315478, 3057315478
+org.colcon.web.client.ColConService, false, false, false, false, _, 3056180247
+org.colcon.web.model.Ballot, true, true, false, false, org.colcon.web.model.Ballot/3523817985, 3523817985
+org.colcon.web.model.Container, true, true, false, false, org.colcon.web.model.Container/281291707, 281291707
+org.colcon.web.model.Decision, true, true, false, false, org.colcon.web.model.Decision/1190613842, 1190613842
+[Lorg.colcon.web.model.Decision;, true, true, false, false, [Lorg.colcon.web.model.Decision;/1622493706, 1622493706
+org.colcon.web.model.Group, true, true, false, false, org.colcon.web.model.Group/3080983413, 3080983413
+[Lorg.colcon.web.model.Group;, true, true, false, false, [Lorg.colcon.web.model.Group;/1319764090, 1319764090
+org.colcon.web.model.Item, true, true, false, false, org.colcon.web.model.Item/486676530, 486676530
+org.colcon.web.model.Law, true, true, false, false, org.colcon.web.model.Law/2377518243, 2377518243
+org.colcon.web.model.Param, true, true, false, false, org.colcon.web.model.Param/1428498524, 1428498524
+org.colcon.web.model.ParamItem, true, false, false, false, org.colcon.web.model.ParamItem/2741781645, 2741781645
+org.colcon.web.model.Power, true, true, false, false, org.colcon.web.model.Power/2816657101, 2816657101
+org.colcon.web.model.Proposal, true, true, false, false, org.colcon.web.model.Proposal/1782232273, 1782232273
+org.colcon.web.model.Title, true, true, false, false, org.colcon.web.model.Title/241242056, 241242056
+org.colcon.web.model.User, true, true, false, false, org.colcon.web.model.User/2617604530, 2617604530
+[Lorg.colcon.web.model.User;, true, true, false, false, [Lorg.colcon.web.model.User;/1641532903, 1641532903
+org.colcon.web.model.Vote, true, true, false, false, org.colcon.web.model.Vote/1927081577, 1927081577
+[Lorg.colcon.web.model.framework.IDecision;, true, true, false, false, [Lorg.colcon.web.model.framework.IDecision;/1706709822, 1706709822
+[Lorg.colcon.web.model.framework.IUser;, true, true, false, false, [Lorg.colcon.web.model.framework.IUser;/3551883336, 3551883336
+org.colcon.web.model.power.CreateGroupPower, true, true, false, false, org.colcon.web.model.power.CreateGroupPower/1741774176, 1741774176
+org.colcon.web.model.proposal.ElectionVoteProposal, true, true, false, false, org.colcon.web.model.proposal.ElectionVoteProposal/1069680350, 1069680350
+org.colcon.web.model.proposal.MultiChoiceVoteProposal, true, false, false, false, org.colcon.web.model.proposal.MultiChoiceVoteProposal/785921072, 785921072
+org.colcon.web.model.title.MemberTitle, true, true, false, false, org.colcon.web.model.title.MemberTitle/1671009497, 1671009497
+org.colcon.web.model.title.RepresentativeTitle, true, true, false, false, org.colcon.web.model.title.RepresentativeTitle/3192596617, 3192596617
+org.colcon.web.model.vote.ElectionVote, true, true, false, false, org.colcon.web.model.vote.ElectionVote/2882282232, 2882282232
+org.colcon.web.model.vote.MultiChoiceVote, true, false, false, false, org.colcon.web.model.vote.MultiChoiceVote/4158992156, 4158992156