Я создал две части в частичной загрузке. Все части используют тот же вклад uri. Мне нужно, чтобы третья часть говорила "Добавить новую часть" (или вкладку), когда она нажата, она должна динамически создавать новую часть и устраиваться после первых двух частей, а затем снова часть "Добавить новую часть" должна появиться на конец. Поэтому всякий раз, когда нажимается "Добавить новую часть", она должна создавать новую часть. Для части "Добавить новую часть" добавлен следующий код.
MPart part = partService.createPart("com.abc.xyz.project.partDescriptor.DynamicPart");
MPartStack stack = (MPartStack)modelService.find("com.abc.xyz.project.partstack.2", application);
stack.getChildren().add(part);
part.setLabel("New Dynamic Part");
part.setVisible(true);
part.setCloseable(true);
partService.showPart(part, PartState.ACTIVATE);
Может ли кто-нибудь предложить мне некоторые идеи?
заранее спасибо
Создайте "Добавить новую деталь" динамически, как в примере (пример для входной части):
MPartStack stack = (MPartStack) modelService.find("your.part.stack.id", application);
inputPart = MBasicFactory.INSTANCE.createInputPart();
inputPart.setContributionURI("bundleclass://your.plugin/your.class");
inputPart.setCloseable(isCloseable);
stack.getChildren().add(inputPart);
inputPart.setLabel("Add new part");
"bundleclass://your.plugin/your.class" - это ссылка на ваш класс для содержания вашей части. Это похоже на поле "URI класса" в редакторе фрагментов. Приведенный выше код добавляет новую вкладку в стек части, но не активирует часть, поэтому метод @Postconstruct в классе контента не вызывается. Когда пользователь нажимает на вкладку, вызывается метод @Postconstruct. Там вы можете снова создать новую часть.
Создайте дескриптор части в модели приложения, описывающей часть, которую вы хотите добавить.
Используйте EPartService
для создания части:
MPart part = partService.createPart(part descriptor id);
Добавьте созданную часть в MPartStack
определенную в вашей модели приложения, вы можете найти стек, используя EModelService
MPartStack stack = (MPartStack)modelService.find(stack id, application);
stack.getChildren().add(part);
Убедитесь, что вы Multiple
параметр " Multiple
в определении описания части, если вы хотите создать несколько частей из описания.
PartDescriptor
я должен настроить?