1 19 20 package ca.mcgill.sable.soot.ui; 21 22 import org.eclipse.swt.widgets.Composite; 23 import org.eclipse.ui.part.*; 24 import org.eclipse.jface.viewers.*; 25 import org.eclipse.swt.SWT; 26 import org.eclipse.swt.widgets.*; 27 import java.util.*; 28 import org.eclipse.core.resources.*; 29 import ca.mcgill.sable.soot.attributes.*; 30 import ca.mcgill.sable.soot.*; 31 import org.eclipse.ui.*; 32 33 public class AnalysisTypeView extends ViewPart implements ICheckStateListener { 34 35 private CheckboxTableViewer viewer; 36 private ArrayList inputTypes; 37 private boolean allTypesChecked; 38 private ArrayList typesChecked; 39 private IFile file; 40 41 public AnalysisTypeView() { 42 super(); 43 } 44 45 48 public void createPartControl(Composite parent) { 49 Table table = new Table(parent, SWT.CHECK); 50 setViewer(new CheckboxTableViewer(table)); 51 getViewer().setContentProvider(new ArrayContentProvider()); 52 getViewer().setLabelProvider(new LabelProvider()); 53 getViewer().addCheckStateListener(this); 54 } 55 56 public void checkStateChanged(CheckStateChangedEvent event){ 57 SootAttributesHandler handler = SootPlugin.getDefault().getManager().getAttributesHandlerForFile(getFile()); 58 59 ArrayList toShow = new ArrayList(); 60 for (int i = 0; i < getViewer().getCheckedElements().length; i++){ 61 toShow.add(getViewer().getCheckedElements()[i]); 62 } 63 handler.setTypesToShow(toShow); 64 handler.setShowAllTypes(false); 65 handler.setUpdate(true); 67 final IEditorPart activeEdPart = SootPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); 68 SootPlugin.getDefault().getPartManager().updatePart(activeEdPart); 69 70 } 71 72 75 public void setFocus() { 76 } 77 78 81 public CheckboxTableViewer getViewer() { 82 return viewer; 83 } 84 85 88 public void setViewer(CheckboxTableViewer viewer) { 89 this.viewer = viewer; 90 } 91 92 95 public ArrayList getInputTypes() { 96 return inputTypes; 97 } 98 99 102 public void setInputTypes(ArrayList list) { 103 inputTypes = list; 104 getViewer().setInput(inputTypes); 105 if (isAllTypesChecked()){ 106 getViewer().setAllChecked(true); 107 } 108 else { 109 getViewer().setAllChecked(false); 110 getViewer().setCheckedElements(getTypesChecked().toArray()); 111 } 112 } 113 114 115 118 public boolean isAllTypesChecked() { 119 return allTypesChecked; 120 } 121 122 125 public ArrayList getTypesChecked() { 126 return typesChecked; 127 } 128 129 132 public void setAllTypesChecked(boolean b) { 133 allTypesChecked = b; 134 } 135 136 139 public void setTypesChecked(ArrayList list) { 140 typesChecked = list; 141 } 142 143 146 public IFile getFile() { 147 return file; 148 } 149 150 153 public void setFile(IFile file) { 154 this.file = file; 155 } 156 157 } 158 | Popular Tags |