package edu.washington.cs.oneswarm.ui.gwt.client.newui.friends; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import edu.washington.cs.oneswarm.ui.gwt.client.newui.OneSwarmCss; import edu.washington.cs.oneswarm.ui.gwt.rpc.FriendInfoLite; public class FriendPropertiesTable extends Composite { private final List<FriendPropertiesPanel> panels; private final boolean forceUpdate; public FriendPropertiesTable(FriendInfoLite[] friends, boolean forceUpdate, boolean showSkip) { this.forceUpdate = forceUpdate; VerticalPanel mainPanel = new VerticalPanel(); ScrollPanel scroll = new ScrollPanel(mainPanel); scroll.setWidth("100%"); mainPanel.setWidth("100%"); if (friends.length == 0) { mainPanel.add(new Label("No new friends found")); } panels = new ArrayList<FriendPropertiesPanel>(); Arrays.sort(friends); // HorizontalPanel labelPanel = new HorizontalPanel(); // Label nameLabel = new Label("Friend nick"); // nameLabel.setWidth("250px"); // labelPanel.add(nameLabel); // Label blockLabel = new Label("Block"); // blockLabel.setWidth("50px"); int addCount = 0; for (int i = 0; i < friends.length; i++) { if (friends[i].getStatus() != FriendInfoLite.STATUS_TO_BE_DELETED) { FriendPropertiesPanel fp = new FriendPropertiesPanel(friends[i], showSkip); mainPanel.add(fp); panels.add(fp); addCount++; } } if (showSkip && addCount > 0) { HorizontalPanel buttonPanel = new HorizontalPanel(); final Button selectAll = new Button("Select All"); final Button selectNone = new Button("Select None"); selectAll.addStyleName(OneSwarmCss.SMALL_BUTTON); selectNone.addStyleName(OneSwarmCss.SMALL_BUTTON); ClickListener selectAllNoneListener = new ClickListener() { @Override public void onClick(Widget sender) { boolean val = sender.equals(selectAll); for (FriendPropertiesPanel p : panels) { p.setChecked(val); } } }; selectAll.addClickListener(selectAllNoneListener); selectNone.addClickListener(selectAllNoneListener); buttonPanel.add(selectAll); buttonPanel.add(selectNone); mainPanel.insert(buttonPanel, 0); } this.initWidget(scroll); } public void saveChanges(boolean reallySkip) { for (FriendPropertiesPanel fp : panels) { fp.saveChanges(null, forceUpdate, reallySkip); } } }