UI jQuery имеет некоторые классы для фиксации этого также (ui-help-clearfix
, делает что-то).
Технически <div style="clear:both;"></div>
лучше, чем <br style="clear:both;" />
, потому что у пустого отделения будет 0 высот, таким образом, просто очистив плавания. Эти <br />
оставит пространство. Я ничего не вижу неправильно с использованием <div/>
метод.
Следуя схеме, описанной в http://internna.blogspot.com/2007/11/java-5-retrieving-all-classes-from.html , можно делать это программно. Жаль, что Eclipse не может этого сделать, OOTB. Выполнение этого в коде Java позволяет выполнять фильтрацию без дополнительных затрат (например, ! (Klazz.isEnum ())
).
Метод в представлении иерархии, который строит дерево иерархии, находится в org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle
:
private ITypeHierarchy createTypeHierarchy(IJavaElement element, IProgressMonitor pm) throws JavaModelException {
if (element.getElementType() == IJavaElement.TYPE) {
IType type= (IType) element;
if (fIsSuperTypesOnly) {
return type.newSupertypeHierarchy(pm);
} else {
return type.newTypeHierarchy(pm);
}
} else {
Который использует org.eclipse.jdt.internal.core.SourceType класс
/**
* @see IType
*/
public ITypeHierarchy newTypeHierarchy(IJavaProject project, IProgressMonitor monitor) throws JavaModelException {
return newTypeHierarchy(project, DefaultWorkingCopyOwner.PRIMARY, monitor);
}
Итак, если вы можете получить IJavaElement
, вы можете проверить эти классы, чтобы эмулировать тот же результат.
Он использует org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation
Обновление: мой исходный ответ не сработает, так как нет контекста для структурированного выбора.
Этот ответ показывает, как добавить действие в контекстное меню и получить структурированный отбор. Вы можете изменить метод execute этого типа для обработки Иерархии (как предлагает VonC, +1), получения всех подтипов и установки содержимого в буфер обмена следующим образом:
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
try {
IStructuredSelection selection = SelectionConverter
.getStructuredSelection(activePart);
IJavaElement[] elements = SelectionConverter.getElements(selection);
if (elements != null && elements.length > 0) {
if (elements[0] != null && elements[0] instanceof IType) {
IType type = (IType)elements[0];
ITypeHierarchy hierarchy =
type.newTypeHierarchy(new NullProgressMonitor());
IType[] subTypes = hierarchy.getAllSubtypes(type);
StringBuffer buf = new StringBuffer();
for (IType iType : subTypes) {
buf.append(iType.getFullyQualifiedName()).append("\n");
}
Shell shell = HandlerUtil.getActiveShell(event);
Clipboard clipboard = new Clipboard(shell.getDisplay());
clipboard.setContents(
new Object[]{buf.toString()},
new Transfer[]{TextTransfer.getInstance()});
}
}
} catch (JavaModelException e) {
logException(e);
}
return null;
}
nWire для Java может предоставить вам полный список классов, которые расширяют данный класс или реализуют определенный интерфейс. Вы получите его в навигаторе nWire, который не поддерживает команду копирования.
Однако вы можете подключиться к базе данных nWire, которая является стандартной базой данных H2 и имеет очень простую структуру, и получить все необходимое с помощью простого запроса. Когда-нибудь в будущем мы представим возможности отчетности.
ИМХО, это потребует меньше усилий, и вы получите инструмент, который даст вам гораздо больше.