/** */ protected ICSSModel createModel(boolean addListener) { if (!isValidAttribute()) { return null; } if (!addListener) return super.createModel(false); ICSSModel model = super.createModel(); IStructuredDocument structuredDocument = model.getStructuredDocument(); if (structuredDocument == null) return null; structuredDocument.addDocumentChangedListener(this); return model; }
private void setModel(IStructuredModel structuredModel) { if (fModel == structuredModel) return; if (fModel != null) { fModel.removeModelStateListener(fInternalModelStateListener); // IStructuredDocument structuredDocument = fModel.getStructuredDocument(); if (structuredDocument != null) { structuredDocument.removeDocumentListener(fInternalDocumentListener); structuredDocument.removeDocumentAboutToChangeListener(fInternalStructuredDocumentAboutToChange); structuredDocument.removeDocumentChangedListener(fInternalStructuredDocumentListener); } } fModel = structuredModel; if (fModel != null) { fModel.addModelStateListener(fInternalModelStateListener); // IStructuredDocument structuredDocument = fModel.getStructuredDocument(); if (structuredDocument != null) { structuredDocument.addDocumentListener(fInternalDocumentListener); structuredDocument.addDocumentAboutToChangeListener(fInternalStructuredDocumentAboutToChange); structuredDocument.addDocumentChangedListener(fInternalStructuredDocumentListener); } } } }
/** */ public ICSSModel getModel() { ICSSModel model = getExistingModel(); if (model == null && isModelNecessary()) { model = createModel(); if (model == null) return null; IStructuredDocument structuredDocument = model.getStructuredDocument(); if (structuredDocument == null) return null; RegionParser parser = structuredDocument.getParser(); if (parser instanceof CSSSourceParser) { ((CSSSourceParser)parser).setParserMode(CSSSourceParser.MODE_DECLARATION); } else { return null; } structuredDocument.addDocumentChangedListener(this); setModel(model); // need to set before valueChanged() valueChanged(); } if (model != null && !isModelNecessary()) { model = null; valueChanged(); } return model; }
if (structuredDocument == null) return null; structuredDocument.addDocumentChangedListener(this);