use of eu.esdihumboldt.hale.io.haleconnect.ui.HaleConnectLoginDialog in project hale by halestudio.
the class HaleConnectSource method createControls.
/**
* @see ImportSource#createControls(Composite)
*/
@Override
public void createControls(Composite parent) {
parent.setLayout(new GridLayout(3, false));
HaleConnectService hcs = HaleUI.getServiceProvider().getService(HaleConnectService.class);
/*
* Login status label
*/
loginStatusLabel = new Label(parent, SWT.NONE);
loginStatusLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
loginButton = new Button(parent, SWT.PUSH);
loginButton.setText("Login");
loginButton.addSelectionListener(new SelectionAdapter() {
/**
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
HaleConnectLoginDialog loginDialog = HaleConnectLoginHandler.createLoginDialog(Display.getCurrent().getActiveShell());
if (loginDialog.open() == Dialog.OK) {
HaleConnectLoginHandler.performLogin(loginDialog);
updateLoginStatus();
}
}
});
/*
* Project name text field
*/
projectName = new StringFieldEditor("project", "Project", parent) {
// the following methods are overridden so the button
// may appear on the same line
@Override
public int getNumberOfControls() {
return super.getNumberOfControls() + 1;
}
@Override
protected void doFillIntoGrid(Composite parent, int numColumns) {
super.doFillIntoGrid(parent, numColumns - 1);
}
};
projectName.setEmptyStringAllowed(false);
projectName.setErrorMessage("Please select a project before continuing.");
projectName.setPage(getPage());
projectName.getTextControl(parent).setEditable(false);
projectName.getTextControl(parent).addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
selectProject();
}
});
projectName.setPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(FieldEditor.IS_VALID)) {
getPage().setMessage(null);
updateState(false);
} else if (event.getProperty().equals(FieldEditor.VALUE)) {
getPage().setMessage(null);
updateState(false);
}
}
});
/*
* Select project button
*/
selectProjectButton = new Button(parent, SWT.PUSH);
selectProjectButton.setText("Select");
selectProjectButton.setToolTipText("Select project");
selectProjectButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
selectProjectButton.setEnabled(hcs.isLoggedIn());
selectProjectButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
selectProject();
}
});
/*
* Supported types
*/
supportedTypes = new HashSet<IContentType>();
if (getConfiguration().getContentType() != null) {
supportedTypes.add(getConfiguration().getContentType());
} else {
// set content types for file field
Collection<IOProviderDescriptor> factories = getConfiguration().getFactories();
for (IOProviderDescriptor factory : factories) {
supportedTypes.addAll(factory.getSupportedTypes());
}
}
// types combo
Composite group = new Composite(parent, SWT.NONE);
group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1));
group.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create());
// label
Label providerLabel = new Label(parent, SWT.NONE);
providerLabel.setText("Import as");
// create provider combo
ComboViewer providers = createProviders(parent);
providers.getControl().setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false, 2, 1));
updateLoginStatus();
// initial state update
updateState(true);
}
use of eu.esdihumboldt.hale.io.haleconnect.ui.HaleConnectLoginDialog in project hale by halestudio.
the class HaleConnectTarget method createControls.
@Override
public void createControls(Composite parent) {
getPage().setDescription("Please select a destination file for the export");
parent.setLayout(new GridLayout(3, false));
/*
* Login status label
*/
loginStatusLabel = new Label(parent, SWT.NONE);
loginStatusLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
loginButton = new Button(parent, SWT.PUSH);
loginButton.setText("Login");
loginButton.addSelectionListener(new SelectionAdapter() {
/**
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
HaleConnectLoginDialog loginDialog = HaleConnectLoginHandler.createLoginDialog(Display.getCurrent().getActiveShell());
if (loginDialog.open() == Dialog.OK) {
HaleConnectLoginHandler.performLogin(loginDialog);
updateState();
prefillTargetProject();
}
}
});
updateOrNewGroup = new Group(parent, SWT.NONE);
updateOrNewGroup.setText("Please choose whether you would like to...");
updateOrNewGroup.setLayout(new GridLayout(3, true));
updateOrNewGroup.setLayoutData(new GridData(SWT.LEAD, SWT.LEAD, true, false, 3, 1));
newProject = new Button(updateOrNewGroup, SWT.RADIO);
newProject.setText("create a new project on hale connect");
newProject.setSelection(true);
newProject.addSelectionListener(new SelectionAdapter() {
/**
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
updateState();
}
});
updateProject = new Button(updateOrNewGroup, SWT.RADIO);
updateProject.setText("update an existing project");
updateProject.addSelectionListener(new SelectionAdapter() {
/**
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
updateState();
}
});
controlsStackLayout = new StackLayout();
controlsStack = new Composite(parent, SWT.NONE);
controlsStack.setLayout(controlsStackLayout);
newProjectControls = new Composite(controlsStack, SWT.NONE);
newProjectControls.setLayout(new GridLayout(3, true));
GridData grid = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
newProjectControls.setLayoutData(grid);
ownershipGroup = new Composite(newProjectControls, SWT.NONE);
ownershipGroup.setLayout(new GridLayout(4, false));
ownershipGroup.setLayoutData(new GridData(SWT.LEAD, SWT.LEAD, false, false, 4, 1));
Label ownerLabel = new Label(ownershipGroup, SWT.NONE);
ownerLabel.setText("Who should own the uploaded project?");
ownerUser = new Button(ownershipGroup, SWT.RADIO);
ownerUser.setText("You");
ownerOrg = new Button(ownershipGroup, SWT.RADIO);
ownerOrg.setText("Your organisation");
orgSelector = new ComboViewer(ownershipGroup);
GridData orgSelectorGrid = new GridData(SWT.LEAD, SWT.LEAD, false, false);
orgSelectorGrid.widthHint = 175;
orgSelector.getCombo().setLayoutData(orgSelectorGrid);
orgSelector.setContentProvider(new IStructuredContentProvider() {
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
//
}
@Override
public void dispose() {
//
}
@Override
public Object[] getElements(Object inputElement) {
if (inputElement instanceof List<?>) {
List<?> elements = (List<?>) inputElement;
return elements.toArray();
} else if (inputElement instanceof Object[]) {
return (Object[]) inputElement;
}
return new Object[] {};
}
});
orgSelector.setLabelProvider(new LabelProvider() {
@Override
public String getText(Object element) {
if (element instanceof HaleConnectOrganisationInfo) {
return ((HaleConnectOrganisationInfo) element).getName();
}
return super.getText(element);
}
});
enableVersioning = new Button(newProjectControls, SWT.CHECK);
enableVersioning.setText("Enable versioning?");
enableVersioning.setLayoutData(new GridData(SWT.LEAD, SWT.LEAD, true, false, 3, 1));
publicAccess = new Button(newProjectControls, SWT.CHECK);
publicAccess.setText("Allow public access?");
publicAccess.setLayoutData(new GridData(SWT.LEAD, SWT.LEAD, true, false, 3, 1));
updateProjectControls = new Composite(controlsStack, SWT.NONE);
updateProjectControls.setVisible(false);
updateProjectControls.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
/*
* Project name text field
*/
projectName = new StringFieldEditor("project", "Project to update", updateProjectControls) {
// the following methods are overridden so the button
// may appear on the same line
@Override
public int getNumberOfControls() {
return super.getNumberOfControls() + 1;
}
@Override
protected void doFillIntoGrid(Composite parent, int numColumns) {
super.doFillIntoGrid(parent, numColumns - 1);
}
};
projectName.setEmptyStringAllowed(false);
projectName.setErrorMessage("Please select a project before continuing.");
projectName.setPage(getPage());
projectName.getTextControl(updateProjectControls).setEditable(false);
projectName.getTextControl(updateProjectControls).addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
selectProject();
}
});
projectName.setPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(FieldEditor.IS_VALID)) {
getPage().setMessage(null);
updateState();
} else if (event.getProperty().equals(FieldEditor.VALUE)) {
getPage().setMessage(null);
updateState();
}
}
});
/*
* Select project button
*/
selectProjectButton = new Button(updateProjectControls, SWT.PUSH);
selectProjectButton.setText("Select");
selectProjectButton.setToolTipText("Select project");
selectProjectButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
selectProjectButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
selectProject();
}
});
FontData currentFont = loginStatusLabel.getFont().getFontData()[0];
upstreamModifiedWarning = new Label(updateProjectControls, SWT.WRAP);
upstreamModifiedWarning.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false, 3, 1));
upstreamModifiedWarning.setFont(new Font(upstreamModifiedWarning.getDisplay(), new FontData(currentFont.getName(), currentFont.getHeight(), SWT.BOLD)));
upstreamModifiedWarning.setVisible(false);
Composite writerOptions = new Composite(parent, SWT.NONE);
writerOptions.setLayout(new RowLayout());
writerOptions.setLayoutData(new GridData(SWT.LEAD, SWT.LEAD, true, true, 3, 2));
includeWebResources = new Button(writerOptions, SWT.CHECK);
includeWebResources.setText("Include web resources?");
excludeData = new Button(writerOptions, SWT.CHECK);
excludeData.setText("Exclude source data?");
excludeData.setSelection(true);
excludeCachedResources = new Button(writerOptions, SWT.CHECK);
excludeCachedResources.setText("Use cached internal schema representation (required for big schema files)?");
excludeCachedResources.setSelection(true);
prefillTargetProject();
updateState();
}
Aggregations