Skip to content
Snippets Groups Projects
Commit 6acdf9aa authored by Robert Goldmann's avatar Robert Goldmann
Browse files

scrooooooolllll

parent 7ee5c6dd
No related branches found
No related tags found
No related merge requests found
package de.bricked.ui;
import java.util.Set;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.geometry.Orientation;
import javafx.scene.Node;
import javafx.scene.control.ListView;
import javafx.scene.control.ScrollBar;
@SuppressWarnings({"rawtypes", "unchecked"})
public class CustomListView<T> extends ListView<T>
{
private ListChangeListener listChangeListener = null;
public CustomListView(ObservableList<T> items)
{
super(items);
}
public void setHScrollBarEnabled(boolean value)
{
setScrollBarEnabled(value, Orientation.HORIZONTAL);
}
private void setScrollBarEnabled(boolean value, Orientation orientation)
{
Set<Node> set = this.lookupAll("VirtualScrollBar");
for(Node n : set)
{
ScrollBar bar = (ScrollBar)n;
if(bar.getOrientation() == orientation)
{
if(value)
{
bar.setVisible(true);
bar.setDisable(false);
bar.setStyle("-fx-opacity: 100%");
}
else
{
bar.setVisible(false);
bar.setDisable(true);
bar.setStyle("-fx-opacity: 0%");
}
}
}
}
public void setVScrollBarEnabled(boolean value)
{
setScrollBarEnabled(value, Orientation.VERTICAL);
}
public void setAutoScrollEnabled(boolean value)
{
if(value)
{
listChangeListener = new ListChangeListener()
{
@Override
public void onChanged(Change c)
{
c.next();
final int size = getItems().size();
if(size > 0)
{
scrollTo(size - 1);
}
}
};
getItems().addListener(listChangeListener);
}
else
{
if(listChangeListener != null)
{
getItems().removeListener(listChangeListener);
listChangeListener = null;
}
}
}
}
\ No newline at end of file
...@@ -3,7 +3,6 @@ package de.bricked.ui; ...@@ -3,7 +3,6 @@ package de.bricked.ui;
import java.io.IOException; import java.io.IOException;
import java.util.Locale; import java.util.Locale;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.Set;
import de.bricked.game.Game; import de.bricked.game.Game;
import de.bricked.game.levels.LevelPack; import de.bricked.game.levels.LevelPack;
...@@ -14,14 +13,11 @@ import javafx.collections.FXCollections; ...@@ -14,14 +13,11 @@ import javafx.collections.FXCollections;
import javafx.event.EventHandler; import javafx.event.EventHandler;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader; import javafx.fxml.FXMLLoader;
import javafx.geometry.Orientation;
import javafx.scene.Node;
import javafx.scene.Parent; import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.ListCell; import javafx.scene.control.ListCell;
import javafx.scene.control.ListView; import javafx.scene.control.ListView;
import javafx.scene.control.ScrollBar;
import javafx.scene.control.ScrollPane; import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPane.ScrollBarPolicy; import javafx.scene.control.ScrollPane.ScrollBarPolicy;
import javafx.scene.image.Image; import javafx.scene.image.Image;
...@@ -94,7 +90,7 @@ public class LevelPackSelectController ...@@ -94,7 +90,7 @@ public class LevelPackSelectController
public void reload() public void reload()
{ {
ListView<LevelPack> listView = new ListView<LevelPack>(FXCollections.observableList(LevelPackHandler.getAllLevelPacks())); CustomListView<LevelPack> listView = new CustomListView<LevelPack>(FXCollections.observableList(LevelPackHandler.getAllLevelPacks()));
listView.setCellFactory(new Callback<ListView<LevelPack>, ListCell<LevelPack>>() listView.setCellFactory(new Callback<ListView<LevelPack>, ListCell<LevelPack>>()
{ {
...@@ -106,19 +102,7 @@ public class LevelPackSelectController ...@@ -106,19 +102,7 @@ public class LevelPackSelectController
}); });
listView.setStyle("-fx-background-color: transparent"); listView.setStyle("-fx-background-color: transparent");
//makes horizontal scrollbar invisible listView.setHScrollBarEnabled(false);
Set<Node> set = listView.lookupAll("VirtualScrollBar");
for (Node n : set)
{
ScrollBar bar = (ScrollBar) n;
if (bar.getOrientation() == Orientation.HORIZONTAL)
{
bar.setVisible(false);
bar.setDisable(true);
bar.setStyle("-fx-opacity: 0%");
}
}
listView.prefWidthProperty().bind(pane.maxWidthProperty()); listView.prefWidthProperty().bind(pane.maxWidthProperty());
listView.prefHeightProperty().bind(pane.maxHeightProperty().subtract(10)); listView.prefHeightProperty().bind(pane.maxHeightProperty().subtract(10));
......
...@@ -3,7 +3,6 @@ package de.bricked.ui; ...@@ -3,7 +3,6 @@ package de.bricked.ui;
import java.io.IOException; import java.io.IOException;
import java.util.Locale; import java.util.Locale;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.Set;
import de.bricked.game.Game; import de.bricked.game.Game;
import de.bricked.game.levels.Level; import de.bricked.game.levels.Level;
...@@ -14,14 +13,11 @@ import javafx.collections.FXCollections; ...@@ -14,14 +13,11 @@ import javafx.collections.FXCollections;
import javafx.event.EventHandler; import javafx.event.EventHandler;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader; import javafx.fxml.FXMLLoader;
import javafx.geometry.Orientation;
import javafx.scene.Node;
import javafx.scene.Parent; import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.ListCell; import javafx.scene.control.ListCell;
import javafx.scene.control.ListView; import javafx.scene.control.ListView;
import javafx.scene.control.ScrollBar;
import javafx.scene.control.ScrollPane; import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPane.ScrollBarPolicy; import javafx.scene.control.ScrollPane.ScrollBarPolicy;
import javafx.scene.image.Image; import javafx.scene.image.Image;
...@@ -96,7 +92,7 @@ public class LevelSelectController ...@@ -96,7 +92,7 @@ public class LevelSelectController
public void reload() public void reload()
{ {
ListView<Level> listView = new ListView<Level>(FXCollections.observableList(game.getLevelPack().getLevels())); CustomListView<Level> listView = new CustomListView<Level>(FXCollections.observableList(game.getLevelPack().getLevels()));
listView.setCellFactory(new Callback<ListView<Level>, ListCell<Level>>() listView.setCellFactory(new Callback<ListView<Level>, ListCell<Level>>()
{ {
...@@ -108,19 +104,7 @@ public class LevelSelectController ...@@ -108,19 +104,7 @@ public class LevelSelectController
}); });
listView.setStyle("-fx-background-color: transparent"); listView.setStyle("-fx-background-color: transparent");
// makes horizontal scrollbar invisible listView.setHScrollBarEnabled(false);
Set<Node> set = listView.lookupAll("VirtualScrollBar");
for(Node n : set)
{
ScrollBar bar = (ScrollBar)n;
if(bar.getOrientation() == Orientation.HORIZONTAL)
{
bar.setVisible(false);
bar.setDisable(true);
bar.setStyle("-fx-opacity: 0%");
}
}
listView.prefWidthProperty().bind(pane.maxWidthProperty()); listView.prefWidthProperty().bind(pane.maxWidthProperty());
listView.prefHeightProperty().bind(pane.maxHeightProperty().subtract(10)); listView.prefHeightProperty().bind(pane.maxHeightProperty().subtract(10));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment