public void outline() {
		if (this.rowsAll == null) {
			return; // early return
		}
		
		List<EditorRow> list = new ArrayList<EditorRow>();
		for (EditorRow er : this.rowsAll) {
			if (er instanceof PackageDefRow) {
				list.add(er);
			} else if (er instanceof ClassDefRow) {
				ClassDefRow cdr = (ClassDefRow) er;
				if (!cdr.isClosing()) {
					list.add(er);
				}
			} else if (er instanceof FieldDefRow) {
				list.add(er);
			} else if (er instanceof MethodDefRow) {
				MethodDefRow mdr = (MethodDefRow) er;
				if (!mdr.isClosing()) {
					list.add(er);
				}
			}
		}
		
		QuickOutlineDialog qod = new QuickOutlineDialog(MainWindow.getInstance(), list);
		qod.invoke();
		EditorRow er = qod.getSelected();
		if (er != null) {
			int index = this.rowsAll.indexOf(er);
			this.list.setSelectedIndex(index);
			this.list.ensureIndexIsVisible(index);
		}
	}