initial commit
This commit is contained in:
commit
aeeff3b116
|
|
@ -0,0 +1,38 @@
|
|||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
!**/src/main/**/target/
|
||||
!**/src/test/**/target/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea/modules.xml
|
||||
.idea/jarRepositories.xml
|
||||
.idea/compiler.xml
|
||||
.idea/libraries/
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
build/
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="openjdk-19" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="c4312d8b-8daa-4137-9297-f2507703d1ac" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.mvn/wrapper/maven-wrapper.jar" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.mvn/wrapper/maven-wrapper.properties" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/F_CR2.txt" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/F_Script_Output.txt" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/P_Photos.txt" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/mvnw" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/mvnw.cmd" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/settings.ini" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/de/emmerts/fotoverwaltung/FileTreeComponent.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/de/emmerts/fotoverwaltung/FileTreeController.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/de/emmerts/fotoverwaltung/FileTreeItemComponent.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/de/emmerts/fotoverwaltung/FileTreeItemController.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/de/emmerts/fotoverwaltung/FindDiffs.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/de/emmerts/fotoverwaltung/MainApplication.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/de/emmerts/fotoverwaltung/MainController.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/module-info.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/resources/de/emmerts/fotoverwaltung/FileTree.fxml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/resources/de/emmerts/fotoverwaltung/FileTreeItem.fxml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/resources/de/emmerts/fotoverwaltung/MainApplication.fxml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/resources/de/emmerts/fotoverwaltung/image.svg" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="FxmlFile" />
|
||||
<option value="JavaFXApplication" />
|
||||
<option value="Class" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="MarkdownSettingsMigration">
|
||||
<option name="stateVersion" value="1" />
|
||||
</component>
|
||||
<component name="ProjectId" id="2NhCWfjX3vC8nlMmbHwHyGPhuEK" />
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
||||
<ConfirmationsSetting value="2" id="Add" />
|
||||
</component>
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"Downloaded.Files.Path.Enabled": "false",
|
||||
"Repository.Attach.Annotations": "false",
|
||||
"Repository.Attach.JavaDocs": "false",
|
||||
"Repository.Attach.Sources": "false",
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||
"last_opened_file_path": "C:/Users/Bene/IdeaProjects/Fotoverwaltung/src/main/resources/de/emmerts/fotoverwaltung",
|
||||
"project.structure.last.edited": "Libraries",
|
||||
"project.structure.proportion": "0.15",
|
||||
"project.structure.side.proportion": "0.2",
|
||||
"settings.editor.selected.configurable": "reference.settings.project.maven.repository.indices"
|
||||
}
|
||||
}</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="C:\Users\Bene\IdeaProjects\Fotoverwaltung\src\main\resources\de\emmerts\fotoverwaltung" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="C:\Users\Bene\IdeaProjects\Fotoverwaltung\src\main\resources\de\emmerts\fotoverwaltung" />
|
||||
<recent name="C:\Users\Bene\IdeaProjects\Fotoverwaltung" />
|
||||
</key>
|
||||
<key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
|
||||
<recent name="de.emmerts.fotoverwaltung" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<configuration name="Main" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" value="de.emmerts.fotoverwaltung.MainApplication" />
|
||||
<module name="Fotoverwaltung" />
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="c4312d8b-8daa-4137-9297-f2507703d1ac" name="Changes" comment="" />
|
||||
<created>1680106962851</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1680106962851</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
<option name="TAB_STATES">
|
||||
<map>
|
||||
<entry key="MAIN">
|
||||
<value>
|
||||
<State />
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<breakpoints>
|
||||
<line-breakpoint enabled="true" type="java-line">
|
||||
<url>file://$PROJECT_DIR$/src/main/java/de/emmerts/fotoverwaltung/FileTreeComponent.java</url>
|
||||
<line>22</line>
|
||||
<option name="timeStamp" value="7" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
</component>
|
||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||
<SUITE FILE_PATH="coverage/Fotoverwaltung$Main.ic" NAME="Main Coverage Results" MODIFIED="1680614443901" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
|
||||
</component>
|
||||
</project>
|
||||
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip
|
||||
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
|
||||
|
|
@ -0,0 +1,833 @@
|
|||
├───1995-2008
|
||||
│ ├───1995
|
||||
│ ├───1996
|
||||
│ ├───1997
|
||||
│ ├───1998
|
||||
│ ├───1999
|
||||
│ ├───2000
|
||||
│ ├───2001
|
||||
│ │ └───Verena
|
||||
│ ├───2002
|
||||
│ ├───2003
|
||||
│ ├───2004
|
||||
│ ├───2005
|
||||
│ ├───2006
|
||||
│ ├───2007
|
||||
│ └───2008
|
||||
├───2009
|
||||
│ ├───2009_01_29 Happy Birthday Canon Eos 450D
|
||||
│ ├───2009_01_30 RR erstes Treffen
|
||||
│ ├───2009_01_30 RR Teamstunde
|
||||
│ ├───2009_02_03 Spaziergang
|
||||
│ ├───2009_02_05 Frühling
|
||||
│ ├───2009_02_11 Noch kein Schnee
|
||||
│ ├───2009_02_12 Schnee
|
||||
│ ├───2009_02_13 Autobahn
|
||||
│ ├───2009_02_13 RR Stammtreff
|
||||
│ ├───2009_02_15 Spaziergang Kanal
|
||||
│ ├───2009_02_16 Happy birthday
|
||||
│ ├───2009_02_18 Mama
|
||||
│ ├───2009_02_20 RR Bowling
|
||||
│ ├───2009_02_20 RR Teamstunde
|
||||
│ ├───2009_02_21 Iglubau
|
||||
│ ├───2009_03_01 Serien
|
||||
│ ├───2009_03_02 Walter Kölsch
|
||||
│ ├───2009_03_04 ein paar Makros
|
||||
│ ├───2009_03_06 Alese
|
||||
│ ├───2009_03_07 Lange Nacht des Südens
|
||||
│ ├───2009_03_13 Bibel HDR
|
||||
│ ├───2009_03_15 Turm der Sinne
|
||||
│ ├───2009_03_22 Happy Birthday
|
||||
│ ├───2009_03_26 Klene
|
||||
│ ├───2009_03_27 Himmel
|
||||
│ ├───2009_03_27 RR Eisdico
|
||||
│ ├───2009_03_28 RR Grillen
|
||||
│ ├───2009_03_29 Zimmer360
|
||||
│ ├───2009_03_31 Garten
|
||||
│ ├───2009_04_02 Tiergarten
|
||||
│ ├───2009_04_03 RR Stammtreff
|
||||
│ ├───2009_04_10-13 RR Osterfreizeit_09
|
||||
│ │ ├───2009_04_10
|
||||
│ │ ├───2009_04_11
|
||||
│ │ ├───2009_04_12
|
||||
│ │ └───2009_04_13
|
||||
│ ├───2009_04_14 Lingenbergs bei uns
|
||||
│ ├───2009_04_17 Mama serie
|
||||
│ ├───2009_04_18 Vögel
|
||||
│ ├───2009_04_19 dennenlohe
|
||||
│ ├───2009_04_24 RR Stammtreff
|
||||
│ ├───2009_04_30 Makros
|
||||
│ ├───2009_05_01 PC
|
||||
│ ├───2009_05_03 Downhillpark Festung
|
||||
│ ├───2009_05_08 RR Lobpreisabend
|
||||
│ ├───2009_05_09 RR Sponsorenlauf
|
||||
│ ├───2009_05_10 klein
|
||||
│ ├───2009_05_15 RR Starter
|
||||
│ │ └───sch
|
||||
│ ├───2009_05_20 Zecke
|
||||
│ ├───2009_05_21 Schrank
|
||||
│ ├───2009_05_23 Helga u Hans-Martin
|
||||
│ ├───2009_05_30 RR überfall_planung
|
||||
│ ├───2009_06_01 RR Pfingstecamp_09
|
||||
│ ├───2009_06_02 Essen
|
||||
│ ├───2009_06_09 Träger+Makros
|
||||
│ ├───2009_06_10 Isar_Munchen
|
||||
│ ├───2009_06_21 Wald
|
||||
│ ├───2009_06_25 7Zwerge
|
||||
│ ├───2009_06_26 RR Stammtreff
|
||||
│ ├───2009_06_27 Regen
|
||||
│ ├───2009_06_27 RR Bowling II
|
||||
│ ├───2009_06_30 klein
|
||||
│ ├───2009_07_02 Welten v
|
||||
│ ├───2009_07_03
|
||||
│ ├───2009_07_03 klein
|
||||
│ ├───2009_07_04 20-Jähriges
|
||||
│ ├───2009_07_05 Chinarestaurante
|
||||
│ ├───2009_07_10 RR Wischmop
|
||||
│ ├───2009_07_15 klein
|
||||
│ ├───2009_07_16 Sommerkonzert
|
||||
│ │ └───RAW
|
||||
│ ├───2009_07_17-2009_07_20 Zahn_OP
|
||||
│ │ ├───2009_07_17
|
||||
│ │ ├───2009_07_18
|
||||
│ │ └───2009_07_20
|
||||
│ ├───2009_07_21 makros
|
||||
│ ├───2009_07_22 makros
|
||||
│ ├───2009_07_24 Sommerfest
|
||||
│ ├───2009_07_25 klen
|
||||
│ ├───2009_07_25 Nachtspaziergang
|
||||
│ ├───2009_07_31 Essen
|
||||
│ ├───2009_07_31 RR Klettern
|
||||
│ ├───2009_07_31 RR Wasserschlacht
|
||||
│ ├───2009_08_01 Bardentrefen
|
||||
│ ├───2009_08_02 7 SChlafen
|
||||
│ ├───2009_08_06 LAN A
|
||||
│ ├───2009_08_07 LAN B
|
||||
│ ├───2009_08_08 Klassik Open Air
|
||||
│ ├───2009_08_09 Botanischer Garten Erlangn
|
||||
│ ├───2009_08_13 Klohaus
|
||||
│ ├───2009_08_15 Hängematte
|
||||
│ ├───2009_08_18 Urlaub Ankommen
|
||||
│ ├───2009_08_19 Urlaub Tatzelwurm
|
||||
│ ├───2009_08_20 Urlaub Hechtsee
|
||||
│ ├───2009_08_21 Urlaub Walchsee
|
||||
│ ├───2009_08_22 Urlaub Alm
|
||||
│ ├───2009_08_23 Urlaub Pendling
|
||||
│ ├───2009_08_24 Urlaub Isar
|
||||
│ ├───2009_09_17 Portrais
|
||||
│ ├───2009_09_20 Wendelstein
|
||||
│ ├───2009_09_25 RR Cachen
|
||||
│ ├───2009_09_26 Schnecke
|
||||
│ ├───2009_09_27 Makro neu
|
||||
│ ├───2009_09_28 Makros
|
||||
│ ├───2009_09_28 Welten verbinden
|
||||
│ ├───2009_09_30 kjlein
|
||||
│ ├───2009_10_02 klene
|
||||
│ ├───2009_10_03 Zweschgen
|
||||
│ ├───2009_10_04 klene
|
||||
│ ├───2009_10_07 Wandertag
|
||||
│ ├───2009_10_23 RR Wischmoppfight
|
||||
│ ├───2009_10_30 RR Poker
|
||||
│ ├───2009_11_03 Bunker
|
||||
│ ├───2009_11_05 Garten
|
||||
│ ├───2009_11_05 Portrait
|
||||
│ ├───2009_11_13 Krampfadergeschwader
|
||||
│ ├───2009_11_14 RR Cachen
|
||||
│ ├───2009_11_22 AVlight
|
||||
│ ├───2009_11_27 Planespotting
|
||||
│ ├───2009_11_27 RR Billiard
|
||||
│ ├───2009_12_01 Advenet
|
||||
│ ├───2009_12_02 Mond
|
||||
│ ├───2009_12_03 klene
|
||||
│ ├───2009_12_18 RR Weihnachtsfeier
|
||||
│ ├───2009_12_18 Winterball
|
||||
│ └───2009_12_24 weihnachten
|
||||
├───2014
|
||||
│ ├───2014-01-01 RIDE
|
||||
│ ├───2014-01-02 RIDE
|
||||
│ ├───2014-01-17 Teamstunde
|
||||
│ ├───2014-01-21 sBaggers
|
||||
│ ├───2014-01-24 Siedlung
|
||||
│ ├───2014-01-27 Schnee
|
||||
│ ├───2014-01-30 Winterkonzert
|
||||
│ │ └───1920
|
||||
│ ├───2014-01-31 Teamstunde Steppenzebras
|
||||
│ │ └───1920
|
||||
│ ├───2014-02-01 Eiche Ranch
|
||||
│ ├───2014-02-08 Distriktversammlung
|
||||
│ ├───2014-02-15 Glühkerzen
|
||||
│ ├───2014-02-16 BD
|
||||
│ ├───2014-02-18 Philip Scheulen
|
||||
│ ├───2014-02-21 Teambesuch Erlangen
|
||||
│ ├───2014-02-24 Helikopter
|
||||
│ ├───2014-02-26 Michael
|
||||
│ ├───2014-03-01 Die Lange Nacht des Südens
|
||||
│ ├───2014-03-08 Emden
|
||||
│ ├───2014-04-15 Leiterfreizeit
|
||||
│ ├───2014-04-23 Lingenbergs Fränkischre
|
||||
│ ├───2014-04-26 Ranch Geparden
|
||||
│ ├───2014-04-29 Website Bilder
|
||||
│ ├───2014-04-30 WG-Party
|
||||
│ ├───2014-05-03 Stammaktion
|
||||
│ ├───2014-05-14 Jojo
|
||||
│ ├───2014-05-17 Party
|
||||
│ ├───2014-05-25 JLTC C Ittlingen
|
||||
│ │ ├───Auswahl
|
||||
│ │ │ ├───Tag1
|
||||
│ │ │ │ └───1920
|
||||
│ │ │ ├───Tag2
|
||||
│ │ │ │ └───1920
|
||||
│ │ │ ├───Tag3
|
||||
│ │ │ │ └───1920
|
||||
│ │ │ └───Tag4
|
||||
│ │ │ └───1920
|
||||
│ │ ├───bilder
|
||||
│ │ │ ├───bene
|
||||
│ │ │ ├───cäro
|
||||
│ │ │ ├───jürgen
|
||||
│ │ │ └───soren
|
||||
│ │ ├───Ende 1920
|
||||
│ │ ├───Extras
|
||||
│ │ └───goprofiles
|
||||
│ │ ├───gopro abbau
|
||||
│ │ │ └───1024
|
||||
│ │ ├───gopro anfahrt
|
||||
│ │ │ ├───klein
|
||||
│ │ │ └───klein2
|
||||
│ │ └───gopro aufbau
|
||||
│ │ └───klein
|
||||
│ ├───2014-06-02
|
||||
│ ├───2014-06-06 Trainingscamp
|
||||
│ ├───2014-06-18 Portraits
|
||||
│ ├───2014-06-27 ABI MW
|
||||
│ │ ├───3720
|
||||
│ │ ├───450D
|
||||
│ │ ├───60D I
|
||||
│ │ ├───60D II
|
||||
│ │ └───org
|
||||
│ ├───2014-06-28 ABI PGN
|
||||
│ │ ├───2 franzi
|
||||
│ │ ├───450D
|
||||
│ │ ├───60D
|
||||
│ │ ├───ABI-PGN14
|
||||
│ │ ├───franzi
|
||||
│ │ │ └───anderes zeug
|
||||
│ │ └───time
|
||||
│ ├───2014-07-11 Stammtreff
|
||||
│ ├───2014-07-20 Taufe
|
||||
│ ├───2014-07-21 Abschleppen
|
||||
│ ├───2014-07-26 Nähen
|
||||
│ ├───2014-07-27 Joschka Geburtstag
|
||||
│ ├───2014-07-31 Bundescamp
|
||||
│ │ └───Auswahl
|
||||
│ ├───2014-08-30 Bundescamp Eva
|
||||
│ │ └───1920
|
||||
│ ├───2014-09-05
|
||||
│ ├───2014-09-10 NTT Rügen
|
||||
│ ├───2014-09-28 Verabschiedung FCGN
|
||||
│ ├───2014-10 Klassenbilder
|
||||
│ │ ├───05a
|
||||
│ │ ├───05b
|
||||
│ │ ├───05cg
|
||||
│ │ ├───05dg
|
||||
│ │ ├───06a
|
||||
│ │ ├───06b
|
||||
│ │ ├───06c
|
||||
│ │ ├───06dg
|
||||
│ │ ├───06eg
|
||||
│ │ ├───07a
|
||||
│ │ ├───07b
|
||||
│ │ ├───07c
|
||||
│ │ ├───07dg
|
||||
│ │ ├───08a
|
||||
│ │ ├───08b
|
||||
│ │ ├───08c
|
||||
│ │ ├───08d
|
||||
│ │ ├───08e
|
||||
│ │ ├───08f
|
||||
│ │ ├───09a
|
||||
│ │ ├───09b
|
||||
│ │ ├───09c
|
||||
│ │ ├───09d
|
||||
│ │ ├───09e
|
||||
│ │ ├───10a
|
||||
│ │ ├───10b
|
||||
│ │ ├───10c
|
||||
│ │ ├───Q11
|
||||
│ │ └───Q12
|
||||
│ ├───2014-10-13 Sonnenuntergang
|
||||
│ ├───2014-11-15 Ranch
|
||||
│ ├───2014-11-27 Michael
|
||||
│ ├───2014-12-08 Feuer
|
||||
│ ├───2014-12-12 Team Abschluss Essen
|
||||
│ │ └───gif
|
||||
│ ├───2014-12-19 Weihnachtsfeier
|
||||
│ ├───2014-12-24 Weihnachten
|
||||
│ ├───2014-12-28 Geburtstag Iris
|
||||
│ └───2014-12-31 WG Party
|
||||
├───2015
|
||||
│ ├───2015-01-03 Ranch
|
||||
│ │ └───pano0
|
||||
│ ├───2015-01-03 Renovierung
|
||||
│ ├───2015-01-18 JLVT
|
||||
│ ├───2015-02-05 Grundriss Pläne
|
||||
│ ├───2015-02-06 Teambesuch
|
||||
│ ├───2015-02-07 Leiteressen
|
||||
│ ├───2015-02-08 Druckerzubehör
|
||||
│ ├───2015-02-09 Vögel
|
||||
│ ├───2015-02-16 Mallorca
|
||||
│ ├───2015-02-21 Renovierung
|
||||
│ ├───2015-02-27 Teamstunde First Aid
|
||||
│ ├───2015-03-08 Geburtstag Jason
|
||||
│ ├───2015-03-14 Deutsches Museum
|
||||
│ ├───2015-03-20 Sonnenfinsternis
|
||||
│ ├───2015-04-02 Osterfreizeit
|
||||
│ │ ├───2015-04-02
|
||||
│ │ ├───2015-04-03
|
||||
│ │ ├───2015-04-04
|
||||
│ │ ├───2015-04-05
|
||||
│ │ ├───2015-04-06
|
||||
│ │ ├───450d
|
||||
│ │ ├───Auswahl
|
||||
│ │ └───gopro
|
||||
│ │ ├───Tag1
|
||||
│ │ └───Tag2
|
||||
│ ├───2015-04-07 Spalt Dachboden
|
||||
│ ├───2015-04-22 Lehrerfoto
|
||||
│ ├───2015-04-24 Lilienhajk
|
||||
│ ├───2015-05-06 Wetter
|
||||
│ ├───2015-05-08 Teamstunde Feuer
|
||||
│ ├───2015-05-10 Muttertag
|
||||
│ ├───2015-05-15 Teamstunde Kohte
|
||||
│ ├───2015-05-22 Pfadrangeraktion
|
||||
│ ├───2015-05-23 Ranch
|
||||
│ │ ├───2015-05-23 Rannch
|
||||
│ │ ├───2015-05-24 Ranch
|
||||
│ │ └───2015-05-25 Ranch
|
||||
│ ├───2015-05-30 Hochzeit
|
||||
│ ├───2015-06-10 Passbilder
|
||||
│ ├───2015-06-26 Palm Beach
|
||||
│ ├───2015-06-30 Falter
|
||||
│ ├───2015-07-03 Grillen Geparden
|
||||
│ ├───2015-07-04 BD
|
||||
│ ├───2015-07-07 Gewitter
|
||||
│ ├───2015-07-27 Joschkas Geburtstag
|
||||
│ ├───2015-07-31 Wasserschlacht
|
||||
│ │ ├───Auswahl
|
||||
│ │ │ └───1024
|
||||
│ │ └───gif
|
||||
│ │ └───1
|
||||
│ ├───2015-08-01 Hajk
|
||||
│ │ ├───2015-08-01
|
||||
│ │ ├───2015-08-02
|
||||
│ │ ├───2015-08-03
|
||||
│ │ ├───2015-08-04
|
||||
│ │ ├───2015-08-05
|
||||
│ │ ├───2015-08-06
|
||||
│ │ ├───not safe for work
|
||||
│ │ ├───Pano
|
||||
│ │ │ ├───1
|
||||
│ │ │ ├───1 (Kopie)
|
||||
│ │ │ ├───10
|
||||
│ │ │ ├───11
|
||||
│ │ │ ├───12
|
||||
│ │ │ ├───13
|
||||
│ │ │ ├───14
|
||||
│ │ │ ├───15
|
||||
│ │ │ ├───2
|
||||
│ │ │ ├───3
|
||||
│ │ │ ├───4
|
||||
│ │ │ ├───5
|
||||
│ │ │ ├───6
|
||||
│ │ │ ├───7
|
||||
│ │ │ ├───8
|
||||
│ │ │ └───9
|
||||
│ │ └───safe for work
|
||||
│ │ ├───2015-08-01
|
||||
│ │ ├───2015-08-02
|
||||
│ │ ├───2015-08-03
|
||||
│ │ ├───2015-08-04
|
||||
│ │ ├───2015-08-05
|
||||
│ │ └───2015-08-06
|
||||
│ ├───2015-08-12 Bad Renovierung
|
||||
│ ├───2015-08-21 Pfadrangercamp
|
||||
│ │ ├───2015-08-21
|
||||
│ │ ├───2015-08-23
|
||||
│ │ ├───2015-08-24
|
||||
│ │ ├───2015-08-27
|
||||
│ │ ├───2015-08-28
|
||||
│ │ └───prcmap
|
||||
│ │ └───1024
|
||||
│ ├───2015-08-29 Igel
|
||||
│ ├───2015-09-14 Schwarzer Mann
|
||||
│ ├───2015-09-19 Leiterspasstermin
|
||||
│ ├───2015-09-25 Geburtstag Jakob
|
||||
│ ├───2015-09-28 Zelt
|
||||
│ │ └───1920
|
||||
│ ├───2015-10-05 Nestle
|
||||
│ ├───2015-10-10 Ranch
|
||||
│ ├───2015-10-15 Anzug
|
||||
│ ├───2015-10-22 Logistiktreff
|
||||
│ ├───2015-10-31 Bad Renovierung
|
||||
│ ├───2015-11-07 Zimmer Elektrik
|
||||
│ ├───2015-11-08 Joschka
|
||||
│ │ └───1920
|
||||
│ ├───2015-11-10 Nestle
|
||||
│ ├───2015-11-20 Bad Renovierung
|
||||
│ ├───2015-11-22 Taufe Line
|
||||
│ ├───2015-11-26 Fleisch
|
||||
│ ├───2015-11-28 Ranch
|
||||
│ ├───2015-11-29 Segnung Katharina
|
||||
│ ├───2015-12-05 Team Abschlussessen
|
||||
│ ├───2015-12-13 Nate
|
||||
│ ├───2015-12-18 Weihnachtsfeier
|
||||
│ ├───2015-12-26 Walchensee
|
||||
│ └───2015-12-31 Silvester
|
||||
├───2016
|
||||
│ ├───2016-01-10 Carina
|
||||
│ ├───2016-01-15 Firmenfeier
|
||||
│ │ └───Auswahl
|
||||
│ ├───2016-01-23 Carina
|
||||
│ ├───2016-01-27 Elas Geburtstag
|
||||
│ ├───2016-02-01 Klassenfotos
|
||||
│ │ ├───05a
|
||||
│ │ │ └───alt
|
||||
│ │ ├───05b
|
||||
│ │ ├───05c
|
||||
│ │ ├───05d
|
||||
│ │ ├───06a
|
||||
│ │ ├───06b
|
||||
│ │ ├───06c
|
||||
│ │ ├───06d
|
||||
│ │ ├───07a
|
||||
│ │ ├───07b
|
||||
│ │ ├───07c
|
||||
│ │ ├───07d
|
||||
│ │ ├───07e
|
||||
│ │ ├───08a
|
||||
│ │ ├───08b
|
||||
│ │ ├───08c
|
||||
│ │ ├───08d
|
||||
│ │ ├───09a
|
||||
│ │ ├───09b
|
||||
│ │ ├───09c
|
||||
│ │ ├───09d
|
||||
│ │ ├───09e
|
||||
│ │ ├───09f
|
||||
│ │ ├───10a
|
||||
│ │ ├───10b
|
||||
│ │ ├───10c
|
||||
│ │ ├───10d
|
||||
│ │ ├───10e
|
||||
│ │ ├───Auswahl
|
||||
│ │ ├───Auswahl unbearbeitet
|
||||
│ │ │ └───xcf
|
||||
│ │ ├───Auswahl unbearbeitet (Kopie)
|
||||
│ │ ├───JPG
|
||||
│ │ │ └───Ende
|
||||
│ │ │ └───klein
|
||||
│ │ └───Q12
|
||||
│ ├───2016-02-08 Bad
|
||||
│ ├───2016-02-09 Reißverschluss
|
||||
│ ├───2016-02-11 Alpen
|
||||
│ │ ├───IMG_7779
|
||||
│ │ ├───IMG_7800
|
||||
│ │ ├───IMG_7840
|
||||
│ │ ├───IMG_7852
|
||||
│ │ ├───IMG_7881
|
||||
│ │ └───IMG_7905
|
||||
│ ├───2016-02-17 Bad
|
||||
│ ├───2016-02-25 Lines Geburtstag
|
||||
│ ├───2016-02-26 Lines Geburtstag
|
||||
│ ├───2016-02-29 Bad
|
||||
│ ├───2016-03-04 Stammtreff
|
||||
│ ├───2016-03-06 wURM
|
||||
│ ├───2016-03-11 Stammtreff
|
||||
│ ├───2016-03-12 Party
|
||||
│ ├───2016-03-14 Johie
|
||||
│ ├───2016-03-18 Schweiz
|
||||
│ │ ├───2016-03-18
|
||||
│ │ ├───2016-03-19
|
||||
│ │ │ ├───pano1
|
||||
│ │ │ ├───pano2
|
||||
│ │ │ ├───pano3
|
||||
│ │ │ └───pano4
|
||||
│ │ └───2016-03-20
|
||||
│ ├───2016-04-02 LAN Party
|
||||
│ ├───2016-04-15 Stammtreff
|
||||
│ ├───2016-04-16 Joschka Schule
|
||||
│ │ └───mp4
|
||||
│ │ └───P-Seminar1
|
||||
│ │ └───Bilder
|
||||
│ ├───2016-04-24 Gebutstag Carina
|
||||
│ ├───2016-05-01 Oma Gagsteiger
|
||||
│ ├───2016-05-04 Brüder
|
||||
│ ├───2016-05-14 Pfingstcamp
|
||||
│ │ ├───1024
|
||||
│ │ ├───1024 80
|
||||
│ │ ├───2016-05-14
|
||||
│ │ ├───2016-05-15
|
||||
│ │ ├───2016-05-16
|
||||
│ │ ├───2016-05-17
|
||||
│ │ ├───2016-05-19
|
||||
│ │ └───2016-05-20
|
||||
│ ├───2016-05-21 Renovierung
|
||||
│ ├───2016-06-03 Letzte Teamstunde
|
||||
│ ├───2016-06-03 SylviePeterArtiBene
|
||||
│ ├───2016-06-05 Veris Geburstagsfeier
|
||||
│ ├───2016-06-11 Hundshaupten
|
||||
│ ├───2016-06-17 RR-Unterwäsche
|
||||
│ │ └───Auswahl
|
||||
│ ├───2016-06-25 Klettern
|
||||
│ ├───2016-07-08 Team
|
||||
│ ├───2016-07-22 Wasserschlacht
|
||||
│ │ ├───rutschen
|
||||
│ │ └───rutschen1920
|
||||
│ │ └───IMG_7566
|
||||
│ ├───2016-07-23 Ranch
|
||||
│ │ └───1920
|
||||
│ ├───2016-07-27 Geburtstag Joschka
|
||||
│ ├───2016-07-31 Eurocamp Bene
|
||||
│ │ ├───2016-07-31
|
||||
│ │ ├───2016-08-02
|
||||
│ │ ├───2016-08-03
|
||||
│ │ ├───2016-08-04
|
||||
│ │ │ ├───pano0
|
||||
│ │ │ └───pano1
|
||||
│ │ ├───2016-08-05
|
||||
│ │ └───2016-08-06 Rückfahrt
|
||||
│ ├───2016-07-31 Eurocamp Together
|
||||
│ ├───2016-08-15 Urlaub
|
||||
│ │ ├───2016-08-15
|
||||
│ │ │ └───pano0
|
||||
│ │ │ └───schlächt
|
||||
│ │ ├───2016-08-16
|
||||
│ │ │ └───pano1
|
||||
│ │ ├───2016-08-17
|
||||
│ │ │ └───pano2
|
||||
│ │ │ └───anders
|
||||
│ │ ├───2016-08-18
|
||||
│ │ │ └───pano3
|
||||
│ │ └───2016-08-19
|
||||
│ │ ├───pano4
|
||||
│ │ └───pano5
|
||||
│ ├───2016-08-31 Urlaub
|
||||
│ │ ├───2016-08-31
|
||||
│ │ ├───2016-09-01
|
||||
│ │ ├───2016-09-02
|
||||
│ │ └───2016-09-03
|
||||
│ ├───2016-09-06 Noah
|
||||
│ ├───2016-09-09 Schach
|
||||
│ ├───2016-09-10 WG
|
||||
│ ├───2016-09-15 Wasserfleck
|
||||
│ │ ├───2016-09-09
|
||||
│ │ ├───2016-09-15
|
||||
│ │ ├───2016-09-16
|
||||
│ │ ├───2016-09-18
|
||||
│ │ ├───2016-09-19
|
||||
│ │ ├───2016-09-20
|
||||
│ │ ├───2016-09-21
|
||||
│ │ ├───2016-09-22
|
||||
│ │ ├───2016-09-23
|
||||
│ │ └───Wasserfleck
|
||||
│ ├───2016-09-24 Lasertag
|
||||
│ ├───2016-09-25 Jakobs Geburtstag
|
||||
│ ├───2016-09-27 Passbild
|
||||
│ ├───2016-10-01 Billiard
|
||||
│ ├───2016-10-09 Kunst
|
||||
│ ├───2016-10-12 KlassenbilderHS
|
||||
│ │ ├───05a beide
|
||||
│ │ ├───05b
|
||||
│ │ ├───05c
|
||||
│ │ ├───05d
|
||||
│ │ ├───05e
|
||||
│ │ ├───06a
|
||||
│ │ ├───06b
|
||||
│ │ ├───06c
|
||||
│ │ ├───06d
|
||||
│ │ ├───07a
|
||||
│ │ ├───07b
|
||||
│ │ ├───07d
|
||||
│ │ ├───08a
|
||||
│ │ ├───08b
|
||||
│ │ ├───08c
|
||||
│ │ ├───08d
|
||||
│ │ ├───08e
|
||||
│ │ ├───09a
|
||||
│ │ ├───09b
|
||||
│ │ ├───09c
|
||||
│ │ ├───09d
|
||||
│ │ ├───09e
|
||||
│ │ ├───10a
|
||||
│ │ ├───10b
|
||||
│ │ ├───10c
|
||||
│ │ ├───10d
|
||||
│ │ ├───10e
|
||||
│ │ ├───Q11
|
||||
│ │ │ ├───Gesamt
|
||||
│ │ │ ├───Q11D1
|
||||
│ │ │ ├───Q11D2
|
||||
│ │ │ ├───Q11D3
|
||||
│ │ │ ├───Q11D4
|
||||
│ │ │ ├───Q11D5
|
||||
│ │ │ └───Q11D6
|
||||
│ │ ├───Q12
|
||||
│ │ │ ├───Q12D1
|
||||
│ │ │ ├───Q12D2
|
||||
│ │ │ ├───Q12D3
|
||||
│ │ │ ├───Q12D4
|
||||
│ │ │ └───Q12D5
|
||||
│ │ ├───Sammlung
|
||||
│ │ │ └───cleaned
|
||||
│ │ │ └───original dimensions
|
||||
│ │ └───Verwaltung
|
||||
│ ├───2016-11-23 Body
|
||||
│ │ └───auswahl
|
||||
│ ├───2016-11-26 Palm Beach
|
||||
│ ├───2016-12-10 Schule Joschka
|
||||
│ │ ├───cr2
|
||||
│ │ ├───mov
|
||||
│ │ └───P-Seminar2
|
||||
│ │ ├───jpg
|
||||
│ │ └───mp4
|
||||
│ ├───2016-12-16 Weihnachtsfeier
|
||||
│ ├───2016-12-29
|
||||
│ ├───2016-12-29 VW Werkzeug
|
||||
│ ├───2016-12-30
|
||||
│ └───2016-12-31
|
||||
├───2017
|
||||
│ ├───2017-01-02 Verlobung
|
||||
│ ├───2017-01-14 Sonnenhof
|
||||
│ ├───2017-01-16 Verlobungskarten
|
||||
│ ├───2017-01-23 Joschka
|
||||
│ ├───2017-02-02 Papa Haut
|
||||
│ ├───2017-02-09 Frühstück
|
||||
│ ├───2017-02-16 Geburtstag
|
||||
│ ├───2017-02-20 Lehrerfoto
|
||||
│ ├───2017-03-03 Standesamt Jason Carina
|
||||
│ │ └───Auswahl
|
||||
│ ├───2017-03-08
|
||||
│ ├───2017-03-10
|
||||
│ ├───2017-03-11 Hochzeit Jason Carina
|
||||
│ │ ├───Corinna
|
||||
│ │ ├───CR2
|
||||
│ │ ├───jpg
|
||||
│ │ │ ├───60d t
|
||||
│ │ │ └───timestamp
|
||||
│ │ ├───Marin
|
||||
│ │ └───Photobooth
|
||||
│ ├───2017-03-12 Photobooth
|
||||
│ ├───2017-03-16 Jahrestag
|
||||
│ ├───2017-03-17 Starter
|
||||
│ ├───2017-04-26 Passbild Veri
|
||||
│ ├───2017-04-28 Bouldern
|
||||
│ ├───2017-05-20 Ranch
|
||||
│ ├───2017-05-25 NKK
|
||||
│ ├───2017-06-04 Pfingstcamp
|
||||
│ ├───2017-06-08 Pfingstcamp
|
||||
│ ├───2017-06-09 Pfingstcamp
|
||||
│ ├───2017-06-10 Pfingstcamp Martin
|
||||
│ ├───2017-06-15 See
|
||||
│ ├───2017-07-09 Sonnenhof
|
||||
│ ├───2017-08-04 Standesamt
|
||||
│ │ ├───Gruppenfotos
|
||||
│ │ └───Reportage
|
||||
│ ├───2017-08-10 Passbild Veri
|
||||
│ ├───2017-08-13 Hochzeit
|
||||
│ │ ├───Geschenke
|
||||
│ │ ├───Gruppenfotos
|
||||
│ │ ├───Jakob
|
||||
│ │ ├───Paarshooting
|
||||
│ │ ├───Paarshooting (Original)
|
||||
│ │ │ └───darktable_exported
|
||||
│ │ ├───Ramon
|
||||
│ │ ├───Reportage
|
||||
│ │ └───WEDPICS
|
||||
│ ├───2017-08-14 Flitterwochen Salzburg
|
||||
│ ├───2017-08-15 Flitterwochen Wanderung
|
||||
│ ├───2017-08-16 Flitterwochen Sterne
|
||||
│ ├───2017-08-17 Flitterwochen Wanderung
|
||||
│ ├───2017-08-18 Flitterwochen See & Burg
|
||||
│ ├───2017-08-19 Flitterwochen Bra
|
||||
│ ├───2017-08-20 Flitterwochen Haus
|
||||
│ ├───2017-09-10 Leiterfreizeit
|
||||
│ ├───2017-09-16 Dankesfest Kassel
|
||||
│ ├───2017-10-02 Walchensee mit Johie
|
||||
│ ├───2017-10-06 Starter
|
||||
│ ├───2017-10-31 All Hallows Eve
|
||||
│ ├───2017-10-31 Operation
|
||||
│ ├───2017-11-14 Städtler Logistik Treff
|
||||
│ ├───2017-11-17 Bytefest
|
||||
│ ├───2017-11-24 Lan Party
|
||||
│ ├───2017-12-01 Stammaktion
|
||||
│ ├───2017-12-15 Weihnachtsfeier
|
||||
│ ├───2017-12-22 Geburtstag Micha Jojo
|
||||
│ ├───2017-12-24 Weihnachten
|
||||
│ ├───2017-12-25 Weihnachten Emmerts
|
||||
│ ├───2017-12-26 Oma Gagsteiger
|
||||
│ ├───2017-12-29 Bowlen ArtiSilviPeti
|
||||
│ └───2017-12-31 Silvester
|
||||
├───2018
|
||||
│ ├───2018-01-06 Eslarn
|
||||
│ ├───2018-01-07 Quatsch
|
||||
│ ├───2018-01-21 Geburtstag Mudda
|
||||
│ ├───2018-01-23 Erding Straubing
|
||||
│ ├───2018-01-27 Elas Geburtstag
|
||||
│ ├───2018-02-16 Snowball
|
||||
│ ├───2018-02-18 Geburtstag
|
||||
│ ├───2018-02-25 Nachwuchsgottesdienst
|
||||
│ ├───2018-02-28 Tiergarten
|
||||
│ ├───2018-03-03 JGA Martin
|
||||
│ │ └───Video
|
||||
│ ├───2018-03-06 Auto Reparieren
|
||||
│ ├───2018-03-06 Wohntage
|
||||
│ ├───2018-03-07 Geburtstag Jason
|
||||
│ ├───2018-03-12 Bowling
|
||||
│ ├───2018-03-19 Regionalleitung
|
||||
│ ├───2018-03-24 Hochzeit Martin & Simone
|
||||
│ │ └───Analog
|
||||
│ │ └───Auswahl
|
||||
│ ├───2018-03-30 Walchensee
|
||||
│ ├───2018-04-13 Hackschnitzl
|
||||
│ ├───2018-04-15 Reiten
|
||||
│ ├───2018-04-24 Geburtstag Carina
|
||||
│ ├───2018-05-02 Schuttberg
|
||||
│ ├───2018-05-04 Stammtreff
|
||||
│ ├───2018-05-05 Blaue Nacht
|
||||
│ ├───2018-05-13 Hochzeit Katrin und Manuel
|
||||
│ ├───2018-05-18 Pfingstcamp
|
||||
│ │ └───Pfingstcamp 18
|
||||
│ ├───2018-05-18 Pfingstcamp (Kopie)
|
||||
│ │ ├───0-700
|
||||
│ │ ├───1920
|
||||
│ │ ├───Original
|
||||
│ │ └───Pfingstcamp 18
|
||||
│ │ ├───2018-05-18
|
||||
│ │ ├───2018-05-19
|
||||
│ │ ├───2018-05-20
|
||||
│ │ ├───2018-05-21
|
||||
│ │ ├───2018-05-22
|
||||
│ │ ├───2018-05-23
|
||||
│ │ └───2018-05-24
|
||||
│ ├───2018-05-26 Freilandterarium
|
||||
│ ├───2018-05-31 Hundshaupten
|
||||
│ ├───2018-06-09 Mama
|
||||
│ ├───2018-06-23 Tiergarten
|
||||
│ ├───2018-06-30 Hochzeit Marco & Verena
|
||||
│ ├───2018-07-11 Bandessen
|
||||
│ ├───2018-07-12 Geburtstag Boas
|
||||
│ ├───2018-07-15 Ranch Leiter
|
||||
│ ├───2018-07-22 Ranch Team
|
||||
│ ├───2018-07-27 Wasserschlacht
|
||||
│ ├───2018-08-04 PR-Camp
|
||||
│ │ ├───A-Cappella
|
||||
│ │ └───Melissa
|
||||
│ ├───2018-08-12 Urlaub Praha
|
||||
│ ├───2018-08-17 Rumänien
|
||||
│ │ └───klein
|
||||
│ ├───2018-09-02 Ulm
|
||||
│ ├───2018-09-15 Disc-Golf
|
||||
│ ├───2018-09-16 Familliengottesdienst
|
||||
│ ├───2018-09-28 Veri
|
||||
│ ├───2018-10-13 Regiotreff
|
||||
│ ├───2018-10-31 All Hallows Eve
|
||||
│ ├───2018-11-06 Städtler Logistik Treff
|
||||
│ ├───2018-11-12 Muffins
|
||||
│ ├───2018-11-25 Schwarzach
|
||||
│ ├───2018-12-07 Spieleabend
|
||||
│ ├───2018-12-14 Weihnachtsfeier Ranch
|
||||
│ ├───2018-12-24 Weihnachten
|
||||
│ ├───2018-12-26 Weihnachten Oma Gagsteiger
|
||||
│ ├───2018-12-27 Weihnachten Oma Emmert
|
||||
│ ├───2018-12-28 Urlaub Mittenwald
|
||||
│ └───2018-12-31 Silvester
|
||||
├───2019
|
||||
│ ├───2019-01-06 Familien Gottesdienst
|
||||
│ ├───2019-01-09 Hilux
|
||||
│ ├───2019-01-12 Leiteressen
|
||||
│ ├───2019-01-19 Timos Geburtstag
|
||||
│ ├───2019-01-25 Stammtreff
|
||||
│ ├───2019-01-26 60 Jahr Mutter
|
||||
│ ├───2019-03-08 Studioblitz
|
||||
│ ├───2019-03-10 Hochzeit Jürgen Agata
|
||||
│ ├───2019-03-11 Timos Geburtstagsfeier
|
||||
│ ├───2019-03-24 RR Godi
|
||||
│ ├───2019-03-29 Probehajk
|
||||
│ ├───2019-04-05 Teamstunde Jugend
|
||||
│ ├───2019-04-07 Internationales Essen
|
||||
│ ├───2019-04-14 Jugendsegnung
|
||||
│ ├───2019-04-16 Bundeshajk
|
||||
│ ├───2019-05-11 Absolventenfeier
|
||||
│ │ └───WT19
|
||||
│ ├───2019-05-12 Familiengottesdienst
|
||||
│ ├───2019-05-12 Oma und Opa
|
||||
│ ├───2019-05-18 Stammaktion
|
||||
│ │ └───1920
|
||||
│ ├───2019-05-19 Regen und Sonne
|
||||
│ ├───2019-05-21 Worriors Luck
|
||||
│ ├───2019-05-25 Hochzeit Benni Corinna
|
||||
│ │ ├───4 Trauung
|
||||
│ │ │ └───4 Trauung
|
||||
│ │ └───5 Feier
|
||||
│ │ └───5 Feier
|
||||
│ ├───2019-05-29 Veris Geburtstag
|
||||
│ ├───2019-06-07 Pfingstcamp
|
||||
│ │ ├───Martin
|
||||
│ │ └───together
|
||||
│ ├───2019-07-16 Bad Mergentheim
|
||||
│ ├───2019-07-26 Wasserschlacht
|
||||
│ │ └───1920
|
||||
│ ├───2019-07-31 Hochzeitsvideo
|
||||
│ ├───2019-08-12 Urlaub
|
||||
│ ├───2019-08-18 Gemeindefreizeit
|
||||
│ ├───2019-08-24 Hochzeit Hannah und Nate
|
||||
│ ├───2019-09-21 RR Jubiläum
|
||||
│ │ └───1920
|
||||
│ ├───2019-10-13 Regiotreff
|
||||
│ ├───2019-10-27 Oma und Sonst
|
||||
│ ├───2019-11-01 Leiterfreizeit
|
||||
│ │ └───1920
|
||||
│ ├───2019-11-05 Logistik Treff
|
||||
│ ├───2019-12-13 Weihnachtsfeier
|
||||
│ ├───2019-12-22 Flic Flac
|
||||
│ ├───2019-12-24 Weihnachten
|
||||
│ ├───2019-12-27 Oma Geburtstag
|
||||
│ └───2019-12-31 Silvester
|
||||
├───2020
|
||||
│ ├───2020-
|
||||
│ ├───2020-01-10 Stammtreff Starter
|
||||
│ ├───2020-01-12 Segnung Flo
|
||||
│ ├───2020-01-17 Firmenfeier Tiergarten
|
||||
│ ├───2020-01-24 Stammtreff
|
||||
│ ├───2020-02-08 Audi Bäume
|
||||
│ ├───2020-02-16 Johie und ich
|
||||
│ ├───2020-02-27 Winter
|
||||
│ ├───2020-02-29 Hochzeit Steffi Sören
|
||||
│ ├───2020-04-12 Garten
|
||||
│ ├───2020-05-07 Bewerbungsbilder
|
||||
│ ├───2020-05-29 Fichtelgebirge
|
||||
│ ├───2020-08-15 Hochzeit Ruben und Lisa
|
||||
│ ├───2020-08-22 Urlaub
|
||||
│ │ ├───23
|
||||
│ │ ├───24
|
||||
│ │ ├───25
|
||||
│ │ ├───26
|
||||
│ │ ├───27
|
||||
│ │ ├───28
|
||||
│ │ │ └───Sonnenuntergang
|
||||
│ │ ├───29
|
||||
│ │ │ └───Sonnenuntergang
|
||||
│ │ ├───30
|
||||
│ │ └───Sonnenuntergang
|
||||
│ ├───2020-09-04 Leiterfreizeit
|
||||
│ ├───2020-09-13 Gottesdienst
|
||||
│ ├───2020-09-20 Potraits
|
||||
│ ├───2020-09-25 Serengeti-Park
|
||||
│ │ └───Serengeti2020
|
||||
│ ├───2020-10-02 Stammtreff
|
||||
│ ├───2020-10-09 RR Theater
|
||||
│ ├───2020-10-10 Sponsorenlauf
|
||||
│ ├───2020-11-28 Walchensee
|
||||
│ └───2020-12-24 Weihnachten
|
||||
└───2021
|
||||
└───2021-02-12 Schneebilder
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_19">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-controls:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-controls:win:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:win:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-base:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-base:win:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:win:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-swing:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-swing:win:19.0.2.1" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.9.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.9.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.9.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.9.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-configuration2:2.8.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.9" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.drewnoakes:metadata-extractor:2.18.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.adobe.xmp:xmpcore:6.1.11" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,316 @@
|
|||
#!/bin/sh
|
||||
# ----------------------------------------------------------------------------
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Maven Start Up Batch script
|
||||
#
|
||||
# Required ENV vars:
|
||||
# ------------------
|
||||
# JAVA_HOME - location of a JDK home dir
|
||||
#
|
||||
# Optional ENV vars
|
||||
# -----------------
|
||||
# M2_HOME - location of maven2's installed home dir
|
||||
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
# e.g. to debug Maven itself, use
|
||||
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
||||
|
||||
if [ -f /usr/local/etc/mavenrc ] ; then
|
||||
. /usr/local/etc/mavenrc
|
||||
fi
|
||||
|
||||
if [ -f /etc/mavenrc ] ; then
|
||||
. /etc/mavenrc
|
||||
fi
|
||||
|
||||
if [ -f "$HOME/.mavenrc" ] ; then
|
||||
. "$HOME/.mavenrc"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# OS specific support. $var _must_ be set to either true or false.
|
||||
cygwin=false;
|
||||
darwin=false;
|
||||
mingw=false
|
||||
case "`uname`" in
|
||||
CYGWIN*) cygwin=true ;;
|
||||
MINGW*) mingw=true;;
|
||||
Darwin*) darwin=true
|
||||
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
||||
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
if [ -x "/usr/libexec/java_home" ]; then
|
||||
export JAVA_HOME="`/usr/libexec/java_home`"
|
||||
else
|
||||
export JAVA_HOME="/Library/Java/Home"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
if [ -r /etc/gentoo-release ] ; then
|
||||
JAVA_HOME=`java-config --jre-home`
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$M2_HOME" ] ; then
|
||||
## resolve links - $0 may be a link to maven's home
|
||||
PRG="$0"
|
||||
|
||||
# need this for relative symlinks
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG="`dirname "$PRG"`/$link"
|
||||
fi
|
||||
done
|
||||
|
||||
saveddir=`pwd`
|
||||
|
||||
M2_HOME=`dirname "$PRG"`/..
|
||||
|
||||
# make it fully qualified
|
||||
M2_HOME=`cd "$M2_HOME" && pwd`
|
||||
|
||||
cd "$saveddir"
|
||||
# echo Using m2 at $M2_HOME
|
||||
fi
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||
if $cygwin ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --unix "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
||||
fi
|
||||
|
||||
# For Mingw, ensure paths are in UNIX format before anything is touched
|
||||
if $mingw ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
javaExecutable="`which javac`"
|
||||
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
||||
# readlink(1) is not available as standard on Solaris 10.
|
||||
readLink=`which readlink`
|
||||
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
||||
if $darwin ; then
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
||||
else
|
||||
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
||||
fi
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
||||
JAVA_HOME="$javaHome"
|
||||
export JAVA_HOME
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$JAVACMD" ] ; then
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
else
|
||||
JAVACMD="`\\unset -f command; \\command -v java`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
echo "Error: JAVA_HOME is not defined correctly." >&2
|
||||
echo " We cannot execute $JAVACMD" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
echo "Warning: JAVA_HOME environment variable is not set."
|
||||
fi
|
||||
|
||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
||||
|
||||
# traverses directory structure from process work directory to filesystem root
|
||||
# first directory with .mvn subdirectory is considered project base directory
|
||||
find_maven_basedir() {
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "Path not specified to find_maven_basedir"
|
||||
return 1
|
||||
fi
|
||||
|
||||
basedir="$1"
|
||||
wdir="$1"
|
||||
while [ "$wdir" != '/' ] ; do
|
||||
if [ -d "$wdir"/.mvn ] ; then
|
||||
basedir=$wdir
|
||||
break
|
||||
fi
|
||||
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
||||
if [ -d "${wdir}" ]; then
|
||||
wdir=`cd "$wdir/.."; pwd`
|
||||
fi
|
||||
# end of workaround
|
||||
done
|
||||
echo "${basedir}"
|
||||
}
|
||||
|
||||
# concatenates all lines of a file
|
||||
concat_lines() {
|
||||
if [ -f "$1" ]; then
|
||||
echo "$(tr -s '\n' ' ' < "$1")"
|
||||
fi
|
||||
}
|
||||
|
||||
BASE_DIR=`find_maven_basedir "$(pwd)"`
|
||||
if [ -z "$BASE_DIR" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
##########################################################################################
|
||||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
##########################################################################################
|
||||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
||||
fi
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
||||
fi
|
||||
if [ -n "$MVNW_REPOURL" ]; then
|
||||
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
||||
else
|
||||
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
||||
fi
|
||||
while IFS="=" read key value; do
|
||||
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
|
||||
esac
|
||||
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Downloading from: $jarUrl"
|
||||
fi
|
||||
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
||||
if $cygwin; then
|
||||
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
|
||||
fi
|
||||
|
||||
if command -v wget > /dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found wget ... using wget"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
|
||||
else
|
||||
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
|
||||
fi
|
||||
elif command -v curl > /dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found curl ... using curl"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
curl -o "$wrapperJarPath" "$jarUrl" -f
|
||||
else
|
||||
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
||||
fi
|
||||
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Falling back to using Java to download"
|
||||
fi
|
||||
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
||||
# For Cygwin, switch paths to Windows format before running javac
|
||||
if $cygwin; then
|
||||
javaClass=`cygpath --path --windows "$javaClass"`
|
||||
fi
|
||||
if [ -e "$javaClass" ]; then
|
||||
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Compiling MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
# Compiling the Java class
|
||||
("$JAVA_HOME/bin/javac" "$javaClass")
|
||||
fi
|
||||
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
# Running the downloader
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Running MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
##########################################################################################
|
||||
# End of extension
|
||||
##########################################################################################
|
||||
|
||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo $MAVEN_PROJECTBASEDIR
|
||||
fi
|
||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
||||
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
||||
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
|
||||
fi
|
||||
|
||||
# Provide a "standardized" way to retrieve the CLI args that will
|
||||
# work with both Windows and non-Windows executions.
|
||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
||||
export MAVEN_CMD_LINE_ARGS
|
||||
|
||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
exec "$JAVACMD" \
|
||||
$MAVEN_OPTS \
|
||||
$MAVEN_DEBUG_OPTS \
|
||||
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
||||
"-Dmaven.home=${M2_HOME}" \
|
||||
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
||||
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
@REM ----------------------------------------------------------------------------
|
||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||
@REM or more contributor license agreements. See the NOTICE file
|
||||
@REM distributed with this work for additional information
|
||||
@REM regarding copyright ownership. The ASF licenses this file
|
||||
@REM to you under the Apache License, Version 2.0 (the
|
||||
@REM "License"); you may not use this file except in compliance
|
||||
@REM with the License. You may obtain a copy of the License at
|
||||
@REM
|
||||
@REM https://www.apache.org/licenses/LICENSE-2.0
|
||||
@REM
|
||||
@REM Unless required by applicable law or agreed to in writing,
|
||||
@REM software distributed under the License is distributed on an
|
||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@REM KIND, either express or implied. See the License for the
|
||||
@REM specific language governing permissions and limitations
|
||||
@REM under the License.
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Maven Start Up Batch script
|
||||
@REM
|
||||
@REM Required ENV vars:
|
||||
@REM JAVA_HOME - location of a JDK home dir
|
||||
@REM
|
||||
@REM Optional ENV vars
|
||||
@REM M2_HOME - location of maven2's installed home dir
|
||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
|
||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
@REM e.g. to debug Maven itself, use
|
||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
||||
@echo off
|
||||
@REM set title of command window
|
||||
title %0
|
||||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
|
||||
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
||||
|
||||
@REM set %HOME% to equivalent of $HOME
|
||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
||||
|
||||
@REM Execute a user defined script before this one
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
|
||||
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
|
||||
:skipRcPre
|
||||
|
||||
@setlocal
|
||||
|
||||
set ERROR_CODE=0
|
||||
|
||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
||||
@setlocal
|
||||
|
||||
@REM ==== START VALIDATION ====
|
||||
if not "%JAVA_HOME%" == "" goto OkJHome
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME not found in your environment. >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
:OkJHome
|
||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
@REM ==== END VALIDATION ====
|
||||
|
||||
:init
|
||||
|
||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
||||
@REM Fallback to current working directory if not found.
|
||||
|
||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
||||
|
||||
set EXEC_DIR=%CD%
|
||||
set WDIR=%EXEC_DIR%
|
||||
:findBaseDir
|
||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
||||
cd ..
|
||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
||||
set WDIR=%CD%
|
||||
goto findBaseDir
|
||||
|
||||
:baseDirFound
|
||||
set MAVEN_PROJECTBASEDIR=%WDIR%
|
||||
cd "%EXEC_DIR%"
|
||||
goto endDetectBaseDir
|
||||
|
||||
:baseDirNotFound
|
||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
||||
cd "%EXEC_DIR%"
|
||||
|
||||
:endDetectBaseDir
|
||||
|
||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
||||
|
||||
@setlocal EnableExtensions EnableDelayedExpansion
|
||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
||||
|
||||
:endReadAdditionalConfig
|
||||
|
||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
||||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
|
||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
||||
|
||||
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
|
||||
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
|
||||
)
|
||||
|
||||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
if exist %WRAPPER_JAR% (
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Found %WRAPPER_JAR%
|
||||
)
|
||||
) else (
|
||||
if not "%MVNW_REPOURL%" == "" (
|
||||
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
|
||||
)
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Couldn't find %WRAPPER_JAR%, downloading it ...
|
||||
echo Downloading from: %DOWNLOAD_URL%
|
||||
)
|
||||
|
||||
powershell -Command "&{"^
|
||||
"$webclient = new-object System.Net.WebClient;"^
|
||||
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
|
||||
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
|
||||
"}"^
|
||||
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
|
||||
"}"
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Finished downloading %WRAPPER_JAR%
|
||||
)
|
||||
)
|
||||
@REM End of extension
|
||||
|
||||
@REM Provide a "standardized" way to retrieve the CLI args that will
|
||||
@REM work with both Windows and non-Windows executions.
|
||||
set MAVEN_CMD_LINE_ARGS=%*
|
||||
|
||||
%MAVEN_JAVA_EXE% ^
|
||||
%JVM_CONFIG_MAVEN_PROPS% ^
|
||||
%MAVEN_OPTS% ^
|
||||
%MAVEN_DEBUG_OPTS% ^
|
||||
-classpath %WRAPPER_JAR% ^
|
||||
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
|
||||
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
|
||||
if ERRORLEVEL 1 goto error
|
||||
goto end
|
||||
|
||||
:error
|
||||
set ERROR_CODE=1
|
||||
|
||||
:end
|
||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
||||
|
||||
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
|
||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
|
||||
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
|
||||
:skipRcPost
|
||||
|
||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
||||
if "%MAVEN_BATCH_PAUSE%"=="on" pause
|
||||
|
||||
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
|
||||
|
||||
cmd /C exit /B %ERROR_CODE%
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>de.emmerts</groupId>
|
||||
<artifactId>Fotoverwaltung</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<name>Fotoverwaltung</name>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<junit.version>5.9.2</junit.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-controls</artifactId>
|
||||
<version>19.0.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-fxml</artifactId>
|
||||
<version>19.0.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-swing</artifactId>
|
||||
<version>19.0.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-configuration2</artifactId>
|
||||
<version>2.8.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.drewnoakes</groupId>
|
||||
<artifactId>metadata-extractor</artifactId>
|
||||
<version>2.18.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-swing</artifactId>
|
||||
<version>19.0.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.drewnoakes</groupId>
|
||||
<artifactId>metadata-extractor</artifactId>
|
||||
<version>2.18.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.10.1</version>
|
||||
<configuration>
|
||||
<source>19</source>
|
||||
<target>19</target>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-configuration2</artifactId>
|
||||
<version>2.8.0</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-maven-plugin</artifactId>
|
||||
<version>0.0.8</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<!-- Default configuration for running with: mvn clean javafx:run -->
|
||||
<id>default-cli</id>
|
||||
<configuration>
|
||||
<mainClass>de.emmerts.fotoverwaltung/de.emmerts.fotoverwaltung.MainApplication</mainClass>
|
||||
<launcher>app</launcher>
|
||||
<jlinkZipName>app</jlinkZipName>
|
||||
<jlinkImageName>app</jlinkImageName>
|
||||
<noManPages>true</noManPages>
|
||||
<stripDebug>true</stripDebug>
|
||||
<noHeaderFiles>true</noHeaderFiles>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
[window]
|
||||
lastWidth = 2725
|
||||
lastHeight = 1368
|
||||
|
||||
[directories]
|
||||
fileTreeJPG = P:\2009\2009_04_03 RR Stammtreff
|
||||
fileTreeCR2 = F:\SchatzkammerCR2 1TB\2009\2009_04_03 RR Stammtreff
|
||||
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
package de.emmerts.fotoverwaltung;
|
||||
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.control.TreeItem;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
import javafx.scene.layout.VBox;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public class FileTreeComponent extends VBox {
|
||||
private FileTreeController controller;
|
||||
|
||||
public FileTreeComponent(){
|
||||
FXMLLoader loader = new FXMLLoader(getClass().getResource("FileTree.fxml"));
|
||||
try {
|
||||
loader.setRoot(this);
|
||||
loader.load();
|
||||
controller = loader.getController();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void initialize(String id){
|
||||
super.setId(id);
|
||||
controller.id = getId();
|
||||
String defaultDirectory = MainApplication.config.getString("directories."+id);
|
||||
if(defaultDirectory != null) {
|
||||
openDirectory(new File(defaultDirectory));
|
||||
}
|
||||
if(id.equals("fileTreeCR2"))
|
||||
controller.treeView.setDisable(true);
|
||||
}
|
||||
|
||||
public void openDirectory(File f)
|
||||
{
|
||||
controller.selectedDirectory = f;
|
||||
controller.openDirectory();
|
||||
}
|
||||
public File getDirectory()
|
||||
{
|
||||
return controller.selectedDirectory;
|
||||
}
|
||||
/*
|
||||
@FXML
|
||||
protected void changeDirectory()
|
||||
{
|
||||
System.out.print("Button Clicked");
|
||||
}*/
|
||||
|
||||
public void next()
|
||||
{
|
||||
/*
|
||||
FileTreeItemComponent t = (FileTreeItemComponent) controller.treeView.getSelectionModel().getSelectedItem();
|
||||
ObservableList<Node> children = controller.treeView.getChildrenUnmodifiable();
|
||||
int index = children.indexOf(controller.treeView.getSelectionModel().getSelectedItem());
|
||||
if(index < children.size() - 1){
|
||||
Node nextSibling = children.get(index+1);
|
||||
nextSibling.requestFocus();
|
||||
}*/
|
||||
TreeItem<String> toRemove = controller.treeView.getSelectionModel().getSelectedItem();
|
||||
toRemove.getParent().getChildren().remove(toRemove);
|
||||
KeyCode keyCode = KeyCode.DOWN;
|
||||
KeyEvent keyPressEvent = new KeyEvent(KeyEvent.KEY_PRESSED, "", "", keyCode, false, false, false, false);
|
||||
KeyEvent keyReleaseEvent = new KeyEvent(KeyEvent.KEY_RELEASED, "", "", keyCode, false, false, false, false);
|
||||
controller.treeView.fireEvent(keyPressEvent);
|
||||
controller.treeView.fireEvent(keyReleaseEvent);
|
||||
}
|
||||
|
||||
public void displayTreeMap(TreeMap<String, File> files) {
|
||||
controller.displayTreeMap(files);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,194 @@
|
|||
package de.emmerts.fotoverwaltung;
|
||||
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.CheckBox;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.TreeItem;
|
||||
import javafx.scene.control.TreeView;
|
||||
import javafx.stage.DirectoryChooser;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
|
||||
public class FileTreeController{
|
||||
@FXML
|
||||
public TreeView<String> treeView;
|
||||
public Label label;
|
||||
|
||||
protected String id;
|
||||
File selectedDirectory;
|
||||
@FXML
|
||||
private CheckBox allowAllFileExtensions;
|
||||
|
||||
@FXML
|
||||
void initialize()
|
||||
{
|
||||
//label.setText(label.getParent().getAccessibleText());
|
||||
treeView.getSelectionModel().selectedItemProperty().addListener( new ChangeListener() {
|
||||
|
||||
@Override
|
||||
public void changed(ObservableValue observable, Object oldValue,
|
||||
Object newValue) {
|
||||
|
||||
FileTreeItemComponent selectedItem = (FileTreeItemComponent) newValue;
|
||||
if(selectedItem != null)
|
||||
{
|
||||
selectedItem.selectFileTreeItem();
|
||||
MainApplication.currentFile = selectedItem.content;
|
||||
}
|
||||
|
||||
// do what ever you want
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@FXML
|
||||
void allowAllFileExtensionsClick()
|
||||
{
|
||||
|
||||
}
|
||||
@FXML
|
||||
protected void openDirectoryInOS()
|
||||
{
|
||||
//selectedDirectory
|
||||
Desktop desktop = Desktop.getDesktop();
|
||||
try {
|
||||
desktop.open(selectedDirectory);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
@FXML
|
||||
protected void chooseDirectory(){
|
||||
DirectoryChooser dChooser = new DirectoryChooser();
|
||||
String defaultDirectory = MainApplication.config.getString("directories."+id);
|
||||
if(defaultDirectory != null)
|
||||
dChooser.setInitialDirectory(new File(defaultDirectory));
|
||||
selectedDirectory = dChooser.showDialog(MainApplication.controller.rootStage);
|
||||
if(selectedDirectory == null){
|
||||
return;
|
||||
}
|
||||
if(id.equals("fileTreeJPG"))
|
||||
{
|
||||
String dir = selectedDirectory.getParentFile().getName();
|
||||
File cr2Dir = MainApplication.controller.fileTreeCR2.getDirectory();
|
||||
while(!cr2Dir.getName().equals(dir))
|
||||
{
|
||||
cr2Dir = cr2Dir.getParentFile();
|
||||
}
|
||||
cr2Dir = new File(cr2Dir+"\\"+selectedDirectory.getName());
|
||||
MainApplication.controller.fileTreeCR2.openDirectory(cr2Dir);
|
||||
}
|
||||
openDirectory();
|
||||
}
|
||||
|
||||
protected void openDirectory(){
|
||||
MainApplication.config.setProperty("directories."+id, selectedDirectory.getAbsolutePath());
|
||||
treeView.setRoot(getFileList(selectedDirectory, true));
|
||||
}
|
||||
|
||||
FileTreeItemComponent getFileList(File root, boolean expand)
|
||||
{
|
||||
ArrayList<FileTreeItemComponent> files = new ArrayList<>();
|
||||
ArrayList<FileTreeItemComponent> directories = new ArrayList<>();
|
||||
File[] allFiles;
|
||||
if(allowAllFileExtensions.isSelected())
|
||||
allFiles = root.listFiles();
|
||||
else
|
||||
allFiles = root.listFiles(ff);
|
||||
for (File file : allFiles) {
|
||||
if(file.isDirectory())
|
||||
directories.add(getFileList(file, false));
|
||||
else
|
||||
files.add(new FileTreeItemComponent(file));
|
||||
}
|
||||
FileTreeItemComponent temp = new FileTreeItemComponent(root);
|
||||
temp.setExpanded(expand);
|
||||
temp.getChildren().addAll(directories);
|
||||
temp.getChildren().addAll(files);
|
||||
return temp;
|
||||
}
|
||||
|
||||
FileFilter ff = fileForFilter -> {
|
||||
if(fileForFilter.isDirectory())
|
||||
return true;
|
||||
ArrayList<String> allowedExtensions = new ArrayList<>();
|
||||
allowedExtensions.add(".cr2");
|
||||
allowedExtensions.add(".jpg");
|
||||
allowedExtensions.add(".jpeg");
|
||||
allowedExtensions.add(".gif");
|
||||
allowedExtensions.add(".png");
|
||||
for (String allowedExtension : allowedExtensions) {
|
||||
if (fileForFilter.getName().endsWith(allowedExtension) || fileForFilter.getName().endsWith(allowedExtension.toUpperCase()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
public void displayTreeMap(TreeMap<String, File> files) {
|
||||
FileTreeItemComponent temp = new FileTreeItemComponent(files.firstEntry().getValue().getParentFile().getParentFile());
|
||||
treeView.setRoot(temp);
|
||||
temp.setExpanded(true);
|
||||
Map.Entry<String,File> entry = files.pollFirstEntry();
|
||||
while(entry != null)
|
||||
{
|
||||
File toBeAdded = entry.getValue();
|
||||
temp.getChildren().add(new FileTreeItemComponent(toBeAdded));
|
||||
entry = files.pollFirstEntry();
|
||||
}
|
||||
}
|
||||
|
||||
private FileTreeItemComponent getOrCreateDirectory(File directory)
|
||||
{
|
||||
FileTreeItemComponent blubb = (FileTreeItemComponent) treeView.getRoot();
|
||||
for (TreeItem<String> child : blubb.getChildren()) {
|
||||
FileTreeItemComponent childFTIC = (FileTreeItemComponent) child;
|
||||
if(childFTIC.content.getAbsolutePath().equals(directory.getAbsolutePath())) {
|
||||
return childFTIC;
|
||||
}
|
||||
}
|
||||
FileTreeItemComponent newDirectory = new FileTreeItemComponent(directory);
|
||||
blubb.getChildren().add(newDirectory);
|
||||
newDirectory.setExpanded(true);
|
||||
return newDirectory;
|
||||
}
|
||||
|
||||
public void displayTreeMapOld(TreeMap<String, File> files) {
|
||||
FileTreeItemComponent temp = new FileTreeItemComponent(files.firstEntry().getValue().getParentFile().getParentFile());
|
||||
temp.setExpanded(true);
|
||||
ArrayList<FileTreeItemComponent> images = new ArrayList<>();
|
||||
Map.Entry<String, File> entry = files.pollFirstEntry();
|
||||
FileTreeItemComponent lastDirectory = null;
|
||||
while(entry != null) {
|
||||
File f = entry.getValue();
|
||||
if(lastDirectory == null)
|
||||
{
|
||||
lastDirectory = new FileTreeItemComponent(f.getParentFile());
|
||||
images.add(new FileTreeItemComponent(f));
|
||||
}else if(!lastDirectory.content.getAbsolutePath().equals(f.getParentFile().getAbsolutePath()))
|
||||
{
|
||||
lastDirectory.getChildren().addAll(images);
|
||||
temp.getChildren().add(lastDirectory);
|
||||
lastDirectory = new FileTreeItemComponent(f.getParentFile());
|
||||
images = new ArrayList<>();
|
||||
images.add(new FileTreeItemComponent(f));
|
||||
|
||||
}
|
||||
else {
|
||||
images.add(new FileTreeItemComponent(f));
|
||||
entry = files.pollFirstEntry();
|
||||
}
|
||||
|
||||
}
|
||||
treeView.setRoot(temp);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package de.emmerts.fotoverwaltung;
|
||||
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.scene.control.TreeItem;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class FileTreeItemComponent extends TreeItem<String> {
|
||||
File content;
|
||||
public FileTreeItemComponent(File file){
|
||||
content = file;
|
||||
setValue(content.getName());
|
||||
FXMLLoader loader = new FXMLLoader(getClass().getResource("FileTreeItem.fxml"));
|
||||
|
||||
try {
|
||||
loader.setRoot(this);
|
||||
loader.load();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void selectFileTreeItem()
|
||||
{
|
||||
System.out.println(content.getAbsolutePath());
|
||||
MainApplication.controller.displayImageFile(content);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package de.emmerts.fotoverwaltung;
|
||||
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.TreeItem;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class FileTreeItemController {
|
||||
@FXML
|
||||
void initialize()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
package de.emmerts.fotoverwaltung;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public class FindDiffs {
|
||||
TreeMap<String, File> cr2s = new TreeMap<>();
|
||||
TreeMap<String, File> jpg = new TreeMap<>();
|
||||
String subdirectory = "2009";
|
||||
public FindDiffs(String subdirectory)
|
||||
{
|
||||
this.subdirectory = subdirectory;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
File cr2Dir = new File("F:\\SchatzkammerCR2 1TB\\"+subdirectory);
|
||||
File schatzDir = new File("P:\\"+subdirectory);
|
||||
|
||||
System.out.println(cr2Dir.getAbsolutePath());
|
||||
System.out.println(schatzDir.getAbsolutePath());
|
||||
traverse(schatzDir, "jpgs");
|
||||
traverse(cr2Dir, "cr2s");
|
||||
System.out.println("fertig "+cr2s.size()+" CR2 Dateien ohne JPG gefunden");
|
||||
MainApplication.controller.fileTreeJPG.displayTreeMap(cr2s);
|
||||
}
|
||||
|
||||
public void traverse(File directory, String type)
|
||||
{
|
||||
File[] files = directory.listFiles();
|
||||
for (File file : files) {
|
||||
if(!file.isDirectory())
|
||||
{ String fullname = file.getAbsolutePath().toUpperCase();
|
||||
if(type.equals("cr2s")) {
|
||||
fullname = fullname.replace("F:\\SCHATZKAMMERCR2 1TB\\", "");
|
||||
fullname = fullname.replace(".CR2", ".JPG");
|
||||
if(!jpg.containsKey(fullname))
|
||||
cr2s.put(fullname, file);
|
||||
}
|
||||
else {
|
||||
fullname = fullname.replace("P:\\", "");
|
||||
jpg.put(fullname, file);
|
||||
}
|
||||
}
|
||||
else
|
||||
traverse(file, type);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,184 @@
|
|||
package de.emmerts.fotoverwaltung;
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.application.HostServices;
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.ButtonType;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.stage.WindowEvent;
|
||||
import org.apache.commons.configuration2.INIConfiguration;
|
||||
import org.apache.commons.configuration2.ex.ConfigurationException;
|
||||
import java.awt.Desktop;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Optional;
|
||||
|
||||
/*import org.apache.commons.configuration2;*/
|
||||
public class MainApplication extends Application {
|
||||
|
||||
static MainController controller;
|
||||
static File currentFile;
|
||||
static INIConfiguration config = new INIConfiguration();
|
||||
String iniFilename = "settings.ini";
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void start(Stage stage) throws IOException {
|
||||
FXMLLoader fxmlLoader = new FXMLLoader(MainApplication.class.getResource("MainApplication.fxml"));
|
||||
|
||||
try {
|
||||
config.read(new FileReader(iniFilename));
|
||||
} catch (ConfigurationException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
int lastWidth = Integer.parseInt(config.getString("window.lastWidth"));
|
||||
int lastHeight = Integer.parseInt(config.getString("window.lastHeight"));
|
||||
Scene scene = new Scene(fxmlLoader.load(), lastWidth, lastHeight);
|
||||
scene.widthProperty().addListener(new ChangeListener<Number>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
|
||||
System.out.println("Scene width changed from " + oldValue + " to " + newValue);
|
||||
config.setProperty("window.lastWidth", newValue.intValue());
|
||||
}
|
||||
});
|
||||
|
||||
scene.heightProperty().addListener(new ChangeListener<Number>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
|
||||
System.out.println("Scene height changed from " + oldValue + " to " + newValue);
|
||||
config.setProperty("window.lastHeight", newValue.intValue());
|
||||
}
|
||||
});
|
||||
|
||||
scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
|
||||
@Override
|
||||
public void handle(KeyEvent event) {
|
||||
switch (event.getCode()) {
|
||||
case DELETE: deleteImage();
|
||||
break;
|
||||
case M: moveImage();
|
||||
break;
|
||||
case RIGHT: controller.fileTreeJPG.next();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
stage.setTitle("Hello!");
|
||||
stage.setScene(scene);
|
||||
controller = fxmlLoader.getController();
|
||||
controller.rootStage = stage;
|
||||
|
||||
stage.show();
|
||||
stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
|
||||
@Override
|
||||
public void handle(WindowEvent event) {
|
||||
try {
|
||||
config.write(new FileWriter(iniFilename));
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Platform.exit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void moveImage() {
|
||||
System.out.println("Try to move "+currentFile.getAbsolutePath());
|
||||
if(currentFile.isDirectory())
|
||||
return;
|
||||
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
|
||||
alert.setTitle("Bestätigung");
|
||||
alert.setHeaderText("Sind Sie sicher?");
|
||||
alert.setContentText("Möchten Sie fortfahren?");
|
||||
File cr2 = null;
|
||||
Optional<ButtonType> result = alert.showAndWait();
|
||||
if (result.get() == ButtonType.OK){
|
||||
try{
|
||||
controller.closeImageViewer();
|
||||
String destination = currentFile.getParentFile().getAbsolutePath();
|
||||
destination = destination.replace("F:\\SchatzkammerCR2 1TB\\", "");
|
||||
destination = "P:\\"+destination+"\\"+currentFile.getName();
|
||||
Files.move(currentFile.toPath(), new File(destination).toPath());
|
||||
controller.fileTreeJPG.next();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
alert = new Alert(Alert.AlertType.ERROR);
|
||||
alert.setTitle("Verschieben fehlgeschlagen");
|
||||
alert.setContentText(e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch();
|
||||
}
|
||||
|
||||
void deleteImage()
|
||||
{
|
||||
//controller.fileTreeJPG.
|
||||
//controller.fileTreeJPG.
|
||||
|
||||
|
||||
if(currentFile.isDirectory())
|
||||
return;
|
||||
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
|
||||
alert.setTitle("Bestätigung");
|
||||
alert.setHeaderText("Sind Sie sicher?");
|
||||
alert.setContentText("Möchten Sie fortfahren?");
|
||||
File cr2 = null;
|
||||
if(currentFile.getName().toUpperCase().endsWith(".JPG"))
|
||||
{
|
||||
String fileName = currentFile.getName();
|
||||
int extensionIndex = currentFile.getName().lastIndexOf('.');
|
||||
if (extensionIndex > 0) {
|
||||
fileName = fileName.substring(0, extensionIndex);
|
||||
}
|
||||
String directory = currentFile.getParentFile().getAbsolutePath();
|
||||
if(!controller.cr2InSameDirectory.isSelected()) {
|
||||
directory = controller.fileTreeCR2.getDirectory().getAbsolutePath();
|
||||
}
|
||||
cr2 = new File(directory+"\\"+fileName+".cr2");
|
||||
if(!cr2.exists())
|
||||
cr2 = new File(directory+"\\"+fileName+".CR2");
|
||||
if(!cr2.exists())
|
||||
cr2 = null;
|
||||
}
|
||||
|
||||
Optional<ButtonType> result = alert.showAndWait();
|
||||
if (result.get() == ButtonType.OK){
|
||||
try{
|
||||
controller.closeImageViewer();
|
||||
boolean ret = currentFile.delete();
|
||||
System.out.println("Try to delete "+currentFile.getAbsolutePath()+"... "+(ret?"success":"fail"));
|
||||
if(cr2 != null) {
|
||||
ret = cr2.delete();
|
||||
System.out.println("Try to delete "+cr2.getAbsolutePath()+"... "+(ret?"success":"fail"));
|
||||
}
|
||||
controller.fileTreeJPG.next();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
alert = new Alert(Alert.AlertType.ERROR);
|
||||
alert.setTitle("Löschen fehlgeschlafen");
|
||||
alert.setContentText(e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,158 @@
|
|||
package de.emmerts.fotoverwaltung;
|
||||
|
||||
import com.drew.imaging.ImageMetadataReader;
|
||||
import com.drew.imaging.ImageProcessingException;
|
||||
import com.drew.metadata.Directory;
|
||||
import com.drew.metadata.Metadata;
|
||||
import com.drew.metadata.Tag;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.ButtonType;
|
||||
import javafx.scene.control.CheckBox;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.layout.StackPane;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.embed.swing.SwingFXUtils;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.*;
|
||||
|
||||
|
||||
public class MainController {
|
||||
public StackPane sp;
|
||||
public ImageView photoViewer;
|
||||
public CheckBox cr2InSameDirectory;
|
||||
public FileTreeComponent fileTreeJPG;
|
||||
public FileTreeComponent fileTreeCR2;
|
||||
public StackPane imageStackPane;
|
||||
@FXML
|
||||
private Label welcomeText;
|
||||
|
||||
protected Stage rootStage;
|
||||
|
||||
@FXML
|
||||
void initialize()
|
||||
{
|
||||
fileTreeCR2.initialize("fileTreeCR2");
|
||||
fileTreeJPG.initialize("fileTreeJPG");
|
||||
File f = new File("C:\\Users\\Bene\\IdeaProjects\\Fotoverwaltung\\src\\main\\resources\\de\\emmerts\\fotoverwaltung\\image.png");
|
||||
displayImageFile(f);
|
||||
//todo Image aus Ressource auslesen:
|
||||
//Image img= new Image(getClass().getResource("/path/in/your/package/structure/icon.png").toString());
|
||||
}
|
||||
|
||||
|
||||
@FXML
|
||||
protected void onHelloButtonClick() {
|
||||
}
|
||||
|
||||
public Metadata getExifData(File f){
|
||||
Metadata metadata = null;
|
||||
try {
|
||||
metadata = ImageMetadataReader.readMetadata(f);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
/*
|
||||
for (Directory directory : metadata.getDirectories()) {
|
||||
for (Tag tag : directory.getTags()) {
|
||||
System.out.println("");
|
||||
System.out.format("[%s] - %s = %s",
|
||||
directory.getName(), tag.getTagName(), tag.getDescription());
|
||||
}
|
||||
if (directory.hasErrors()) {
|
||||
for (String error : directory.getErrors()) {
|
||||
System.err.format("ERROR: %s", error);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
return metadata;
|
||||
}
|
||||
|
||||
public void displayImageFile(File f)
|
||||
{
|
||||
|
||||
if(f.isDirectory())
|
||||
return;
|
||||
|
||||
Metadata exifs = getExifData(f);
|
||||
outerLoop:
|
||||
for (Directory directory : exifs.getDirectories()) {
|
||||
for (Tag tag : directory.getTags()) {
|
||||
if(tag.getTagName().equals("Orientation"))
|
||||
{
|
||||
String desc = tag.getDescription();
|
||||
System.out.println(desc);
|
||||
if(desc.contains("normal") || desc.contains("Horizontal"))
|
||||
photoViewer.setRotate(0);
|
||||
if(desc.contains("270 CW"))
|
||||
photoViewer.setRotate(270);
|
||||
if(desc.contains("180 CW"))
|
||||
photoViewer.setRotate(180);
|
||||
if(desc.contains("90 CW"))
|
||||
photoViewer.setRotate(90);
|
||||
//Left side, bottom (Rotate 270 CW)
|
||||
//Top, left side (Horizontal / normal)
|
||||
break outerLoop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(f.getName().toUpperCase().endsWith(".CR2"))
|
||||
{
|
||||
BufferedImage cr2Image = null;
|
||||
try {
|
||||
cr2Image = ImageIO.read(f);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
// Convert the image data to a JavaFX Image
|
||||
Image fxImage = SwingFXUtils.toFXImage(cr2Image, null);
|
||||
photoViewer.setImage(fxImage);
|
||||
return;
|
||||
}
|
||||
InputStream stream = null;
|
||||
try {
|
||||
stream = new FileInputStream(f.getAbsoluteFile());
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Image image = new Image(stream);
|
||||
photoViewer.setImage(image);
|
||||
/*
|
||||
//Creating the image view
|
||||
ImageView imageView = new ImageView();
|
||||
//Setting image to the image view
|
||||
//Setting the image view parameters
|
||||
imageView.setX(10);
|
||||
imageView.setY(10);
|
||||
imageView.setFitWidth(575);
|
||||
imageView.setPreserveRatio(true);
|
||||
//Setting the Scene object
|
||||
photoViewer.getChildren().add(imageView);*/
|
||||
}
|
||||
|
||||
void displayCr2(File file)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@FXML
|
||||
void closeImageViewer(){
|
||||
photoViewer.setImage(null);
|
||||
System.gc();
|
||||
}
|
||||
|
||||
public void findDiffs(ActionEvent actionEvent) {
|
||||
String userInput = JOptionPane.showInputDialog(null, "Compare F:\\SchatzkammerCR2 1TB\\$Subdirectory with P:\\$Subdirectory? \nEnter a Subdirectory");
|
||||
if(userInput != null) {
|
||||
FindDiffs fd = new FindDiffs(userInput);
|
||||
fd.run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
module de.emmerts.fotoverwaltung {
|
||||
requires javafx.controls;
|
||||
requires javafx.fxml;
|
||||
requires org.apache.commons.configuration2;
|
||||
requires metadata.extractor;
|
||||
requires java.desktop;
|
||||
requires javafx.swing;
|
||||
|
||||
opens de.emmerts.fotoverwaltung to javafx.fxml;
|
||||
exports de.emmerts.fotoverwaltung;
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<fx:root type="javafx.scene.layout.VBox" xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="de.emmerts.fotoverwaltung.FileTreeController"
|
||||
prefHeight="400.0" minWidth="300.0">
|
||||
<Label fx:id="label"/>
|
||||
<HBox>
|
||||
<Button onAction="#chooseDirectory" text="choose directory"/>
|
||||
<Button onAction="#openDirectoryInOS" text="open"/>
|
||||
<CheckBox text="Alle Dateiendungen anzeigen" fx:id="allowAllFileExtensions" onAction="#allowAllFileExtensionsClick" visible="false"/>
|
||||
</HBox>
|
||||
<TreeView fx:id="treeView">
|
||||
</TreeView>
|
||||
</fx:root>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<fx:root type="javafx.scene.control.TreeItem" xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="de.emmerts.fotoverwaltung.FileTreeItemController" >
|
||||
</fx:root>
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.layout.StackPane?>
|
||||
<?import javafx.scene.image.ImageView?>
|
||||
<?import javafx.scene.control.TableView?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.control.MenuBar?>
|
||||
|
||||
<?import de.emmerts.fotoverwaltung.FileTreeComponent?>
|
||||
<?import javafx.scene.control.CheckBox?>
|
||||
<VBox xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="de.emmerts.fotoverwaltung.MainController">
|
||||
<MenuBar>
|
||||
|
||||
</MenuBar>
|
||||
<HBox>
|
||||
<padding>
|
||||
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>
|
||||
</padding>
|
||||
<CheckBox fx:id="cr2InSameDirectory" text="CR2 im gleichen Verzeichnis"/>
|
||||
<Button onAction="#closeImageViewer">GC</Button>
|
||||
<Button onAction="#findDiffs">find Diffs</Button>
|
||||
</HBox>
|
||||
|
||||
<HBox>
|
||||
<padding>
|
||||
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>
|
||||
</padding>
|
||||
<StackPane fx:id="sp">
|
||||
|
||||
</StackPane>
|
||||
<FileTreeComponent fx:id="fileTreeJPG"/>
|
||||
<FileTreeComponent fx:id="fileTreeCR2"/>
|
||||
<StackPane prefHeight="3000" prefWidth="4000" fx:id="imageStackPane">
|
||||
<ImageView fx:id="photoViewer" fitWidth="${imageStackPane.width}" fitHeight="${imageStackPane.height}" managed="false">
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<preserveRatio>true</preserveRatio>
|
||||
</ImageView>
|
||||
</StackPane>
|
||||
</HBox>
|
||||
</VBox>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-10.6-3.47l1.63 2.18 2.58-3.22c.2-.25.58-.25.78 0l2.96 3.7c.26.33.03.81-.39.81H9c-.41 0-.65-.47-.4-.8l2-2.67c.2-.26.6-.26.8 0zM2 7v13c0 1.1.9 2 2 2h13c.55 0 1-.45 1-1s-.45-1-1-1H5c-.55 0-1-.45-1-1V7c0-.55-.45-1-1-1s-1 .45-1 1z"/></svg>
|
||||
|
After Width: | Height: | Size: 444 B |
Loading…
Reference in New Issue