Переименование пакетов в Eclipse

Если Вы используете x86 или x86_64, то imebra библиотека работает хорошо. Когда на x86_64 необходимо использовать-m32 спор с g ++ так, чтобы он скомпилировал как 32-разрядное. Однако Вы не будете в состоянии скомпилировать это на IA-64, поскольку-m32 аргумент не поддерживается.

http://imebra.com/

библиотека имеет dicom2jpeg программу, которая полезна как пример (но не показывает Вам, как считать пиксельные значения).

, Если Вы хотите считать отдельные пиксели, затем прочитайте эту страницу из руководства: http://imebra.com/documentation/html/quick_tour.html

31
задан MatrixFrog 31 August 2009 в 05:11
поделиться

4 ответа

По умолчанию пустые родительские пакеты скрыты в проводнике пакетов, если вы измените Фильтры ... в проводнике пакетов, чтобы снять флажок Пустые родительские пакеты (третий сверху на втором снимке экрана), вы увидите пустые пакеты.

package explorer filters

filters view
(источник: eclipse.org )

Затем вы можете переименовать пакет com и установить флажок Переименовать подпакеты , чтобы заставить все дочерние пакеты

rename package
(источник: eclipse.org )

Затем, когда вы закончите, повторно примените фильтр, чтобы снова скрыть все эти пустые пакеты.

55
ответ дан 27 November 2019 в 21:59
поделиться

Похоже, что текущий JDT API (Java Development Tool, часть, которая включает переименование пакетов) переименовывает только один пакет за раз (а не подпакеты)

См .:

При рефакторинге пакета, в котором есть подпакеты, JDT создает дочерние пакеты. опять же, вместо простого переименования родительской ошибки

, нам нужен API на IPackageFragment для переименования не только фрагмент, но также и все подпакеты.
Фактически, реализация переименовала бы папку с фрагментом пакета, а затем обновила бы объявления пакетов во всех содержащихся CU (включая те, что находятся в подпакетах)

Таким образом, на тот момент это было «по дизайну» (eclipse 3.5), но улучшение зарегистрировано и будет учтено в версии 3.6.

Примечание: "отсутствие функции" было отмечено с 2005 года!

Я тестировал новое иерархическое переименование пакетов и имел две исходные папки с такой же структурой пакета. Чтобы переименовать пакеты в обоих, мне пришлось сделать то же самое операция дважды.
Было бы неплохо получить подсказку и спросить, должно ли переименование пакета также применяется к другим исходным папкам.

6
ответ дан 27 November 2019 в 21:59
поделиться

Создайте файл в своем пакете com. Переименуйте его и отметьте «Переименовать подпакеты». Удалите файл.

4
ответ дан 27 November 2019 в 21:59
поделиться

Я попытался реализовать плагин для переименования родительских пакетов. Он добавляет элемент «Переименовать родительский пакет» в контекстное меню или может быть запущен с помощью 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
3
ответ дан 27 November 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: