use of org.eclipse.che.ide.api.parts.PropertyListener 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.PropertyListener in project che by eclipse.
the class RecipeEditorPanel method initializeEditor.
private void initializeEditor(@NotNull final VirtualFile file) {
FileType fileType = fileTypeRegistry.getFileTypeByFile(file);
editor = getEditor();
editor.activate();
editor.onOpen();
view.showEditor(editor);
// wait when editor is initialized
editor.addPropertyListener(new PropertyListener() {
@Override
public void propertyChanged(PartPresenter source, int propId) {
switch(propId) {
case PROP_INPUT:
view.showEditor(editor);
break;
case PROP_DIRTY:
if (validateUndoOperation()) {
setEnableSaveAndCancelButtons(true);
}
break;
default:
}
}
});
editor.init(new RecipeEditorInput(fileType, file), new OpenEditorCallbackImpl());
}
use of org.eclipse.che.ide.api.parts.PropertyListener in project che by eclipse.
the class FileWatcher method editorOpened.
public void editorOpened(final EditorPartPresenter editor) {
final PropertyListener propertyListener = new PropertyListener() {
@Override
public void propertyChanged(PartPresenter source, int propId) {
if (propId == EditorPartPresenter.PROP_DIRTY) {
if (!editor.isDirty()) {
reparseAllOpenedFiles();
//remove just saved editor
editor2reconcile.remove(editor);
}
}
}
};
editor.addPropertyListener(propertyListener);
}
use of org.eclipse.che.ide.api.parts.PropertyListener in project che by eclipse.
the class EditorAgentImpl method finalizeInit.
private void finalizeInit(final VirtualFile file, final OpenEditorCallback callback, final EditorPartPresenter editor, EditorProvider editorProvider) {
openedEditors.add(editor);
openedEditorsToProviders.put(editor, editorProvider.getId());
workspaceAgent.setActivePart(editor);
editor.addPropertyListener(new PropertyListener() {
@Override
public void propertyChanged(PartPresenter source, int propId) {
if (propId == EditorPartPresenter.PROP_INPUT) {
if (editor instanceof HasReadOnlyProperty) {
((HasReadOnlyProperty) editor).setReadOnly(file.isReadOnly());
}
if (editor instanceof TextEditor) {
editorContentSynchronizerProvider.get().trackEditor(editor);
}
callback.onEditorOpened(editor);
eventBus.fireEvent(new EditorOpenedEvent(file, editor));
}
}
});
}
Aggregations