blob: d66cc00d01c63864c1eec32c5fd422d4a9890132 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Pierre Allard,
* Regent L'Archeveque,
* Olivier L. Larouche - initial API and implementation
*
* SPDX-License-Identifier: EPL-1.0
*******************************************************************************/
package org.eclipse.apogy.core.topology.ui.composites;
import org.eclipse.apogy.core.ApogySystem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
public class ApogySystemEditingComposite extends Composite {
private ApogySystem apogySystem;
private final ApogySystemFileSelectionComposite apogySystemFileSelectionComposite;
private final ApogySystemDetailsComposite apogySystemDetailsComposite;
public ApogySystemEditingComposite(Composite parent, int style) {
super(parent, style);
setLayout(new GridLayout(1, false));
this.apogySystemFileSelectionComposite = new ApogySystemFileSelectionComposite(this, SWT.NONE) {
@Override
protected void apogySystemOpened(ApogySystem newApogySystem) {
setApogySystem(newApogySystem);
}
@Override
protected void apogySystemPathSet(String newApogySystemPath) {
ApogySystemEditingComposite.this.apogySystemPathSet(newApogySystemPath);
}
@Override
protected void setFileIsDirty(boolean dirty) {
ApogySystemEditingComposite.this.setFileIsDirty(dirty);
}
};
GridData gd_apogySystemFileSelectionComposite = new GridData(SWT.FILL, SWT.TOP, true, false);
this.apogySystemFileSelectionComposite.setLayoutData(gd_apogySystemFileSelectionComposite);
this.apogySystemDetailsComposite = new ApogySystemDetailsComposite(this, SWT.NONE);
GridData gd_apogySystemDetailsComposite = new GridData(SWT.FILL, SWT.TOP, true, false);
this.apogySystemDetailsComposite.setLayoutData(gd_apogySystemDetailsComposite);
}
public ApogySystem getApogySystem() {
return this.apogySystem;
}
public void setApogySystem(final ApogySystem apogySystem) {
this.apogySystem = apogySystem;
getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
if (ApogySystemEditingComposite.this.apogySystemDetailsComposite != null
&& !ApogySystemEditingComposite.this.apogySystemDetailsComposite.isDisposed()) {
ApogySystemEditingComposite.this.apogySystemDetailsComposite.setApogySystem(apogySystem);
}
}
});
}
public void save() throws Exception {
this.apogySystemFileSelectionComposite.save();
}
/**
* @param dirty
*/
protected void setFileIsDirty(boolean dirty) {
}
protected void apogySystemPathSet(String newApogySystemPath) {
}
}