private int GetItemIdOfFrame(Frame frame) { PixelOffset = (int) LibScroll.GetValue(); ViewIndex = (int) Math.floor((double) PixelOffset / (LIST_ELEMENT_HEIGHT + LIST_ELEMENT_SPACING)); int id = ViewIndex + ScrollList.indexOf(frame); if (CurrentList == 0) { return (int) ActiveList.get(id); } else if (CurrentList >= 1 && CurrentList <= 4) { return (int) ((Item) ActiveList.get(id)).getId(); } return 0; }
private void SetFrames() { AccountCredit.SetText(String.format("Credit: $%.2f", Driver.CurrentUser.getCredit())); Frame current; TextLabel rowOne; TextLabel rowTwo; TextButton commandButton; if (LastCurrentListValue != CurrentList) { ArrayList temporaryList = null; ActiveList.clear(); if (CurrentList == 0) { temporaryList = Driver.CurrentUser.getPurchaseHistory(); } else if (CurrentList == 1) { temporaryList = DataLoader.getAlbums(); } else if (CurrentList == 2) { temporaryList = DataLoader.getAudiobooks(); } else if (CurrentList == 3) { temporaryList = DataLoader.getFilm(); } if (CurrentList >= 1 && CurrentList <= 3) { // if the use is looking at a store page, weed out all invisible songs/albums *unless* it is // a administrator. for (int i = 0; i < temporaryList.size(); i++) { if (temporaryList.get(i) instanceof Item && (!((Item) temporaryList.get(i)).isVisible() || Driver.CurrentUser.getAdministrator())) { ActiveList.add(temporaryList.get(i)); } } } else if (CurrentList == 0) { for (int i = 0; i < temporaryList.size(); i++) { ActiveList.add(temporaryList.get(i)); } } else if (CurrentList == 4) { temporaryList = DataLoader.getAlbums(); for (int i = 0; i < temporaryList.size(); i++) { if (temporaryList.get(i) instanceof Item && (!((Item) temporaryList.get(i)).isVisible() || Driver.CurrentUser.getAdministrator())) { ActiveList.add(temporaryList.get(i)); } } temporaryList = DataLoader.getAudiobooks(); for (int i = 0; i < temporaryList.size(); i++) { if (temporaryList.get(i) instanceof Item && (!((Item) temporaryList.get(i)).isVisible() || Driver.CurrentUser.getAdministrator())) { ActiveList.add(temporaryList.get(i)); } } temporaryList = DataLoader.getFilm(); for (int i = 0; i < temporaryList.size(); i++) { if (temporaryList.get(i) instanceof Item && (!((Item) temporaryList.get(i)).isVisible() || Driver.CurrentUser.getAdministrator())) { ActiveList.add(temporaryList.get(i)); } } } LastCurrentListValue = CurrentList; } // this should never happen, but just in case it does, break the function before an error is // thrown. if (ActiveList == null) { return; } int MaximumIndex = ActiveList.size(); LibScroll.SetMax( Math.max( 0, MaximumIndex * (LIST_ELEMENT_HEIGHT + LIST_ELEMENT_SPACING) - Driver.GetGuiMain().GetWindow().getHeight() + 50)); PixelOffset = (int) LibScroll.GetValue(); ViewIndex = (int) Math.floor((double) PixelOffset / (LIST_ELEMENT_HEIGHT + LIST_ELEMENT_SPACING)); for (int i = 0; i < ScrollList.size(); i++) { // Position the frame appropriately. current = ScrollList.get(i); current.GetPosition().yOffset = i * (LIST_ELEMENT_HEIGHT + LIST_ELEMENT_SPACING) - PixelOffset % (LIST_ELEMENT_HEIGHT + LIST_ELEMENT_SPACING); rowOne = (TextLabel) current.GetChild("TopText"); rowTwo = (TextLabel) current.GetChild("BottomText"); commandButton = (TextButton) current.GetChild("Action"); // If the index we're looking for is out of bounds, don't display the frame. if (i + ViewIndex >= MaximumIndex) { CenterScrollFrame.RemoveChild(current); } else { CenterScrollFrame.AddChild(current); // Fill the text labels with content based on what view option is selected. if (CurrentList == 0) { if (!current.GetChild("Action2").GetVisible() && !Driver.CurrentUser.getAdministrator()) { current.GetChild("Divider").GetPosition().xOffset = -99; current.GetChild("TopText").GetSize().xOffset = -105; current.GetChild("BottomText").SetSize(current.GetChild("TopText").GetSize()); current.GetChild("Action2").SetVisible(true); ((TextButton) current.GetChild("Action2")).SetText("Rate"); Driver.GetGuiMain().GetTextBoxes(); } Item currentItem = DataLoader.getItemById(((Integer) ActiveList.get(i + ViewIndex)).intValue()); SetListText(rowOne, rowTwo, currentItem); if (CurrentPlayingItem == currentItem) { commandButton.SetText("Stop"); } else { commandButton.SetText("Play"); } } else if (CurrentList >= 1 && CurrentList <= 4) { if (current.GetChild("Action2").GetVisible() && !Driver.CurrentUser.getAdministrator()) { current.GetChild("Divider").GetPosition().xOffset = -52; current.GetChild("TopText").GetSize().xOffset = -58; current.GetChild("BottomText").SetSize(current.GetChild("TopText").GetSize()); current.GetChild("Action2").SetVisible(false); } Item currentItem = (Item) ActiveList.get(i + ViewIndex); SetListText(rowOne, rowTwo, currentItem); if (currentItem.isVisible()) { rowTwo.SetText(rowTwo.GetText() + "; HIDDEN"); } if (Driver.CurrentUser.getPurchaseHistory().contains(currentItem.getId())) { if (CurrentPlayingItem == currentItem) { commandButton.SetText("Stop"); } else { commandButton.SetText("Play"); } } else { commandButton.SetText("Buy"); } } } } }