use of org.vcell.util.ISize in project vcell by virtualcell.
the class ROIDataGenerator method getROIDataGeneratorDescription.
public String getROIDataGeneratorDescription(File userDirectory, SimulationJob simulationJob) throws Exception {
// DataAccessException, FileNotFoundException, MathException, IOException, DivideByZeroException, ExpressionException
Simulation simulation = simulationJob.getSimulation();
StringBuffer sb = new StringBuffer();
sb.append(ROI_GENERATOR_BEGIN + " " + name + "\n");
sb.append("VolumePoints " + volumePoints.length + "\n");
for (int i = 0; i < volumePoints.length; i++) {
sb.append(volumePoints[i] + " ");
if ((i + 1) % 20 == 0) {
sb.append("\n");
}
}
sb.append("\n");
if (membranePoints != null && membranePoints.length > 0) {
sb.append("MembranePoints " + membranePoints.length + "\n");
for (int i = 0; i < membranePoints.length; i++) {
sb.append(membranePoints[i] + " ");
if ((i + 1) % 20 == 0) {
sb.append("\n");
}
}
sb.append("\n");
}
sb.append("SampleImage " + numImgRegions + " " + zSlice + " " + fieldDataKey + " " + fieldFuncArguments.infix() + "\n");
sb.append("StoreEnabled " + bStoreEnabled + "\n");
// sample image field data file
FieldDataIdentifierSpec fdis = getSampleImageFieldData(simulation.getVersion().getOwner());
if (fdis == null) {
throw new DataAccessException("Can't find sample image in ROI data generator.");
}
String secondarySimDataDir = PropertyLoader.getProperty(PropertyLoader.secondarySimDataDirInternalProperty, null);
DataSetControllerImpl dsci = new DataSetControllerImpl(null, userDirectory.getParentFile(), secondarySimDataDir == null ? null : new File(secondarySimDataDir));
CartesianMesh origMesh = dsci.getMesh(fdis.getExternalDataIdentifier());
SimDataBlock simDataBlock = dsci.getSimDataBlock(null, fdis.getExternalDataIdentifier(), fdis.getFieldFuncArgs().getVariableName(), fdis.getFieldFuncArgs().getTime().evaluateConstant());
VariableType varType = fdis.getFieldFuncArgs().getVariableType();
VariableType dataVarType = simDataBlock.getVariableType();
if (!varType.equals(VariableType.UNKNOWN) && !varType.equals(dataVarType)) {
throw new IllegalArgumentException("field function variable type (" + varType.getTypeName() + ") doesn't match real variable type (" + dataVarType.getTypeName() + ")");
}
double[] origData = simDataBlock.getData();
String filename = SimulationJob.createSimulationJobID(Simulation.createSimulationID(simulation.getKey()), simulationJob.getJobIndex()) + SimulationData.getDefaultFieldDataFileNameForSimulation(fdis.getFieldFuncArgs());
File fdatFile = new File(userDirectory, filename);
DataSet.writeNew(fdatFile, new String[] { fdis.getFieldFuncArgs().getVariableName() }, new VariableType[] { simDataBlock.getVariableType() }, new ISize(origMesh.getSizeX(), origMesh.getSizeY(), origMesh.getSizeZ()), new double[][] { origData });
sb.append("SampleImageFile " + fdis.getFieldFuncArgs().getVariableName() + " " + fdis.getFieldFuncArgs().getTime().infix() + " " + fdatFile + "\n");
sb.append(ROI_GENERATOR_END);
return sb.toString();
}
use of org.vcell.util.ISize in project vcell by virtualcell.
the class FieldDataGUIPanel method copyMethod.
private void copyMethod(int copyMode) {
String delimiter = "";
if (copyMode == COPY_NL) {
delimiter = "\n";
} else if (copyMode == COPY_CRNL) {
delimiter = "\r\n";
} else if (copyMode == COPY_CSV) {
delimiter = ",";
} else if (copyMode == COPY_SPACE) {
delimiter = " ";
}
String copyString = "";
javax.swing.tree.TreePath selPath = getJTree1().getSelectionPath();
if (selPath != null) {
javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode) selPath.getLastPathComponent();
if (lastPathComponent.equals(getJTree1().getModel().getRoot())) {
int childCount = lastPathComponent.getChildCount();
for (int i = 0; i < childCount; i += 1) {
if (i != 0) {
copyString += delimiter;
}
copyString += ((FieldDataMainList) ((DefaultMutableTreeNode) lastPathComponent.getChildAt(i)).getUserObject()).externalDataIdentifier.getName();
}
} else if (lastPathComponent.getUserObject() instanceof FieldDataOriginList) {
Origin origin = ((FieldDataOriginList) lastPathComponent.getUserObject()).origin;
copyString = origin.getX() + delimiter + origin.getY() + delimiter + origin.getZ();
} else if (lastPathComponent.getUserObject() instanceof FieldDataExtentList) {
Extent extent = ((FieldDataExtentList) lastPathComponent.getUserObject()).extent;
copyString = extent.getX() + delimiter + extent.getY() + delimiter + extent.getZ();
} else if (lastPathComponent.getUserObject() instanceof FieldDataISizeList) {
ISize isize = ((FieldDataISizeList) lastPathComponent.getUserObject()).isize;
copyString = isize.getX() + delimiter + isize.getY() + delimiter + isize.getZ();
} else if (lastPathComponent.getUserObject() instanceof FieldDataTimeList) {
double[] times = ((FieldDataTimeList) lastPathComponent.getUserObject()).times;
for (int i = 0; i < times.length; i += 1) {
if (i != 0) {
copyString += delimiter;
}
copyString += times[i] + "";
}
} else if (lastPathComponent.getUserObject() instanceof FieldDataMainList) {
ExternalDataIdentifier extDataID = ((FieldDataMainList) lastPathComponent.getUserObject()).externalDataIdentifier;
copyString = extDataID.getName();
} else if (lastPathComponent.getUserObject() instanceof FieldDataVarList) {
DataIdentifier dataIdentifier = ((FieldDataVarList) lastPathComponent.getUserObject()).dataIdentifier;
copyString = dataIdentifier.getName();
} else if (lastPathComponent.getUserObject() instanceof FieldDataVarMainList) {
int childCount = lastPathComponent.getChildCount();
for (int i = 0; i < childCount; i += 1) {
if (i != 0) {
copyString += delimiter;
}
copyString += ((FieldDataVarList) ((DefaultMutableTreeNode) lastPathComponent.getChildAt(i)).getUserObject()).dataIdentifier.getName();
}
}
if (copyString.length() > 0) {
VCellTransferable.sendToClipboard(copyString);
}
}
}
use of org.vcell.util.ISize in project vcell by virtualcell.
the class VCellBasicCellRenderer method setComponentProperties.
/**
* Insert the method's description here.
* Creation date: (5/8/01 8:35:45 AM)
* @return javax.swing.Icon
* @param nodeUserObject java.lang.Object
*/
protected void setComponentProperties(JLabel component, VCImageInfo imageInfo) {
// component.setIcon(new ImageIcon(imageInfo.getBrowseGif().getGifEncodedData()));
Version version = imageInfo.getVersion();
String access = (version.getGroupAccess().getDescription());
component.setToolTipText("Image");
ISize size = imageInfo.getISize();
String description = null;
if (size.getZ() > 1) {
description = "3D image (" + size.getX() + "," + size.getY() + "," + size.getZ() + ")";
} else if (size.getY() > 1) {
description = "2D image (" + size.getX() + "," + size.getY() + ")";
} else {
description = "1D image (" + size.getX() + ")";
}
component.setText(access + " " + description + " \"" + version.getName() + "\"" + " (" + version.getDate() + ")");
}
use of org.vcell.util.ISize in project vcell by virtualcell.
the class ROIImagePanel method refreshROIImage.
public void refreshROIImage(ROI[] analysisROIs, Color[] rinROIColors, ROI cellROI, Color cellROIColor) /*,ROI bleachROI,Color bleachROIColor*/
{
ISize roiISize = cellROI.getISize();
final int ROISIZE_XYZ = roiISize.getXYZ();
BufferedImage roiImage = new BufferedImage(roiISize.getX(), roiISize.getY(), BufferedImage.TYPE_INT_RGB);
// fill ROIs
for (int i = 0; i < analysisROIs.length; i++) {
short[] roiPixels = analysisROIs[i].getPixelsXYZ();
for (int j = 0; j < ROISIZE_XYZ; j++) {
if (roiPixels[j] != 0) {
roiImage.setRGB(j % roiISize.getX(), j / roiISize.getX(), rinROIColors[i].getRGB());
}
}
}
// outline cell
short[] cellROIPixels = cellROI.getPixelsXYZ();
for (int y = 0; y < roiISize.getY(); y++) {
int yindex = y * roiISize.getX();
for (int x = 0; x < roiISize.getX(); x++) {
if (cellROIPixels[yindex + x] != 0) {
boolean bEdge = false;
if (x > 0) {
if (cellROIPixels[yindex + x - 1] == 0) {
bEdge = true;
}
}
if (x < (roiISize.getX() - 1)) {
if (cellROIPixels[yindex + x + 1] == 0) {
bEdge = true;
}
}
if (y > 0) {
if (cellROIPixels[yindex + x - roiISize.getX()] == 0) {
bEdge = true;
}
}
if (y < (roiISize.getY() - 1)) {
if (cellROIPixels[yindex + x + roiISize.getX()] == 0) {
bEdge = true;
}
}
if (bEdge) {
roiImage.setRGB(x, y, cellROIColor.getRGB());
}
}
}
}
Image scaledImage = roiImage;
int largestDimension = Math.max(roiISize.getX(), roiISize.getY());
// if(largestDimension > 320){
double scale = 280.0 / largestDimension;
scaledImage = roiImage.getScaledInstance((int) (roiISize.getX() * scale), (int) (roiISize.getY() * scale), Image.SCALE_REPLICATE);
// }
roiImageIcon = new ImageIcon(scaledImage);
roiImageJLabel.setIcon(roiImageIcon);
roiImageJLabel.setText(null);
}
use of org.vcell.util.ISize in project vcell by virtualcell.
the class GeometrySpec method updateSampledImage.
/**
* This method was created in VisualAge.
* @return cbit.image.VCImage
*/
void updateSampledImage(GeometryThumbnailImageFactory geometryThumbnailImageFactory) throws GeometryException, ImageException, ExpressionException {
if (getSampledImage().isDirty()) {
ISize sampleSize = getDefaultSampledImageSize();
getSampledImage().setValue(createSampledImage(sampleSize));
getThumbnailImage().setValue(createThumbnailImage(geometryThumbnailImageFactory));
}
}
Aggregations