Skip to content

Commit

Permalink
Merge pull request #74 from mastodon-sc/tags-docs
Browse files Browse the repository at this point in the history
Add documentation for Tag related functions of mastodon tomancak
  • Loading branch information
stefanhahmann authored Dec 11, 2024
2 parents 0729b84 + a4433ab commit 93fa42f
Show file tree
Hide file tree
Showing 9 changed files with 193 additions and 2 deletions.
25 changes: 24 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,12 +143,35 @@ place.

### Locate tags

### Copy tag
* Menu Location: `Plugins > Tags > Locate tags`
* Opens a window with a list showing tracks and tags assigned to them.
The time point and the spot (identified via its label) of the first occurrence of the tag in a track are shown.
* The user can select a tag-track combination in the list and linked views will navigate to the corresponding spot.
The spot will be selected and highlighted.
* Tags can be removed from the selected spots.
* Example: ![locate_tags.gif](doc/tags/locate_tags.gif)

### Copy tags

* Menu Location: `Plugins > Tags > Copy tag`
* Allows the user to assign a tag to spots under the condition that the spots already have a certain tag that can be
specified by the user.
* Example: ![copy_tag.gif](doc/tags/copy_tag.gif)

### Add tag set to highlight cell divisions

* Menu Location: `Plugins > Tags > Add tag set to highlight cell divisions`
* The command creates a tag set that highlights cell divisions. The user interface allows to specify the number of spots
to highlight before and after a division.
* The colors for highlight background can be selected.
* Example: ![add_tag_set_to_highlight_cell_divisions.gif](doc/tags/add_tag_set_to_highlight_cell_divisions.gif)

### Create Dummy Tag Set

* Menu Location: `Plugins > Tags > Create Empty Tag Set`
* Creates a tag set with a specified number of tags in random colors.
* Example: ![dummy_tagset.png](doc/tags/dummy_tagset.png)

## Trees management

### Flip descendants
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/tags/copy_tag.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/tags/dummy_tagset.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/tags/locate_tags.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,19 @@
<artifactId>mpicbg</artifactId>
</dependency>

<!-- include logback-classic at test runtime -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
<!-- include logback-core at test runtime -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<scope>test</scope>
</dependency>

<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/org/mastodon/mamut/tomancak/CopyTagDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ public class CopyTagDialog extends JDialog

public CopyTagDialog( final Frame owner, final Model model )
{
super( owner, "Copy Tag...", false );
super( owner, "Copy Tag", false );
setLocationRelativeTo( null );
this.model = model;

model.getTagSetModel().listeners().add( this::tagSetStructureChanged );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ public LocateTagsFrame( final ProjectModel projectModel )
groupHandle = this.projectModel.getGroupManager().createGroupHandle();
setTitle( "Locate Tags" );
setLayout( new MigLayout( "insets dialog", "[grow]", "[][][grow]" ) );
setLocationRelativeTo( null );
add( new GroupLocksPanel( groupHandle ), "split" );
add( new Label( "Tag Set:" ) );
tagSetComboBox = new JComboBox<>();
Expand Down
153 changes: 153 additions & 0 deletions src/test/resources/logback-test.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
#%L
mastodon-deep-lineage
%%
Copyright (C) 2022 - 2024 Stefan Hahmann
%%
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
#L%
-->


<configuration debug="false">

<property name="LOGS" value="./logs"/>

<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%highlight(%-5level) %d{yyyy-MM-dd HH:mm:ss.SSS} [%blue(%t)] \(%file:%line\) - %m%n
</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="stderr" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%highlight(%-5level) %d{yyyy-MM-dd HH:mm:ss.SSS} [%blue(%t)] \(%file:%line\) - %m%n
</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<appender name="file-trace" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOGS}/trace.log</File>
<encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS}/trace.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<!-- each file should be at most 10MB, keep 60 days worth of history, but at most 1GB-->
<maxFileSize>20MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>
</appender>
<appender name="file-debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOGS}/debug.log</File>
<encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS}/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<!-- each file should be at most 10MB, keep 60 days worth of history, but at most 1GB-->
<maxFileSize>20MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="file-info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOGS}/info.log</File>
<encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS}/info.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<!-- each file should be at most 10MB, keep 60 days worth of history, but at most 1GB-->
<maxFileSize>20MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<appender name="file-warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOGS}/warn.log</File>
<encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS}/warn.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<!-- each file should be at most 10MB, keep 60 days worth of history, but at most 1GB-->
<maxFileSize>20MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<appender name="file-error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOGS}/error.log</File>
<encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c{1}:%M:%L] - %m%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS}/error.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<!-- each file should be at most 10MB, keep 60 days worth of history, but at most 1GB-->
<maxFileSize>20MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>

<!-- Set root log level to INFO -->
<root level="INFO">
<appender-ref ref="stdout"/>
<appender-ref ref="file-trace"/>
<appender-ref ref="file-debug"/>
<appender-ref ref="file-info"/>
<appender-ref ref="file-warn"/>
<appender-ref ref="file-error"/>
</root>

<!-- Example how to change log level for certain packages -->
<logger name="org.mastodon.mamut" level="DEBUG"/>

</configuration>

0 comments on commit 93fa42f

Please sign in to comment.