package com.mobilesorcery.sdk.testing.internal.ui;
import org.eclipse.core.runtime.IPath;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import com.mobilesorcery.sdk.testing.project.MoSyncProjectTestManager;
import com.mobilesorcery.sdk.ui.MoSyncPropertyPage;
import com.mobilesorcery.sdk.ui.MosyncUIPlugin;
import com.mobilesorcery.sdk.ui.UIUtils;
public class TestingPropertyPage extends MoSyncPropertyPage {
public TestingPropertyPage() {
super(false);
}
private Text testFolders;
@Override
protected Control createContents(Composite parent) {
Composite main = new Composite(parent, SWT.NONE);
main.setLayout(new GridLayout(2, false));
Label testFoldersLabel = new Label(main, SWT.NONE);
testFoldersLabel.setText("&Folders containing tests:");
testFolders = new Text(main, SWT.BORDER | SWT.SINGLE);
testFolders.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
testFolders.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent event) {
validate();
}
});
setText(testFolders, getProject().getProperty(MoSyncProjectTestManager.TEST_RESOURCES));
Label spacer = new Label(main, SWT.NONE);
Label infoLabel = new Label(main, SWT.WRAP);
infoLabel.setText("These folders will by default be excluded from non-testing build configurations");
infoLabel.setFont(MosyncUIPlugin.getDefault().getFont(MosyncUIPlugin.FONT_INFO_TEXT));
validate();
return main;
}
@Override
protected void validate() {
setMessage(validatePathsField(null, "Folders containing tests", testFolders, new IPath[] { getProject().getWrappedProject().getLocation() }));
}
@Override
public boolean performOk() {
getProject().setProperty(MoSyncProjectTestManager.TEST_RESOURCES, testFolders.getText());
return true;
}
}