use of fr.jmmc.aspro.model.oi.Target in project aspro by JMMC-OpenDev.
the class UVCoveragePanel method performOBAction.
// </editor-fold>//GEN-END:initComponents
/**
* Export Observing Block(s) (OB)
* @param evt action event
* @param mode export OB mode
* @param xml true to use new OB output
*/
public void performOBAction(final ActionEvent evt, final ExportOBMode mode, final boolean xml) {
// Use main observation to check instrument :
final ObservationSetting observation = om.getMainObservation();
if (!observation.isSingle()) {
MessagePane.showMessage("Aspro 2 can not generate an Observing Block when multiple configurations are selected !");
return;
}
if (xml) {
switch(mode) {
case ALL:
ExportOBXmlAction.getInstance().process(observation.getTargets());
break;
case SINGLE:
final Target target = getSelectedTarget();
if (target != null) {
ExportOBXmlAction.getInstance().process(Arrays.asList(new Target[] { target }));
}
break;
default:
}
} else {
// PoP up to indicate OBX export is deprecated:
DismissableMessagePane.show("Please consider using the a2p2 software instead" + "\nas this export feature is deprecated and will be removed soon (Fall 2019)\n\nSee https://github.com/JMMC-OpenDev/a2p2", Preferences.getInstance(), "DEPRECATED_OBX_WARNING");
final String insName = observation.getInstrumentConfiguration().getName();
if (AsproConstants.INS_AMBER.equals(insName) || AsproConstants.INS_MIDI.equals(insName) || insName.startsWith(AsproConstants.INS_PIONIER) || insName.startsWith(AsproConstants.INS_GRAVITY)) {
switch(mode) {
case ALL:
ExportOBVLTIAction.getInstance().process(observation.getTargets());
break;
case SINGLE:
final Target target = getSelectedTarget();
if (target != null) {
ExportOBVLTIAction.getInstance().process(Arrays.asList(new Target[] { target }));
}
break;
default:
}
} else if (insName.startsWith(AsproConstants.INS_VEGA)) {
ExportOBVegaAction.getInstance().process();
} else {
MessagePane.showMessage("Aspro 2 can not generate an Observing Block for this instrument [" + insName + "] !");
}
}
}
use of fr.jmmc.aspro.model.oi.Target in project aspro by JMMC-OpenDev.
the class BasicObservationForm method jButtonSkyCalcActionPerformed.
// </editor-fold>//GEN-END:initComponents
private void jButtonSkyCalcActionPerformed(java.awt.event.ActionEvent evt) {
// GEN-FIRST:event_jButtonSkyCalcActionPerformed
final Target selectedTarget = getSelectedTarget();
if (selectedTarget != null) {
final ObservationSetting observation = om.getMainObservation();
final InterferometerDescription interferometer = observation.getInterferometerConfiguration().getInterferometerConfiguration().getInterferometer();
final Site site = AstroSkyCalc.createSite(interferometer.getName(), interferometer.getPosSph());
final List<Target> displayTargets = om.getDisplayTargets();
final int size = displayTargets.size();
final String[] name = new String[size];
final String[] ra = new String[size];
final String[] dec = new String[size];
for (int i = 0; i < size; i++) {
final Target target = displayTargets.get(i);
name[i] = target.getName();
// convert RA/DEC in HH:MM:SS.sss or DD:MM:SS.sss :
final String[] raDec = AstroSkyCalcObservation.toString(target.getRADeg(), target.getDECDeg());
ra[i] = raDec[0];
dec[i] = raDec[1];
}
JSkyCalc.showJSkyCalc(site, name, ra, dec, selectedTarget.getName(), observation.getWhen().getDate());
}
}
use of fr.jmmc.aspro.model.oi.Target in project aspro by JMMC-OpenDev.
the class TargetModelForm method jButtonAddActionPerformed.
// GEN-LAST:event_jButtonRemoveActionPerformed
/**
* Process the Add action
* @param evt action event
*/
private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) {
// GEN-FIRST:event_jButtonAddActionPerformed
final ModelJTree tree = this.getTreeModels();
final DefaultMutableTreeNode currentNode = tree.getLastSelectedNode();
if (currentNode != null) {
DefaultMutableTreeNode targetNode = null;
Target target = null;
if (currentNode.getUserObject() instanceof Target) {
targetNode = currentNode;
target = (Target) currentNode.getUserObject();
} else if (currentNode.getUserObject() instanceof Model) {
final DefaultMutableTreeNode parentNode = tree.getParentNode(currentNode);
// Parent can be a target or a model :
if (parentNode.getUserObject() instanceof Target) {
targetNode = parentNode;
target = (Target) parentNode.getUserObject();
} else if (parentNode.getUserObject() instanceof Model) {
throw new UnsupportedOperationException("Not implemented !");
}
} else {
logger.warn("invalid selected node to perform the add operation = {}", currentNode);
}
if (target != null) {
final String type = (String) this.jComboBoxModelType.getSelectedItem();
// create a new model with defined names (model and parameters) :
final Model newModel = ModelManager.getInstance().newModel(type, target.getModels());
logger.debug("add model : {}", newModel);
// Add model to target :
target.getModels().add(newModel);
// force to refresh table model :
this.currentTarget = null;
// Add node and refresh tree :
tree.addNodeAndRefresh(targetNode, newModel);
}
}
}
use of fr.jmmc.aspro.model.oi.Target in project aspro by JMMC-OpenDev.
the class TargetModelForm method jButtonUpdateActionPerformed.
/**
* Process the Update action
* @param evt action event
*/
private void jButtonUpdateActionPerformed(java.awt.event.ActionEvent evt) {
// GEN-FIRST:event_jButtonUpdateActionPerformed
final ModelJTree tree = this.getTreeModels();
final DefaultMutableTreeNode currentNode = tree.getLastSelectedNode();
if (currentNode != null) {
if (currentNode.getUserObject() instanceof Model) {
final Model model = (Model) currentNode.getUserObject();
final String type = (String) this.jComboBoxModelType.getSelectedItem();
// check if the type changed :
if (model.getType().equals(type)) {
return;
}
// Parent can be a target or a model :
final DefaultMutableTreeNode parentNode = tree.getParentNode(currentNode);
if (parentNode.getUserObject() instanceof Target) {
final Target target = (Target) parentNode.getUserObject();
logger.debug("update model : {}", model);
// create a new model with defined names (model and parameters) replacing the selected model :
final Model newModel = ModelManager.getInstance().replaceModel(type, model, target.getModels());
logger.debug("new merged model : {}", newModel);
// Remove and add model at the right place :
int idx = target.getModels().indexOf(model);
target.getModels().remove(idx);
target.getModels().add(idx, newModel);
// force to refresh table model :
this.currentTarget = null;
// Replace node :
final DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(newModel);
idx = parentNode.getIndex(currentNode);
parentNode.remove(idx);
parentNode.insert(newNode, idx);
// fire node structure changed :
tree.fireNodeChanged(parentNode);
// Select the new node = model :
tree.selectPath(new TreePath(newNode.getPath()));
} else if (parentNode.getUserObject() instanceof Model) {
throw new UnsupportedOperationException("Not implemented !");
}
} else {
logger.warn("invalid selected node to perform the update operation = {}", currentNode);
}
}
}
use of fr.jmmc.aspro.model.oi.Target in project aspro by JMMC-OpenDev.
the class TargetModelForm method generateTree.
/**
* Generate the tree from the current edited list of targets
*/
private void generateTree() {
final ModelJTree tree = this.getTreeModels();
final DefaultMutableTreeNode rootNode = tree.getRootNode();
rootNode.removeAllChildren();
final List<Target> calTargets = this.editTargetUserInfos.getCalibrators();
final ArrayList<Target> sciTargets = new ArrayList<Target>(this.editTargets);
sciTargets.removeAll(calTargets);
// add first science targets :
for (Target target : sciTargets) {
final DefaultMutableTreeNode targetNode = tree.addNode(rootNode, target);
for (Model model : target.getModels()) {
generateModelNodes(tree, targetNode, model);
}
}
// add calibrators :
for (Target target : calTargets) {
final DefaultMutableTreeNode targetNode = tree.addNode(rootNode, target);
for (Model model : target.getModels()) {
generateModelNodes(tree, targetNode, model);
}
}
// fire node structure changed :
tree.fireNodeChanged(rootNode);
}
Aggregations