Skip to content

Commit

Permalink
reorganize io
Browse files Browse the repository at this point in the history
  • Loading branch information
ekatrukha committed Dec 24, 2024
1 parent 199790d commit 20e2ab9
Show file tree
Hide file tree
Showing 15 changed files with 129 additions and 31 deletions.
48 changes: 39 additions & 9 deletions src/main/java/bigtrace/BigTraceControlPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import bigtrace.gui.RangeSliderTF;
import bigtrace.gui.RenderMethodPanel;
import bigtrace.gui.VoxelSizePanel;
import bigtrace.io.ViewsIO;
import bigtrace.measure.RoiMeasure3D;
import bigtrace.rois.Box3D;
import bigtrace.rois.ColorUserSettings;
Expand All @@ -48,6 +49,8 @@
import bigtrace.volume.ExtractClip;
import bvvpg.vistools.BvvStackSource;
import ij.Prefs;
import ij.io.SaveDialog;

import net.imglib2.FinalInterval;
import net.imglib2.FinalRealInterval;
import net.imglib2.realtransform.AffineTransform3D;
Expand All @@ -57,8 +60,7 @@


public class BigTraceControlPanel< T extends RealType< T > & NativeType< T > > extends JPanel
//public class BigTraceControlPanel extends JFrame
implements ActionListener,
implements ActionListener,
PropertyChangeListener {


Expand All @@ -84,6 +86,9 @@ public class BigTraceControlPanel< T extends RealType< T > & NativeType< T > > e

public JFrame finFrame;
public JProgressBar progressBar;

JButton butSaveView;
JButton butLoadView;
JButton butSettings;

public ColorUserSettings selectColors = new ColorUserSettings();
Expand Down Expand Up @@ -308,17 +313,20 @@ public void itemStateChanged(ItemEvent e) {
//SAVE AND LOAD BUTTONS
icon_path = bigtrace.BigTrace.class.getResource("/icons/save.png");
tabIcon = new ImageIcon(icon_path);
JButton butSave = new JButton(tabIcon);
butSave.setToolTipText( "Save image view" );
c.gridx++;
panView.add(butSave,c);
butSaveView = new JButton(tabIcon);
butSaveView.setToolTipText( "Save image view" );
butSaveView.addActionListener(this);
c.gridx++;
panView.add(butSaveView,c);

icon_path = bigtrace.BigTrace.class.getResource("/icons/load.png");
tabIcon = new ImageIcon(icon_path);
JButton butLoad = new JButton(tabIcon);
butLoad.setToolTipText( "Load image view" );
butLoadView = new JButton(tabIcon);
butLoadView.setToolTipText( "Load image view" );
butLoadView.addActionListener(this);

c.gridx++;
panView.add(butLoad,c);
panView.add(butLoadView,c);

//SETTINGS
icon_path = bigtrace.BigTrace.class.getResource("/icons/settings.png");
Expand Down Expand Up @@ -408,6 +416,21 @@ public void itemStateChanged(ItemEvent e) {
return panNavigation;

}

public void dialSaveView()
{
String filename;

filename = bt.btData.sFileNameFullImg + "_btview";
SaveDialog sd = new SaveDialog("Save ROIs ", filename, ".csv");
String path = sd.getDirectory();
if (path == null)
return;
filename = path + sd.getFileName();
ViewsIO.saveView( bt, filename );
}


public void dialSettings()
{
JPanel pViewSettings = new JPanel();
Expand Down Expand Up @@ -583,6 +606,7 @@ public void dialSettings()
bt.repaintBVV();
}
}

public void extractClippedView()
{

Expand Down Expand Up @@ -867,6 +891,12 @@ public void setRenderMethod(int nRenderType)
@Override
public void actionPerformed(ActionEvent e) {

//SAVE VIEW
if(e.getSource() == butSaveView)
{
dialSaveView();
}

//SETTINGS
if(e.getSource() == butSettings)
{
Expand Down
10 changes: 6 additions & 4 deletions src/main/java/bigtrace/animation/AnimationPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@
import bigtrace.BigTrace;
import bigtrace.gui.NumberField;
import bigtrace.gui.PanelTitle;
import bigtrace.io.StorylineLoad;
import bigtrace.io.StorylineSave;
import bigtrace.rois.Roi3D;
import ij.Prefs;
import ij.io.OpenDialog;
Expand Down Expand Up @@ -82,7 +84,7 @@ public class AnimationPanel < T extends RealType< T > & NativeType< T > > extend

int nChangeTotalTimeMode = (int)Prefs.get("BigTrace.nChangeTotalTimeMode", ANIMTIME_END);

final KeyFrameAnimation<T> kfAnim;
final public KeyFrameAnimation<T> kfAnim;

final JToggleButton butUpdateSlider;

Expand Down Expand Up @@ -731,7 +733,7 @@ int getTickTime()
}

/** updates timeline display **/
void updateKeyMarks()
public void updateKeyMarks()
{
ArrayList<Float> keyPoints = new ArrayList<>();
for (int i=0;i<listModel.size();i++)
Expand All @@ -743,7 +745,7 @@ void updateKeyMarks()
}

/** updates numbering of keyframes **/
void updateKeyIndices()
public void updateKeyIndices()
{
for(int i=0;i<listModel.size(); i++)
{
Expand Down Expand Up @@ -832,7 +834,7 @@ protected void paintComponent(Graphics g)
}
}

void updateScene()
public void updateScene()
{
if(listModel.size()>1)
{
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/bigtrace/animation/KeyFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ public void setMovieTimePoint(float fMovieTimePoint_)
return;
}

public float getMovieTimePoint()
{
return fMovieTimePoint;
}

public KeyFrame duplicate()
{
final KeyFrame out = new KeyFrame(scene, fMovieTimePoint);
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/bigtrace/animation/KeyFrameAnimation.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class KeyFrameAnimation < T extends RealType< T > & NativeType< T > >
final BigTrace<T> bt;
int nTotalTime;

final DefaultListModel<KeyFrame> keyFrames;
final public DefaultListModel<KeyFrame> keyFrames;
final ArrayList<AnisotropicTransformAnimator3D> viewAnimate = new ArrayList<>();
final ArrayList<Float> timeIntervals = new ArrayList<>();
final ArrayList<KeyFrame> fullList = new ArrayList<>();
Expand Down Expand Up @@ -44,7 +44,7 @@ public int getTotalTime()
return nTotalTime;
}

void updateTransitionTimeline()
public void updateTransitionTimeline()
{
timeIntervals.clear();
viewAnimate.clear();
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/bigtrace/animation/UnCoilAnimation.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import bigtrace.BigTraceData;
import bigtrace.geometry.Pipe3D;
import bigtrace.geometry.Plane3D;
import bigtrace.io.UnCoilHDF5Saver;
import bigtrace.rois.AbstractCurve3D;
import bigtrace.rois.LineTrace3D;
import bigtrace.rois.Roi3D;
Expand All @@ -65,7 +66,7 @@ public class UnCoilAnimation < T extends RealType< T > & NativeType< T > > exten
public int nUnCoilTask = 0;

/** interval containing all ROIs **/
FinalInterval unionInterval;
public FinalInterval unionInterval;

/** plugin instance **/
BigTrace<T> bt;
Expand All @@ -85,7 +86,7 @@ public class UnCoilAnimation < T extends RealType< T > & NativeType< T > > exten
ArrayList <AbstractCurve3D> allRois;

/** all intervals for all ROIs **/
ArrayList <FinalInterval> allIntervals;
public ArrayList <FinalInterval> allIntervals;

double [] finalOrientation = null;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bigtrace.rois;
package bigtrace.io;

import java.awt.Color;
import java.io.FileInputStream;
Expand All @@ -13,6 +13,8 @@
import bigtrace.BigTrace;
import bigtrace.BigTraceBGWorker;
import bigtrace.BigTraceData;
import bigtrace.rois.Point3D;
import bigtrace.rois.Roi3D;
import ij.IJ;
import net.imglib2.RealPoint;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bigtrace.rois;
package bigtrace.io;

import java.awt.Color;
import java.io.BufferedReader;
Expand All @@ -13,6 +13,13 @@
import bigtrace.BigTrace;
import bigtrace.BigTraceBGWorker;
import bigtrace.BigTraceData;
import bigtrace.rois.CrossSection3D;
import bigtrace.rois.LineTrace3D;
import bigtrace.rois.Point3D;
import bigtrace.rois.PolyLine3D;
import bigtrace.rois.Roi3D;
import bigtrace.rois.Roi3DGroup;
import bigtrace.rois.Roi3DGroupManager;

import net.imglib2.RealPoint;
import net.imglib2.type.NativeType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bigtrace.rois;
package bigtrace.io;

import java.io.File;
import java.io.FileWriter;
Expand All @@ -11,6 +11,7 @@
import bigtrace.BigTrace;
import bigtrace.BigTraceBGWorker;
import bigtrace.BigTraceData;
import bigtrace.rois.Roi3DGroupManager;
import ij.IJ;
import net.imglib2.type.NativeType;
import net.imglib2.type.numeric.RealType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bigtrace.animation;
package bigtrace.io;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
Expand All @@ -12,13 +12,17 @@

import bigtrace.BigTrace;
import bigtrace.BigTraceData;
import bigtrace.animation.AnimationPanel;
import bigtrace.animation.KeyFrame;
import bigtrace.animation.KeyFrameAnimation;
import bigtrace.animation.Scene;


public class StorylineLoad < T extends RealType< T > & NativeType< T > >
{

/** plugin instance **/
BigTrace<T> bt;
final BigTrace<T> bt;

final AnimationPanel< T > aPanel;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bigtrace.animation;
package bigtrace.io;

import java.io.File;
import java.io.FileWriter;
Expand All @@ -11,13 +11,15 @@

import bigtrace.BigTrace;
import bigtrace.BigTraceData;
import bigtrace.animation.AnimationPanel;
import bigtrace.animation.KeyFrame;
import ij.IJ;

public class StorylineSave < T extends RealType< T > & NativeType< T > >
{

/** plugin instance **/
BigTrace<T> bt;
final BigTrace<T> bt;
final AnimationPanel< T > aPanel;

public StorylineSave(final BigTrace<T> bt_, AnimationPanel< T > aPanel_)
Expand All @@ -36,16 +38,16 @@ public void saveAnimation(String sFilename)
symbols.setDecimalSeparator('.');
DecimalFormat df3 = new DecimalFormat ("#.#####", symbols);
writer.write("BigTrace_StoryLine,version," + BigTraceData.sVersion + "\n");
writer.write("TotalTime," + Integer.toString(aPanel.kfAnim.nTotalTime) + "\n");
writer.write("TotalTime," + Integer.toString(aPanel.kfAnim.getTotalTime()) + "\n");
final int nTotKeyFramesN = aPanel.kfAnim.keyFrames.size();
writer.write("KeyFrameNumber," + Integer.toString(nTotKeyFramesN) + "\n");
for(int nKF=0; nKF < nTotKeyFramesN; nKF++)
{
KeyFrame currKF = aPanel.kfAnim.keyFrames.get( nKF );
writer.write("KeyFrame,"+Integer.toString(nKF+1)+"\n");
writer.write("KeyFrameName,"+currKF.getName()+"\n");
writer.write("KeyFrameTime," + df3.format(currKF.fMovieTimePoint) + "\n");
currKF.scene.save( writer );
writer.write("KeyFrameTime," + df3.format(currKF.getMovieTimePoint()) + "\n");
currKF.getScene().save( writer );

}
writer.write("End of BigTrace Story Line\n");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bigtrace.animation;
package bigtrace.io;

import net.imglib2.Dimensions;
import net.imglib2.FinalDimensions;
Expand All @@ -15,6 +15,7 @@

import bigtrace.BigTrace;
import bigtrace.BigTraceData;
import bigtrace.animation.UnCoilAnimation;
import mpicbg.spim.data.generic.sequence.BasicImgLoader;
import mpicbg.spim.data.generic.sequence.BasicSetupImgLoader;
import mpicbg.spim.data.generic.sequence.ImgLoaderHint;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bigtrace.animation;
package bigtrace.io;

import java.io.File;
import java.util.ArrayList;
Expand Down Expand Up @@ -27,6 +27,7 @@
import bdv.spimdata.XmlIoSpimDataMinimal;
import bigtrace.BigTrace;
import bigtrace.BigTraceData;
import bigtrace.animation.UnCoilAnimation;
import mpicbg.spim.data.generic.sequence.BasicViewSetup;
import mpicbg.spim.data.registration.ViewRegistration;
import mpicbg.spim.data.registration.ViewRegistrations;
Expand Down
39 changes: 39 additions & 0 deletions src/main/java/bigtrace/io/ViewsIO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package bigtrace.io;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import net.imglib2.type.NativeType;
import net.imglib2.type.numeric.RealType;

import bigtrace.BigTrace;
import bigtrace.BigTraceData;
import ij.IJ;

public class ViewsIO
{

/** saving current view as csv **/
public static < T extends RealType< T > & NativeType< T > > void saveView(final BigTrace<T> bt, String sFilename)
{
bt.bInputLock = true;
bt.setLockMode(true);
try {
final File file = new File(sFilename);

try (FileWriter writer = new FileWriter(file))
{
writer.write("BigTrace_View,version," + BigTraceData.sVersion + "\n");
writer.write("End of BigTrace View\n");
writer.close();
}

bt.btPanel.progressBar.setString("saving view done.");
} catch (IOException e) {
IJ.log(e.getMessage());
//e.printStackTrace();
}
}

}
Loading

0 comments on commit 20e2ab9

Please sign in to comment.