001 // GraphLab Project: http://graphlab.sharif.edu 002 // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology 003 // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ 004 package graphlab.plugins.main.select; 005 006 import graphlab.graph.atributeset.GraphAttrSet; 007 import graphlab.graph.graph.EdgeModel; 008 import graphlab.graph.graph.GraphModel; 009 import graphlab.graph.graph.SubGraph; 010 import graphlab.graph.graph.VertexModel; 011 import graphlab.platform.core.AbstractAction; 012 import graphlab.platform.core.BlackBoard; 013 import graphlab.ui.UIUtils; 014 015 import java.util.Iterator; 016 017 /** 018 * @author Ruzbeh Ebrahimi 019 */ 020 public class SelectAll extends AbstractAction { 021 public static final String event = UIUtils.getUIEventKey("SelectAll"); 022 023 public SelectAll(BlackBoard bb) { 024 super(bb); 025 listen4Event(event); 026 blackboard.setData(Select.EVENT_KEY, new SubGraph()); 027 028 } 029 030 public void performAction(String eventName, Object value) { 031 GraphModel g = ((GraphModel) (blackboard.getData(GraphAttrSet.name))); 032 SubGraph sd = getSelection(); 033 Iterator<VertexModel> vertices = g.iterator(); 034 Iterator<EdgeModel> edges = g.lightEdgeIterator(); 035 for (; vertices.hasNext();) { 036 037 VertexModel vertex = vertices.next(); 038 // if (vertex.view.isSelected) { 039 // //vertex.view.isSelected = false; 040 // sd.vertices.remove(vertex); 041 // } else 042 sd.vertices.add(vertex); 043 044 } 045 for (; edges.hasNext();) { 046 047 EdgeModel edge = edges.next(); 048 // if (edge.view.isSelected){ 049 // sd.edges.remove(edge); 050 // //edge.view.isSelected=false; 051 // } 052 // else 053 sd.edges.add(edge); 054 055 } 056 Select.setSelection(blackboard, sd); 057 } 058 059 public SubGraph getSelection() { 060 return Select.getSelection(blackboard); 061 } 062 }