Если Вы используете x86 или x86_64, то imebra библиотека работает хорошо. Когда на x86_64 необходимо использовать-m32 спор с g ++ так, чтобы он скомпилировал как 32-разрядное. Однако Вы не будете в состоянии скомпилировать это на IA-64, поскольку-m32 аргумент не поддерживается.
библиотека имеет dicom2jpeg программу, которая полезна как пример (но не показывает Вам, как считать пиксельные значения).
, Если Вы хотите считать отдельные пиксели, затем прочитайте эту страницу из руководства: http://imebra.com/documentation/html/quick_tour.html
По умолчанию пустые родительские пакеты скрыты в проводнике пакетов, если вы измените Фильтры ... в проводнике пакетов, чтобы снять флажок Пустые родительские пакеты (третий сверху на втором снимке экрана), вы увидите пустые пакеты.
(источник: eclipse.org )
Затем вы можете переименовать пакет com и установить флажок Переименовать подпакеты , чтобы заставить все дочерние пакеты
(источник: eclipse.org )
Затем, когда вы закончите, повторно примените фильтр, чтобы снова скрыть все эти пустые пакеты.
Похоже, что текущий JDT API (Java Development Tool, часть, которая включает переименование пакетов) переименовывает только один пакет за раз (а не подпакеты)
См .:
При рефакторинге пакета, в котором есть подпакеты, JDT создает дочерние пакеты. опять же, вместо простого переименования родительской ошибки
, нам нужен API на
IPackageFragment
для переименования не только фрагмент, но также и все подпакеты.
Фактически, реализация переименовала бы папку с фрагментом пакета, а затем обновила бы объявления пакетов во всех содержащихся CU (включая те, что находятся в подпакетах)
Таким образом, на тот момент это было «по дизайну» (eclipse 3.5), но улучшение зарегистрировано и будет учтено в версии 3.6.
Примечание: "отсутствие функции" было отмечено с 2005 года!
Я тестировал новое иерархическое переименование пакетов и имел две исходные папки с такой же структурой пакета. Чтобы переименовать пакеты в обоих, мне пришлось сделать то же самое операция дважды.
Было бы неплохо получить подсказку и спросить, должно ли переименование пакета также применяется к другим исходным папкам.
Создайте файл в своем пакете com. Переименуйте его и отметьте «Переименовать подпакеты». Удалите файл.
Я попытался реализовать плагин для переименования родительских пакетов. Он добавляет элемент «Переименовать родительский пакет» в контекстное меню или может быть запущен с помощью ctrl-7 .
Я не реализовал код для включения / отключения элемента меню на основе активный выбор (есть какое-то состояние гонки, из-за которого мастер перестает отменять). Если активный выбор - это пакет с родительским пакетом, он выберет этот родительский и запустит мастер переименования. Вам все равно нужно будет выбрать «переименовать подпакеты» вручную.
Вот код плагина:
package name.seller.rich.packagerenamer.actions;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.actions.SelectionConverter;
import org.eclipse.jdt.ui.actions.RenameAction;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
public class RenameParentPackageHandler extends AbstractHandler {
public RenameParentPackageHandler() {
}
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
try {
IStructuredSelection selection = SelectionConverter
.getStructuredSelection(activePart);
IPackageFragment parentPackage = getParentPackage(selection);
if (parentPackage != null && parentPackage.exists()) {
RenameAction action = new RenameAction(HandlerUtil
.getActiveSite(event));
StructuredSelection parentSelection = new StructuredSelection(
parentPackage);
action.run(parentSelection);
}
} catch (JavaModelException e) {
logException(e);
}
return null;
}
private IPackageFragment getParentPackage(IStructuredSelection selection) {
IJavaElement[] elements = SelectionConverter.getElements(selection);
if (elements != null && elements.length > 0) {
if (elements[0] != null && elements[0] instanceof IPackageFragment) {
IPackageFragment fragment = (IPackageFragment) elements[0];
String packageName = fragment.getElementName();
int lastDotIndex = packageName.lastIndexOf(".");
if (lastDotIndex != -1) {
String parentPackageName = packageName.substring(0,
lastDotIndex);
IJavaElement parent = fragment.getParent();
if (parent != null
&& parent instanceof IPackageFragmentRoot) {
return ((IPackageFragmentRoot) parent)
.getPackageFragment(parentPackageName);
}
}
}
}
return null;
}
protected void logException(Exception e) {
JavaPlugin.log(e);
}
}
Вот plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
<extension
point="org.eclipse.ui.commands">
<command
name="Rename parent package"
categoryId="name.seller.rich.packagerenamer.category"
id="name.seller.rich.packagerenamer.renameParentPackage">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
commandId="name.seller.rich.packagerenamer.renameParentPackage"
class="name.seller.rich.packagerenamer.actions.RenameParentPackageHandler">
</handler>
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
commandId="name.seller.rich.packagerenamer.renameParentPackage"
contextId="org.eclipse.ui.contexts.window"
sequence="M1+7"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
</key>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:org.eclipse.ui.popup.any?after=additions">
<command
commandId="name.seller.rich.packagerenamer.renameParentPackage"
mnemonic="K">
</command>
</menuContribution>
</extension>
</plugin>
И манифест:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Classwizard
Bundle-SymbolicName: name.seller.rich.packagerenamer; singleton:=true
Bundle-Version: 1.0.0
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.jdt.core;bundle-version="3.5.0",
org.eclipse.core.expressions;bundle-version="3.4.100",
org.eclipse.jface.text;bundle-version="3.5.0",
org.eclipse.jdt.ui;bundle-version="3.5.0",
org.eclipse.ui.ide;bundle-version="3.5.0",
org.eclipse.ui.editors;bundle-version="3.5.0",
org.eclipse.core.resources;bundle-version="3.5.0"
Eclipse-AutoStart: true
Bundle-RequiredExecutionEnvironment: JavaSE-1.6