use of org.eclipse.che.ide.api.parts.PartStackView.TabItem in project che by eclipse.
the class PartStackPresenter method setActivePart.
/** {@inheritDoc} */
@Override
public void setActivePart(@NotNull PartPresenter part) {
TabItem tab = getTabByPart(part);
if (tab == null) {
return;
}
activePart = part;
activeTab = tab;
if (state == State.MINIMIZED) {
state = State.NORMAL;
if (currentSize < MIN_PART_SIZE) {
currentSize = DEFAULT_PART_SIZE;
}
workBenchPartController.setSize(currentSize);
workBenchPartController.setMinSize(MIN_PART_SIZE);
workBenchPartController.setHidden(false);
} else if (state == State.COLLAPSED) {
// Ask the delegate to restore part stacks.
if (delegate != null) {
delegate.onRestore(this);
}
} else if (state == State.NORMAL) {
if (workBenchPartController.getSize() < MIN_PART_SIZE) {
workBenchPartController.setMinSize(MIN_PART_SIZE);
workBenchPartController.setSize(DEFAULT_PART_SIZE);
}
workBenchPartController.setHidden(false);
}
// Notify the part stack state has been changed.
Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
@Override
public void execute() {
eventBus.fireEvent(new PartStackStateChangedEvent(PartStackPresenter.this));
}
});
selectActiveTab(tab);
}
use of org.eclipse.che.ide.api.parts.PartStackView.TabItem in project che by eclipse.
the class EditorPartStackPresenter method addPart.
/** {@inheritDoc} */
@Override
public void addPart(@NotNull PartPresenter part) {
checkArgument(part instanceof AbstractEditorPresenter, "Can not add part " + part.getTitle() + " to editor part stack");
EditorPartPresenter editorPart = (AbstractEditorPresenter) part;
if (containsPart(editorPart)) {
setActivePart(editorPart);
return;
}
VirtualFile file = editorPart.getEditorInput().getFile();
checkArgument(file != null, "File doesn't provided");
addHandlers();
updateListClosedParts(file);
editorPart.addPropertyListener(propertyListener);
final EditorTab editorTab = tabItemFactory.createEditorPartButton(editorPart, this);
editorPart.addPropertyListener(new PropertyListener() {
@Override
public void propertyChanged(PartPresenter source, int propId) {
if (propId == EditorPartPresenter.PROP_INPUT && source instanceof EditorPartPresenter) {
editorTab.setReadOnlyMark(((EditorPartPresenter) source).getEditorInput().getFile().isReadOnly());
}
}
});
editorTab.setDelegate(this);
parts.put(editorTab, editorPart);
partsOrder.add(editorPart);
view.addTab(editorTab, editorPart);
TabItem tabItem = getTabByPart(editorPart);
if (tabItem != null) {
final EditorPaneMenuItem<TabItem> item = editorPaneMenuItemFactory.createMenuItem(tabItem);
item.setDelegate(paneMenuTabItemHandler);
editorPaneMenu.addItem(item);
items.put(item, tabItem);
}
if (editorPart instanceof EditorWithErrors) {
final EditorWithErrors presenter = ((EditorWithErrors) editorPart);
editorPart.addPropertyListener(new PropertyListener() {
@Override
public void propertyChanged(PartPresenter source, int propId) {
EditorState editorState = presenter.getErrorState();
editorTab.setErrorMark(ERROR.equals(editorState));
editorTab.setWarningMark(WARNING.equals(editorState));
}
});
}
view.selectTab(editorPart);
}
use of org.eclipse.che.ide.api.parts.PartStackView.TabItem in project che by eclipse.
the class EditorPartStackPresenter method getPartByPath.
@Nullable
public PartPresenter getPartByPath(Path path) {
for (TabItem tab : parts.keySet()) {
EditorTab editorTab = (EditorTab) tab;
Path currentPath = editorTab.getFile().getLocation();
if (currentPath.equals(path)) {
return parts.get(tab);
}
}
return null;
}
use of org.eclipse.che.ide.api.parts.PartStackView.TabItem in project che by eclipse.
the class EditorPartStackPresenter method getTabByPath.
@Nullable
@Override
public EditorTab getTabByPath(@NotNull Path path) {
for (TabItem tab : parts.keySet()) {
EditorTab editorTab = (EditorTab) tab;
Path currentPath = editorTab.getFile().getLocation();
if (currentPath.equals(path)) {
return editorTab;
}
}
return null;
}
use of org.eclipse.che.ide.api.parts.PartStackView.TabItem in project che by eclipse.
the class PartStackPresenter method addPart.
/** {@inheritDoc} */
@Override
public void addPart(@NotNull PartPresenter part, @Nullable Constraints constraint) {
if (containsPart(part)) {
TabItem tab = getTabByPart(part);
onTabClicked(tab);
return;
}
if (part instanceof BasePresenter) {
((BasePresenter) part).setPartStack(this);
}
part.addPropertyListener(propertyListener);
PartButton partButton = tabItemFactory.createPartButton(part.getTitle()).setTooltip(part.getTitleToolTip()).setIcon(part.getTitleImage());
partButton.setDelegate(this);
parts.put(partButton, part);
constraints.put(part, constraint);
view.addTab(partButton, part);
sortPartsOnView();
onRequestFocus();
}
Aggregations