21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 package ensemble; 34 35 import javafx.beans.property.ReadOnlyStringProperty; 36 import javafx.beans.property.ReadOnlyStringWrapper; 37 import javafx.beans.value.ChangeListener; 38 import javafx.beans.value.ObservableValue; 39 import javafx.css.PseudoClass; 40 import javafx.event.ActionEvent; 41 import javafx.event.EventHandler; 42 import javafx.geometry.Bounds; 43 import javafx.geometry.Pos; 44 import javafx.scene.Node; 45 import javafx.scene.control.Button; 46 import javafx.scene.control.ContentDisplay; 47 import javafx.scene.control.ListCell; 48 import javafx.scene.control.ListView; 49 import javafx.scene.control.Pagination; 50 import javafx.scene.control.Skin; 51 import javafx.scene.effect.BlendBuilder; 52 import javafx.scene.effect.BlurType; 53 import javafx.scene.effect.DropShadowBuilder; 54 import javafx.scene.effect.Effect; 55 import javafx.scene.effect.InnerShadowBuilder; 56 import javafx.scene.image.Image; 57 import javafx.scene.image.ImageView; 58 import javafx.scene.layout.HBox; 59 import javafx.scene.layout.Region; 60 import javafx.scene.paint.Color; 61 import javafx.scene.text.Text; 62 import javafx.util.Callback; 63 import java.lang.ref.Reference; 64 import java.lang.ref.WeakReference; 65 import java.util.ArrayList; 66 import java.util.Arrays; 67 import java.util.List; 68 import java.util.Map; 69 import java.util.WeakHashMap; 70 import ensemble.generated.Samples; 71 import static ensemble.EnsembleApp.SHOW_HIGHLIGHTS; 72 73 /** 74 * The home page for ensemble. 75 */ 76 public class HomePage extends ListView<HomePage.HomePageRow> implements Callback<ListView<HomePage.HomePageRow>, ListCell<HomePage.HomePageRow>>, ChangeListener<Number>, Page{ 77 private static final int ITEM_WIDTH = 216; 78 private static final int ITEM_HEIGHT = 162; 79 private static final int ITEM_GAP = 32; 80 private static final int MIN_MARGIN = 20; | 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 package ensemble; 34 35 import javafx.beans.property.ReadOnlyStringProperty; 36 import javafx.beans.property.ReadOnlyStringWrapper; 37 import javafx.beans.value.ChangeListener; 38 import javafx.beans.value.ObservableValue; 39 import javafx.css.PseudoClass; 40 import javafx.event.ActionEvent; 41 import javafx.geometry.Pos; 42 import javafx.scene.Node; 43 import javafx.scene.control.Button; 44 import javafx.scene.control.ContentDisplay; 45 import javafx.scene.control.ListCell; 46 import javafx.scene.control.ListView; 47 import javafx.scene.control.Pagination; 48 import javafx.scene.control.Skin; 49 import javafx.scene.image.Image; 50 import javafx.scene.image.ImageView; 51 import javafx.scene.layout.HBox; 52 import javafx.scene.text.Text; 53 import javafx.util.Callback; 54 import java.lang.ref.Reference; 55 import java.lang.ref.WeakReference; 56 import java.util.ArrayList; 57 import java.util.Arrays; 58 import java.util.List; 59 import java.util.Map; 60 import java.util.WeakHashMap; 61 import ensemble.generated.Samples; 62 import static ensemble.EnsembleApp.SHOW_HIGHLIGHTS; 63 64 /** 65 * The home page for ensemble. 66 */ 67 public class HomePage extends ListView<HomePage.HomePageRow> implements Callback<ListView<HomePage.HomePageRow>, ListCell<HomePage.HomePageRow>>, ChangeListener<Number>, Page{ 68 private static final int ITEM_WIDTH = 216; 69 private static final int ITEM_HEIGHT = 162; 70 private static final int ITEM_GAP = 32; 71 private static final int MIN_MARGIN = 20; |