Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B
BigDataViewer_Core_Extension
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
BioinformaticDataCompression
BigDataViewer_Core_Extension
Commits
b81f24b0
Commit
b81f24b0
authored
7 years ago
by
Tobias Pietzsch
Browse files
Options
Downloads
Patches
Plain Diff
Revise BoxSelectionPanel to work with Box interface instead of ModifiableInterval
parent
b487b5af
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/main/java/bdv/tools/boundingbox/BoundingBoxDialog.java
+18
-9
18 additions, 9 deletions
src/main/java/bdv/tools/boundingbox/BoundingBoxDialog.java
src/main/java/bdv/tools/boundingbox/BoxSelectionPanel.java
+13
-25
13 additions, 25 deletions
src/main/java/bdv/tools/boundingbox/BoxSelectionPanel.java
with
31 additions
and
34 deletions
src/main/java/bdv/tools/boundingbox/BoundingBoxDialog.java
+
18
−
9
View file @
b81f24b0
...
@@ -46,6 +46,7 @@ import javax.swing.KeyStroke;
...
@@ -46,6 +46,7 @@ import javax.swing.KeyStroke;
import
javax.swing.WindowConstants
;
import
javax.swing.WindowConstants
;
import
bdv.tools.boundingbox.BoundingBoxOverlay.BoundingBoxOverlaySource
;
import
bdv.tools.boundingbox.BoundingBoxOverlay.BoundingBoxOverlaySource
;
import
bdv.tools.boundingbox.BoxSelectionPanel.Box
;
import
bdv.tools.brightness.RealARGBColorConverterSetup
;
import
bdv.tools.brightness.RealARGBColorConverterSetup
;
import
bdv.tools.brightness.SetupAssignments
;
import
bdv.tools.brightness.SetupAssignments
;
import
bdv.tools.transformation.TransformedSource
;
import
bdv.tools.transformation.TransformedSource
;
...
@@ -151,15 +152,23 @@ public class BoundingBoxDialog extends JDialog
...
@@ -151,15 +152,23 @@ public class BoundingBoxDialog extends JDialog
}
);
}
);
// create a JPanel with sliders to modify the bounding box interval (boxRealRandomAccessible.getInterval())
// create a JPanel with sliders to modify the bounding box interval (boxRealRandomAccessible.getInterval())
boxSelectionPanel
=
new
BoxSelectionPanel
(
interval
,
rangeInterval
);
boxSelectionPanel
=
new
BoxSelectionPanel
(
boxSelectionPanel
.
addSelectionUpdateListener
(
new
BoxSelectionPanel
.
SelectionUpdateListener
()
// listen for updates on the bbox to trigger repainting
new
Box
()
{
{
@Override
@Override
public
void
selectionUpdated
()
public
void
setInterval
(
final
Interval
i
)
{
{
viewer
.
requestRepaint
();
interval
.
set
(
i
);
}
viewer
.
requestRepaint
();
}
);
}
@Override
public
Interval
getInterval
()
{
return
interval
;
}
},
rangeInterval
);
// when dialog is made visible, add bbox source
// when dialog is made visible, add bbox source
// when dialog is hidden, remove bbox source
// when dialog is hidden, remove bbox source
...
...
This diff is collapsed.
Click to expand it.
src/main/java/bdv/tools/boundingbox/BoxSelectionPanel.java
+
13
−
25
View file @
b81f24b0
...
@@ -29,24 +29,23 @@
...
@@ -29,24 +29,23 @@
*/
*/
package
bdv.tools.boundingbox
;
package
bdv.tools.boundingbox
;
import
java.util.ArrayList
;
import
javax.swing.BorderFactory
;
import
javax.swing.BorderFactory
;
import
javax.swing.BoxLayout
;
import
javax.swing.BoxLayout
;
import
javax.swing.JPanel
;
import
javax.swing.JPanel
;
import
bdv.tools.brightness.SliderPanel
;
import
bdv.tools.brightness.SliderPanel
;
import
bdv.util.BoundedInterval
;
import
bdv.util.BoundedInterval
;
import
bdv.util.ModifiableInterval
;
import
net.imglib2.FinalInterval
;
import
net.imglib2.FinalInterval
;
import
net.imglib2.Interval
;
import
net.imglib2.Interval
;
// a JPanel containing X,Y,Z min/max sliders for adjusting an interval
// a JPanel containing X,Y,Z min/max sliders for adjusting an interval
public
class
BoxSelectionPanel
extends
JPanel
public
class
BoxSelectionPanel
extends
JPanel
{
{
public
static
interface
SelectionUpdateListener
public
interface
Box
{
{
public
void
selectionUpdated
();
Interval
getInterval
();
void
setInterval
(
Interval
interval
);
}
}
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
@@ -57,20 +56,19 @@ public class BoxSelectionPanel extends JPanel
...
@@ -57,20 +56,19 @@ public class BoxSelectionPanel extends JPanel
private
final
SliderPanel
[]
maxSliderPanels
;
private
final
SliderPanel
[]
maxSliderPanels
;
private
final
ModifiableInterval
selection
;
private
final
Box
selection
;
private
final
ArrayList
<
SelectionUpdateListener
>
listeners
;
private
int
cols
;
private
int
cols
;
public
BoxSelectionPanel
(
final
ModifiableInterval
selection
,
final
Interval
rangeInterval
)
private
final
int
n
;
public
BoxSelectionPanel
(
final
Box
selection
,
final
Interval
rangeInterval
)
{
{
final
int
n
=
selection
.
numDimensions
();
n
=
selection
.
getInterval
().
numDimensions
();
this
.
selection
=
selection
;
this
.
selection
=
selection
;
ranges
=
new
BoundedInterval
[
n
];
ranges
=
new
BoundedInterval
[
n
];
minSliderPanels
=
new
SliderPanel
[
n
];
minSliderPanels
=
new
SliderPanel
[
n
];
maxSliderPanels
=
new
SliderPanel
[
n
];
maxSliderPanels
=
new
SliderPanel
[
n
];
listeners
=
new
ArrayList
<>();
cols
=
2
;
cols
=
2
;
for
(
int
d
=
0
;
d
<
n
;
++
d
)
for
(
int
d
=
0
;
d
<
n
;
++
d
)
...
@@ -84,8 +82,9 @@ public class BoxSelectionPanel extends JPanel
...
@@ -84,8 +82,9 @@ public class BoxSelectionPanel extends JPanel
{
{
final
int
rangeMin
=
(
int
)
rangeInterval
.
min
(
d
);
final
int
rangeMin
=
(
int
)
rangeInterval
.
min
(
d
);
final
int
rangeMax
=
(
int
)
rangeInterval
.
max
(
d
);
final
int
rangeMax
=
(
int
)
rangeInterval
.
max
(
d
);
final
int
initialMin
=
Math
.
max
(
(
int
)
selection
.
min
(
d
),
rangeMin
);
final
Interval
interval
=
selection
.
getInterval
();
final
int
initialMax
=
Math
.
min
(
(
int
)
selection
.
max
(
d
),
rangeMax
);
final
int
initialMin
=
Math
.
max
(
(
int
)
interval
.
min
(
d
),
rangeMin
);
final
int
initialMax
=
Math
.
min
(
(
int
)
interval
.
max
(
d
),
rangeMax
);
final
BoundedInterval
range
=
new
BoundedInterval
(
rangeMin
,
rangeMax
,
initialMin
,
initialMax
,
0
)
final
BoundedInterval
range
=
new
BoundedInterval
(
rangeMin
,
rangeMax
,
initialMin
,
initialMax
,
0
)
{
{
@Override
@Override
...
@@ -114,8 +113,6 @@ public class BoxSelectionPanel extends JPanel
...
@@ -114,8 +113,6 @@ public class BoxSelectionPanel extends JPanel
public
void
setBoundsInterval
(
final
Interval
interval
)
public
void
setBoundsInterval
(
final
Interval
interval
)
{
{
final
int
n
=
selection
.
numDimensions
();
final
int
oldCols
=
cols
;
final
int
oldCols
=
cols
;
for
(
int
d
=
0
;
d
<
n
;
++
d
)
for
(
int
d
=
0
;
d
<
n
;
++
d
)
{
{
...
@@ -139,14 +136,8 @@ public class BoxSelectionPanel extends JPanel
...
@@ -139,14 +136,8 @@ public class BoxSelectionPanel extends JPanel
}
}
}
}
public
void
addSelectionUpdateListener
(
final
SelectionUpdateListener
l
)
{
listeners
.
add
(
l
);
}
public
void
updateSelection
()
public
void
updateSelection
()
{
{
final
int
n
=
selection
.
numDimensions
();
final
long
[]
min
=
new
long
[
n
];
final
long
[]
min
=
new
long
[
n
];
final
long
[]
max
=
new
long
[
n
];
final
long
[]
max
=
new
long
[
n
];
for
(
int
d
=
0
;
d
<
n
;
++
d
)
for
(
int
d
=
0
;
d
<
n
;
++
d
)
...
@@ -154,14 +145,11 @@ public class BoxSelectionPanel extends JPanel
...
@@ -154,14 +145,11 @@ public class BoxSelectionPanel extends JPanel
min
[
d
]
=
ranges
[
d
].
getMinBoundedValue
().
getCurrentValue
();
min
[
d
]
=
ranges
[
d
].
getMinBoundedValue
().
getCurrentValue
();
max
[
d
]
=
ranges
[
d
].
getMaxBoundedValue
().
getCurrentValue
();
max
[
d
]
=
ranges
[
d
].
getMaxBoundedValue
().
getCurrentValue
();
}
}
selection
.
set
(
new
FinalInterval
(
min
,
max
)
);
selection
.
setInterval
(
new
FinalInterval
(
min
,
max
)
);
for
(
final
SelectionUpdateListener
l
:
listeners
)
l
.
selectionUpdated
();
}
}
public
void
updateSliders
(
final
Interval
interval
)
public
void
updateSliders
(
final
Interval
interval
)
{
{
final
int
n
=
selection
.
numDimensions
();
if
(
interval
.
numDimensions
()
!=
n
)
if
(
interval
.
numDimensions
()
!=
n
)
throw
new
IllegalArgumentException
();
throw
new
IllegalArgumentException
();
final
long
[]
min
=
new
long
[
n
];
final
long
[]
min
=
new
long
[
n
];
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment