package com.yoursway.ide.webeditor;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.xml.sax.helpers.ParserFactory;
import com.yoursway.ide.application.model.Document;
import com.yoursway.ide.application.view.mainwindow.EditorWindow;
import com.yoursway.web.editing.BrowserAdditions;
public class DocumentContentWindowImpl implements DocumentContentWindow {
private final DocumentContentWindowModel model;
private final DocumentContentWindowCallback callback;
private Composite composite;
// private SourceViewer sourceViewer;
private Document document;
private BrowserAdditions ba;
public DocumentContentWindowImpl(DocumentContentWindowModel model,
DocumentContentWindowCallback callback, EditorWindow editor) {
if (model == null)
throw new NullPointerException("model is null");
if (callback == null)
throw new NullPointerException("callback is null");
if (editor == null)
throw new NullPointerException("editor is null");
this.model = model;
this.callback = callback;
composite = editor.composite();
createWidgets();
composite.getParent().layout();
}
private void createWidgets() {
composite.setLayout(new FillLayout());
// sourceViewer = new SourceViewer(composite, null, null, false, SWT.NONE);
// document = new Document();
// sourceViewer.setDocument(document);
ba = new BrowserAdditions(composite);
ba.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
new ControlUpdater(ba.getControl()) {
protected void updateControl() {
File file = model.file().getValue();
if (file == null)
throw new NullPointerException("file is null");
String data = model.data().getValue();
ba.setHtml(data);
composite.layout();
}
};
}
}