Skip to content
Snippets Groups Projects
Commit 7cf6e3f1 authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

Add listener based style classes to pad preview

parent 7d181251
No related branches found
No related tags found
No related merge requests found
......@@ -92,7 +92,7 @@ public class DesktopPadView implements IPadView {
infoBox = new PadHBox(5);
preview = new HBox();
preview = PadHBox.deepStyled(STYLE_CLASS_PAD_TITLE, STYLE_CLASS_PAD_TITLE_INDEX);
HBox.setHgrow(preview, Priority.ALWAYS);
VBox.setVgrow(preview, Priority.ALWAYS);
......@@ -148,8 +148,6 @@ public class DesktopPadView implements IPadView {
previewContent = connect.getPadContentPreview(pad, preview);
Node node = previewContent.getNode();
node.getStyleClass().addAll("pad-title", "pad" + pad.getPadIndex() + "-title");
// Copy Pseudoclasses
for (PseudoClass pseudoClass : superRoot.getPseudoClassStates()) {
node.pseudoClassStateChanged(pseudoClass, true);
......@@ -163,11 +161,6 @@ public class DesktopPadView implements IPadView {
}
}
EmptyPadView view = new EmptyPadView(preview);
if (pad != null) {
view.getStyleClass().addAll("pad-title", "pad" + pad.getPadIndex() + "-title");
} else {
view.getStyleClass().addAll("pad-title");
}
preview.getChildren().setAll(view);
}
......@@ -195,10 +188,6 @@ public class DesktopPadView implements IPadView {
this.indexLabel.setText(text);
}
ProgressBar getPlayBar() {
return playBar;
}
@Override
public void pseudoClassState(PseudoClass pseudoClass, boolean active) {
NodeWalker.getAllNodes(getRootNode())
......@@ -247,8 +236,7 @@ public class DesktopPadView implements IPadView {
triggerLabel.setVisible(hasTriggerItems);
}
void
setTime(String time) {
void setTime(String time) {
if (time == null) {
timeLabel.setText("");
} else {
......@@ -295,8 +283,6 @@ public class DesktopPadView implements IPadView {
@Override
public void applyStyleClasses(PadIndex index) {
preview.getChildren().forEach(i -> i.getStyleClass().addAll("pad-title", "pad" + index + "-title"));
NodeWalker.getAllNodes(getRootNode())
.stream()
.filter(node -> node instanceof PadIndexable)
......@@ -305,8 +291,6 @@ public class DesktopPadView implements IPadView {
@Override
public void removeStyleClasses() {
preview.getChildren().forEach(i -> i.getStyleClass().removeIf(c -> c.startsWith("pad")));
NodeWalker.getAllNodes(getRootNode())
.stream()
.filter(node -> node instanceof PadIndexable)
......
......@@ -326,7 +326,7 @@ public class DesktopPadViewController implements IPadViewController, EventHandle
padView.getSettingsButton().setDisable(true);
}
// Alles Desktivieren, wenn nicht Play Mode
// Alles Deaktivieren, wenn nicht Play Mode
if (connect.getEditMode() != DesktopEditMode.PLAY) {
padView.getPlayButton().setDisable(true);
padView.getPauseButton().setDisable(true);
......
package de.tobias.playpad.view.pad;
import de.tobias.playpad.project.page.PadIndex;
import javafx.beans.InvalidationListener;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.scene.Node;
import javafx.scene.layout.HBox;
import java.util.LinkedList;
import java.util.List;
public class PadHBox extends HBox implements PadIndexable {
private final ObjectProperty<PadIndex> indexProperty;
private final List<StyleIndexListener> styleListeners = new LinkedList<>();
public static PadHBox deepStyled(String... styleClasses) {
PadHBox padHBox = new PadHBox(styleClasses);
padHBox.getChildren().addListener((InvalidationListener) observable -> {
for (StyleIndexListener listener : padHBox.styleListeners) {
padHBox.indexProperty.removeListener(listener);
}
padHBox.styleListeners.clear();
for (Node child : padHBox.getChildren()) {
StyleIndexListener listener = new StyleIndexListener(child, styleClasses);
padHBox.indexProperty.addListener(listener);
padHBox.styleListeners.add(listener);
listener.changed(padHBox.indexProperty, null, padHBox.indexProperty.get());
}
});
return padHBox;
}
public PadHBox(String... styleClasses) {
this(0, styleClasses);
}
public PadHBox(double spacing, String... styleClasses) {
super(spacing);
indexProperty = new SimpleObjectProperty<>();
......
......@@ -12,6 +12,7 @@ public class PadVBox extends VBox implements PadIndexable {
public PadVBox(String... styleClasses) {
this(0, styleClasses);
}
public PadVBox(double spacing, String... styleClasses) {
super(spacing);
indexProperty = new SimpleObjectProperty<>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment