coverage view: initial

This commit is contained in:
anna
2012-01-04 11:37:42 +01:00
parent 458da14167
commit cc1d020d48
3 changed files with 45 additions and 29 deletions
@@ -45,6 +45,8 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.JavaDirectoryService;
import com.intellij.psi.PsiClass;
import javax.swing.*;
public class FileStructureDialogTest extends BaseProjectViewTestCase {
public void testFileStructureForClass() throws Exception {
final PsiClass psiClass = JavaDirectoryService.getInstance().getPackage(getPackageDirectory()).getClasses()[0];
@@ -64,7 +66,7 @@ public class FileStructureDialogTest extends BaseProjectViewTestCase {
}
});
final CommanderPanel panel = dialog.getPanel();
assertListsEqual(panel.getModel(), "Inner1\n" + "Inner2\n" + "__method():void\n" + "_myField1:int\n" + "_myField2:String\n");
assertListsEqual((ListModel)panel.getModel(), "Inner1\n" + "Inner2\n" + "__method():void\n" + "_myField1:int\n" + "_myField2:String\n");
}
finally {
if (dialog != null) dialog.close(0);
@@ -40,7 +40,7 @@ import java.util.List;
public abstract class AbstractListBuilder {
protected final Project myProject;
protected final JList myList;
private final Model myModel;
protected final Model myModel;
protected final AbstractTreeStructure myTreeStructure;
private final Comparator myComparator;
@@ -49,26 +49,28 @@ public abstract class AbstractListBuilder {
private AbstractTreeNode myCurrentParent = null;
private final AbstractTreeNode myShownRoot;
public abstract static class Model extends AbstractListModel {
public abstract void removeAllElements();
public interface Model {
void removeAllElements();
public abstract void addElement(final Object node);
void addElement(final Object node);
public abstract void replaceElements(final List newElements);
void replaceElements(final List newElements);
public abstract Object[] toArray();
Object[] toArray();
public abstract int indexOf(final Object o);
int indexOf(final Object o);
int getSize();
Object getElementAt(int idx);
}
AbstractListBuilder(
final Project project,
final JList list,
final Model model,
final AbstractTreeStructure treeStructure,
final Comparator comparator,
final boolean showRoot
) {
public AbstractListBuilder(final Project project,
final JList list,
final Model model,
final AbstractTreeStructure treeStructure,
final Comparator comparator,
final boolean showRoot) {
myProject = project;
myList = list;
myModel = model;
@@ -92,13 +94,13 @@ public abstract class AbstractListBuilder {
myParentTitle = parentTitle;
}
final void drillDown() {
final Object value = myList.getSelectedValue();
public final void drillDown() {
final Object value = getSelectedValue();
if (value instanceof AbstractTreeNode) {
try {
final AbstractTreeNode node = (AbstractTreeNode)value;
buildList(node);
ListScrollingUtil.ensureSelectionExists(myList);
ensureSelectionExist();
}
finally {
updateParentTitle();
@@ -109,7 +111,7 @@ public abstract class AbstractListBuilder {
}
}
final void goUp() {
public final void goUp() {
if (myCurrentParent == myShownRoot.getParent()) {
return;
}
@@ -128,8 +130,8 @@ public abstract class AbstractListBuilder {
final NodeDescriptor desc = (NodeDescriptor)myModel.getElementAt(i);
final Object elem = desc.getElement();
if (oldParent.equals(elem)) {
ListScrollingUtil.selectItem(myList, i);
break;
selectItem(i);
break;
}
}
}
@@ -139,6 +141,18 @@ public abstract class AbstractListBuilder {
}
}
protected Object getSelectedValue() {
return myList.getSelectedValue();
}
protected void selectItem(int i) {
ListScrollingUtil.selectItem(myList, i);
}
protected void ensureSelectionExist() {
ListScrollingUtil.ensureSelectionExists(myList);
}
public final void selectElement(final Object element, VirtualFile virtualFile) {
if (element == null) {
return;
@@ -158,13 +172,13 @@ public abstract class AbstractListBuilder {
if (desc.getValue() instanceof StructureViewTreeElement) {
StructureViewTreeElement treeelement = (StructureViewTreeElement)desc.getValue();
if (element.equals(treeelement.getValue())) {
ListScrollingUtil.selectItem(myList, i);
selectItem(i);
break;
}
}
else {
if (element.equals(desc.getValue())) {
ListScrollingUtil.selectItem(myList, i);
selectItem(i);
break;
}
}
@@ -181,7 +195,7 @@ public abstract class AbstractListBuilder {
AbstractTreeNode lastPathNode = goDownToElement(element, file);
if (lastPathNode == null) return;
buildList(lastPathNode);
ListScrollingUtil.ensureSelectionExists(myList);
ensureSelectionExist();
}
finally {
updateParentTitle();
@@ -195,7 +209,7 @@ public abstract class AbstractListBuilder {
public final void enterElement(final AbstractTreeNode element) {
try {
buildList(element);
ListScrollingUtil.ensureSelectionExists(myList);
ensureSelectionExist();
}
finally {
updateParentTitle();
@@ -297,7 +311,7 @@ public abstract class AbstractListBuilder {
}
}
private boolean shouldAddTopElement() {
protected boolean shouldAddTopElement() {
return !myShownRoot.equals(myCurrentParent);
}
@@ -602,7 +602,7 @@ public class CommanderPanel extends JPanel {
}
}
private static final class MyModel extends AbstractListBuilder.Model {
public static final class MyModel extends AbstractListModel implements AbstractListBuilder.Model{
final List myElements = new ArrayList();
public void removeAllElements() {
int index1 = myElements.size()-1;