package org.jbpm.ui.sync;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.forms.HyperlinkGroup;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.jbpm.ui.DesignerLogger;
import org.jbpm.ui.dialog.ConnectionSettingsDialog;
import org.jbpm.ui.resource.Messages;
public class SyncUIHelper {
private static HyperlinkGroup hyperlinkGroup = new HyperlinkGroup(Display.getCurrent());
public static Composite createHeader(Composite parent, final DataImporter importer) {
Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout(2, true));
Hyperlink editSettingsLink = createLink(composite, Messages.getString("button.ConnectionSettings"));
final Hyperlink syncItemsLink = createLink(composite, Messages.getString("button.Synchronize"));
editSettingsLink.addHyperlinkListener(new HyperlinkAdapter() {
@Override
public void linkActivated(HyperlinkEvent e) {
SyncSettingsWizardPage page = importer.createConnectionSettingsWizardPage();
SyncSettingsWizard wizard = new SyncSettingsWizard(page);
ConnectionSettingsDialog dialog = new ConnectionSettingsDialog(wizard);
dialog.open();
syncItemsLink.setEnabled(importer.isConfigured());
}
});
syncItemsLink.addHyperlinkListener(new HyperlinkAdapter() {
@Override
public void linkActivated(HyperlinkEvent e) {
try {
importer.synchronize();
} catch (Exception ex) {
DesignerLogger.logError(Messages.getString("error.Synchronize"), ex);
}
}
});
syncItemsLink.setEnabled(importer.isConfigured());
return composite;
}
private static Hyperlink createLink(Composite parent, String msg) {
Hyperlink link = new Hyperlink(parent, SWT.NONE);
link.setText(msg);
hyperlinkGroup.add(link);
return link;
}
}