use of com.liferay.ide.core.model.IEditingModel in project liferay-ide by liferay.
the class InputContext method flushModel.
protected void flushModel(IDocument doc) {
boolean flushed = true;
if (fEditOperations.size() > 0) {
try {
MultiTextEdit edit = new MultiTextEdit();
if (isNewlineNeeded(doc)) {
insert(edit, new InsertEdit(doc.getLength(), TextUtilities.getDefaultLineDelimiter(doc)));
}
for (int i = 0; i < fEditOperations.size(); i++) {
insert(edit, (TextEdit) fEditOperations.get(i));
}
if (_fModel instanceof IEditingModel) {
((IEditingModel) _fModel).setStale(true);
}
edit.apply(doc);
fEditOperations.clear();
} catch (MalformedTreeException mte) {
LiferayUIPlugin.logError(mte);
flushed = false;
} catch (BadLocationException ble) {
LiferayUIPlugin.logError(ble);
flushed = false;
}
}
if (flushed && (_fModel instanceof IEditable)) {
((IEditable) _fModel).setDirty(false);
}
}
use of com.liferay.ide.core.model.IEditingModel in project liferay-ide by liferay.
the class InputContext method create.
protected void create() {
_fDocumentProvider = createDocumentProvider(_fEditorInput);
try {
_fDocumentProvider.connect(_fEditorInput);
_fModel = createModel(_fEditorInput);
if (_fModel instanceof IModelChangeProvider) {
_fModelListener = new IModelChangedListener() {
public void modelChanged(IModelChangedEvent e) {
if (e.getChangeType() != IModelChangedEvent.WORLD_CHANGED) {
if (!_fEditor.getLastDirtyState()) {
_fEditor.fireSaveNeeded(_fEditorInput, true);
}
IModelChangeProvider provider = e.getChangeProvider();
if (provider instanceof IEditingModel) {
if (((IEditingModel) provider).isDirty()) {
addTextEditOperation(fEditOperations, e);
}
}
}
}
};
((IModelChangeProvider) _fModel).addModelChangedListener(_fModelListener);
}
IAnnotationModel amodel = _fDocumentProvider.getAnnotationModel(_fEditorInput);
if (amodel != null) {
amodel.connect(_fDocumentProvider.getDocument(_fEditorInput));
}
_fElementListener = new ElementListener();
_fDocumentProvider.addElementStateListener(_fElementListener);
} catch (CoreException ce) {
LiferayUIPlugin.logError(ce);
}
}
Aggregations