package org.reldb.dbrowser.ui.html;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.reldb.dbrowser.ui.preferences.PreferencePageCmd;
import org.reldb.dbrowser.ui.preferences.Preferences;
public class BrowserManager implements HtmlBrowser {
private HtmlBrowser browser = null;
@Override
public boolean createWidget(Composite parent) {
if (browser != null)
return true;
return changeWidget(parent);
}
public boolean changeWidget(Composite parent) {
String content = null;
if (browser != null) {
content = browser.getContent();
browser.dispose();
}
if (!Preferences.getPreferenceBoolean(PreferencePageCmd.CMD_BROWSER_SWING)) {
browser = new BrowserNative();
if (browser.createWidget(parent)) {
if (content != null)
browser.setContent(content);
return true;
} else
System.out.println("BrowserManager: Native browser is not available on this platform.");
}
browser = new BrowserSwing();
browser.createWidget(parent);
if (content != null)
browser.setContent(content);
System.out.println("BrowserManager: Using built-in (limited) browser.");
return true;
}
@Override
public void dispose() {
browser.dispose();
}
@Override
public void clear() {
browser.clear();
}
@Override
public void appendHtml(String s) {
browser.appendHtml(s);
}
@Override
public void scrollToBottom() {
browser.scrollToBottom();
}
@Override
public Control getWidget() {
return browser.getWidget();
}
@Override
public String getText() {
return browser.getText();
}
@Override
public String getSelectedText() {
return browser.getSelectedText();
}
@Override
public boolean isSelectedTextSupported() {
return browser.isSelectedTextSupported();
}
@Override
public Style getStyle() {
return browser.getStyle();
}
@Override
public void setContent(String content) {
browser.setContent(content);
}
@Override
public String getContent() {
return browser.getContent();
}
}