Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Switch to GitLab Next
Sign in / Register
Toggle navigation
Open sidebar
PublicCode
Churchtools-to-Songbeamer
Commits
0c5f4d1a
Commit
0c5f4d1a
authored
Aug 21, 2018
by
Marcel
Browse files
#2
kill Songbeamer and start with downloaded agenda
parent
7e75adbc
Pipeline
#28387632
passed with stage
in 1 minute and 37 seconds
Changes
9
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
71 additions
and
10 deletions
+71
-10
docs/application.yml
docs/application.yml
+1
-0
docs/config.md
docs/config.md
+5
-0
pom.xml
pom.xml
+1
-1
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/ChurchtoolsToSongbeamerApplication.java
...toolstosongbeamer/ChurchtoolsToSongbeamerApplication.java
+8
-8
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/config/ChurchtoolsConfig.java
...art/churchtoolstosongbeamer/config/ChurchtoolsConfig.java
+1
-1
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/config/SongbeamerConfig.java
...gart/churchtoolstosongbeamer/config/SongbeamerConfig.java
+3
-0
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/service/AgendaConverterService.java
...urchtoolstosongbeamer/service/AgendaConverterService.java
+7
-0
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/service/SbControllerService.java
.../churchtoolstosongbeamer/service/SbControllerService.java
+42
-0
src/main/resources/application.yml
src/main/resources/application.yml
+3
-0
No files found.
docs/application.yml
View file @
0c5f4d1a
...
...
@@ -4,5 +4,6 @@ churchtools:
user-token
:
'
'
songbeamer
:
install-path
:
'
C:\Program
Files
(x86)\SongBeamer'
agenda-base-folder
:
'
C:\SongBeamer\Agenda'
songs-base-folder
:
'
C:\SongBeamer\Songs'
docs/config.md
View file @
0c5f4d1a
...
...
@@ -9,6 +9,7 @@ churchtools:
user-token: 'in ChurchDB generierte Token hier eintragen'
songbeamer:
install-path: 'C:\Program Files (x86)\SongBeamer'
agenda-base-folder: 'C:\Users\Benutzername\Documents\SongBeamer'
songs-base-folder: 'C:\Users\Benutzername\Documents\SongBeamer\Songs'
...
...
@@ -31,6 +32,10 @@ Um einen Token zu erstellen, in ChurchDB den Benutzer wählen.
Dort auf
`Berechtigungen`
klicken.
Im Popup auf
`Login-Token`
klicken und den Login-Token kopieren.
### Install Path
Der Pfad unter dem der SongBeamer installiert ist.
### Agenda Base Folder
Hier werden die ausgewählten Abläufe abgespeichert.
...
...
pom.xml
View file @
0c5f4d1a
...
...
@@ -5,7 +5,7 @@
<groupId>
de.apis-stuttgart
</groupId>
<artifactId>
churchtools-to-songbeamer
</artifactId>
<version>
1.
0.1
</version>
<version>
1.
1.0
</version>
<packaging>
jar
</packaging>
<name>
churchtools-to-songbeamer
</name>
...
...
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/ChurchtoolsToSongbeamerApplication.java
View file @
0c5f4d1a
...
...
@@ -40,11 +40,11 @@ public class ChurchtoolsToSongbeamerApplication {
// Check config
if
(
churchtoolsConfig
.
getUrlBase
().
isEmpty
())
{
showMessage
(
"Bitte Churchtools Instanz richtig konfigurieren"
);
showMessage
(
"Bitte Churchtools Instanz richtig konfigurieren
.
"
);
}
else
if
(
churchtoolsConfig
.
getUserId
().
isEmpty
())
{
showMessage
(
"Bitte die User ID richtig konfigurieren"
);
showMessage
(
"Bitte die User ID richtig konfigurieren
.
"
);
}
else
if
(
churchtoolsConfig
.
getUserToken
().
isEmpty
())
{
showMessage
(
"Bitte die User Token richtig konfigurieren"
);
showMessage
(
"Bitte die User Token richtig konfigurieren
.
"
);
// Config seems correct
}
else
{
...
...
@@ -63,12 +63,12 @@ public class ChurchtoolsToSongbeamerApplication {
JFrame
jFrame
=
new
JFrame
(
"Churchtools to Songbeamer"
);
jFrame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
contentPanel
=
jFrame
.
getContentPane
();
JLabel
jLabelLoading
=
new
JLabel
(
"Bitte warten, die Daten werden geladen."
);
contentPanel
.
add
(
jLabelLoading
);
contentPanel
.
setLayout
(
new
BorderLayout
());
jFrame
.
setSize
(
400
,
400
);
jFrame
.
setVisible
(
true
);
showMessage
(
"Bitte warten, die Daten werden geladen."
);
}
...
...
@@ -77,14 +77,14 @@ public class ChurchtoolsToSongbeamerApplication {
JLabel
jLabel
=
new
JLabel
(
message
);
contentPanel
.
add
(
jLabel
);
contentPanel
.
add
(
jLabel
,
BorderLayout
.
NORTH
);
contentPanel
.
revalidate
();
contentPanel
.
repaint
();
}
protected
static
void
showEventList
(
CtEvent
[]
ctEvents
,
AgendaConverterService
agendaConverterService
)
{
contentPanel
.
removeAll
(
);
showMessage
(
"Agenda auswählen um diese im SongBeamer zu öffnen."
);
JList
list
=
new
JList
(
ctEvents
);
list
.
setSelectionMode
(
ListSelectionModel
.
SINGLE_SELECTION
);
...
...
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/config/ChurchtoolsConfig.java
View file @
0c5f4d1a
...
...
@@ -21,7 +21,7 @@ public class ChurchtoolsConfig {
public
String
getUrlBase
()
{
if
(
instance
==
null
||
instance
.
isEmpty
())
{
log
.
error
(
"Please set the churchtools instance"
);
return
"
http://localhost
"
;
return
""
;
}
return
"https://"
+
instance
+
".church.tools/index.php"
;
...
...
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/config/SongbeamerConfig.java
View file @
0c5f4d1a
...
...
@@ -15,6 +15,9 @@ public class SongbeamerConfig {
protected
String
agendaExtension
;
protected
String
songsExtension
;
protected
String
installPath
;
protected
String
executableName
;
protected
String
agendaBaseFolder
;
protected
String
songsBaseFolder
;
protected
String
songsSubFolder
;
...
...
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/service/AgendaConverterService.java
View file @
0c5f4d1a
...
...
@@ -27,6 +27,9 @@ public class AgendaConverterService {
@Autowired
protected
SongbeamerConfig
songbeamerConfig
;
@Autowired
protected
SbControllerService
sbControllerService
;
protected
static
String
LINE_SEPARATOR
=
System
.
getProperty
(
"line.separator"
);
...
...
@@ -68,6 +71,10 @@ public class AgendaConverterService {
Files
.
write
(
sbAgendaFile
,
sbAgenda
.
toString
().
getBytes
(
StandardCharsets
.
ISO_8859_1
));
log
.
info
(
"Songbeamer agenda was written to "
+
sbAgendaFile
.
toAbsolutePath
().
toString
());
sbControllerService
.
stopSongBeamer
();
sbControllerService
.
startSongBeamer
(
sbAgendaFile
.
toAbsolutePath
().
toString
());
}
catch
(
IOException
e
)
{
log
.
error
(
"Unable to write songbeamer agenda to "
+
sbAgendaFile
.
toAbsolutePath
().
toString
(),
e
);
}
...
...
src/main/java/de/apisstuttgart/churchtoolstosongbeamer/service/SbControllerService.java
0 → 100644
View file @
0c5f4d1a
package
de.apisstuttgart.churchtoolstosongbeamer.service
;
import
de.apisstuttgart.churchtoolstosongbeamer.config.SongbeamerConfig
;
import
lombok.extern.apachecommons.CommonsLog
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
@Service
@CommonsLog
public
class
SbControllerService
{
protected
static
String
FILE_SEPARATOR
=
System
.
getProperty
(
"file.separator"
);
@Autowired
protected
SongbeamerConfig
songbeamerConfig
;
public
void
startSongBeamer
(
String
agendaPath
)
{
String
executablePath
=
appendPathSeparator
(
songbeamerConfig
.
getInstallPath
())
+
songbeamerConfig
.
getExecutableName
();
runCommand
(
"\""
+
executablePath
+
"\" \""
+
agendaPath
+
"\""
);
}
public
void
stopSongBeamer
()
{
runCommand
(
"taskkill /t /IM SongBeamer.exe"
);
}
private
void
runCommand
(
String
command
)
{
try
{
Runtime
.
getRuntime
().
exec
(
command
);
Thread
.
sleep
(
1000
);
}
catch
(
IOException
|
InterruptedException
e
)
{
log
.
error
(
"Could not run command: "
+
command
);
}
}
private
String
appendPathSeparator
(
String
string
)
{
return
string
+
(
string
!=
null
&&
!
string
.
endsWith
(
FILE_SEPARATOR
)
?
FILE_SEPARATOR
:
""
);
}
}
src/main/resources/application.yml
View file @
0c5f4d1a
...
...
@@ -6,6 +6,9 @@ churchtools:
songbeamer
:
agenda-extension
:
'
.col'
songs-extension
:
'
.sng'
executable-name
:
'
SongBeamer.exe'
install-path
:
'
C:\Program
Files
(x86)\SongBeamer'
agenda-base-folder
:
'
C:\SongBeamer\Agenda'
songs-base-folder
:
'
C:\SongBeamer\Songs'
songs-sub-folder
:
'
churchtools-to-songbeamer'
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment