Search in sources :

Example 41 with List

use of org.apache.pivot.collections.List in project pivot by apache.

the class TerraListViewSkin method layout.

@Override
public void layout() {
    ListView listView = (ListView) getComponent();
    @SuppressWarnings("unchecked") List<Object> listData = (List<Object>) listView.getListData();
    ListView.ItemRenderer itemRenderer = listView.getItemRenderer();
    if (variableItemHeight) {
        int width = getWidth();
        int checkboxHeight = 0;
        if (listView.getCheckmarksEnabled()) {
            checkboxHeight = CHECKBOX.getHeight() + checkboxPadding.getHeight();
        }
        int n = listData.getLength();
        itemBoundaries = new ArrayList<>(n);
        int itemY = 0;
        for (int i = 0; i < n; i++) {
            Object item = listData.get(i);
            int itemWidth = width;
            int itemX = 0;
            Button.State state = Button.State.UNSELECTED;
            if (listView.getCheckmarksEnabled()) {
                if (listView.getAllowTriStateCheckmarks()) {
                    state = listView.getItemCheckmarkState(i);
                } else {
                    state = listView.isItemChecked(i) ? Button.State.SELECTED : Button.State.UNSELECTED;
                }
                itemX = CHECKBOX.getWidth() + checkboxPadding.getWidth();
                itemWidth -= itemX;
            }
            itemRenderer.render(item, i, listView, false, state, false, false);
            int itemHeight = itemRenderer.getPreferredHeight(itemWidth);
            if (listView.getCheckmarksEnabled()) {
                itemHeight = Math.max(itemHeight, checkboxHeight);
            }
            itemY += itemHeight;
            itemBoundaries.add(itemY);
        }
    } else {
        itemRenderer.render(null, -1, listView, false, Button.State.UNSELECTED, false, false);
        fixedItemHeight = itemRenderer.getPreferredHeight(-1);
        if (listView.getCheckmarksEnabled()) {
            fixedItemHeight = Math.max(CHECKBOX.getHeight() + checkboxPadding.getHeight(), fixedItemHeight);
        }
    }
    if (validateSelection) {
        // Ensure that the selection is visible
        Sequence<Span> selectedRanges = listView.getSelectedRanges();
        if (selectedRanges.getLength() > 0) {
            int rangeStart = selectedRanges.get(0).start;
            int rangeEnd = selectedRanges.get(selectedRanges.getLength() - 1).end;
            Bounds selectionBounds = getItemBounds(rangeStart);
            selectionBounds = selectionBounds.union(getItemBounds(rangeEnd));
            Bounds visibleSelectionBounds = listView.getVisibleArea(selectionBounds);
            if (visibleSelectionBounds != null && visibleSelectionBounds.height < selectionBounds.height) {
                listView.scrollAreaToVisible(selectionBounds);
            }
        }
    }
    validateSelection = false;
}
Also used : Bounds(org.apache.pivot.wtk.Bounds) Span(org.apache.pivot.wtk.Span) ListView(org.apache.pivot.wtk.ListView) Button(org.apache.pivot.wtk.Button) ArrayList(org.apache.pivot.collections.ArrayList) List(org.apache.pivot.collections.List)

Example 42 with List

use of org.apache.pivot.collections.List in project pivot by apache.

the class TerraListViewSkin method getBaseline.

@Override
public int getBaseline(int width, int height) {
    ListView listView = (ListView) getComponent();
    int baseline = -1;
    int clientWidth = width;
    if (listView.getCheckmarksEnabled()) {
        clientWidth = Math.max(clientWidth - (CHECKBOX.getWidth() + checkboxPadding.getWidth()), 0);
    }
    ListView.ItemRenderer itemRenderer = listView.getItemRenderer();
    @SuppressWarnings("unchecked") List<Object> listData = (List<Object>) listView.getListData();
    if (variableItemHeight && listData.getLength() > 0) {
        itemRenderer.render(listData.get(0), 0, listView, false, Button.State.UNSELECTED, false, false);
        int itemHeight = itemRenderer.getPreferredHeight(clientWidth);
        if (listView.getCheckmarksEnabled()) {
            itemHeight = Math.max(CHECKBOX.getHeight() + checkboxPadding.getHeight(), itemHeight);
        }
        baseline = itemRenderer.getBaseline(clientWidth, itemHeight);
    } else {
        itemRenderer.render(null, -1, listView, false, Button.State.UNSELECTED, false, false);
        int fixedItemHeightLocal = itemRenderer.getPreferredHeight(-1);
        if (listView.getCheckmarksEnabled()) {
            fixedItemHeightLocal = Math.max(CHECKBOX.getHeight() + checkboxPadding.getHeight(), fixedItemHeightLocal);
        }
        baseline = itemRenderer.getBaseline(clientWidth, fixedItemHeightLocal);
    }
    return baseline;
}
Also used : ListView(org.apache.pivot.wtk.ListView) ArrayList(org.apache.pivot.collections.ArrayList) List(org.apache.pivot.collections.List)

Example 43 with List

use of org.apache.pivot.collections.List in project pivot by apache.

the class ComponentPropertyInspectorSkin method sourceChanged.

@Override
public void sourceChanged(ComponentInspector componentInspector, Component previousSource) {
    Component source = componentInspector.getSource();
    clearControls();
    Form.SectionSequence sections = form.getSections();
    sections.remove(0, sections.getLength());
    if (previousSource != null) {
        beanMonitor.getPropertyChangeListeners().remove(propertyChangeListener);
    }
    if (source == null) {
        beanMonitor = null;
    } else {
        beanMonitor = new BeanMonitor(source);
        beanMonitor.getPropertyChangeListeners().add(propertyChangeListener);
        Class<?> sourceType = source.getClass();
        HashMap<Class<?>, List<String>> declaringClassPartitions = new HashMap<>(classComparator);
        // Partition the properties by their declaring class
        BeanAdapter beanAdapter = new BeanAdapter(source);
        for (String propertyName : beanAdapter) {
            if (beanMonitor.isNotifying(propertyName) && !beanAdapter.isReadOnly(propertyName)) {
                Method method = BeanAdapter.getGetterMethod(sourceType, propertyName);
                Class<?> declaringClass = method.getDeclaringClass();
                List<String> propertyNames = declaringClassPartitions.get(declaringClass);
                if (propertyNames == null) {
                    propertyNames = new ArrayList<>(nameComparator);
                    declaringClassPartitions.put(declaringClass, propertyNames);
                }
                propertyNames.add(propertyName);
            }
        }
        // Add the controls
        for (Class<?> declaringClass : declaringClassPartitions) {
            Form.Section section = new Form.Section();
            section.setHeading(declaringClass.getSimpleName());
            sections.add(section);
            List<String> propertyNames = declaringClassPartitions.get(declaringClass);
            for (String propertyName : propertyNames) {
                Class<?> type = beanAdapter.getType(propertyName);
                addControl(beanAdapter, propertyName, type, section);
            }
        }
    }
}
Also used : BeanMonitor(org.apache.pivot.beans.BeanMonitor) Form(org.apache.pivot.wtk.Form) HashMap(org.apache.pivot.collections.HashMap) Method(java.lang.reflect.Method) List(org.apache.pivot.collections.List) ArrayList(org.apache.pivot.collections.ArrayList) BeanAdapter(org.apache.pivot.beans.BeanAdapter) Component(org.apache.pivot.wtk.Component)

Example 44 with List

use of org.apache.pivot.collections.List in project pivot by apache.

the class EventLoggerSkin method setEventIncluded.

private void setEventIncluded(Method event, boolean included) {
    @SuppressWarnings("unchecked") List<TreeNode> treeData = (List<TreeNode>) declaredEventsTreeView.getTreeData();
    Sequence.Tree.ItemIterator<TreeNode> iter = Sequence.Tree.depthFirstIterator(treeData);
    while (iter.hasNext()) {
        TreeNode treeNode = iter.next();
        if (treeNode instanceof EventNode) {
            EventNode eventNode = (EventNode) treeNode;
            if (eventNode.getEvent() == event) {
                declaredEventsTreeView.setNodeChecked(iter.getPath(), included);
                break;
            }
        }
    }
}
Also used : TreeNode(org.apache.pivot.wtk.content.TreeNode) ArrayList(org.apache.pivot.collections.ArrayList) List(org.apache.pivot.collections.List)

Example 45 with List

use of org.apache.pivot.collections.List in project pivot by apache.

the class ExpensesWindow method deleteSelectedExpense.

private void deleteSelectedExpense() {
    Object expense = expenseTableView.getSelectedRow();
    final int id = JSON.getInt(expense, "id");
    deleteConfirmationPrompt.open(this, new SheetCloseListener() {

        @Override
        public void sheetClosed(Sheet sheet) {
            if (sheet.getResult() && ((Prompt) sheet).getSelectedOptionIndex() == 1) {
                // DELETE expense from server and then remove from table
                Expenses expensesApplicationLocal = getExpensesApplication();
                DeleteQuery deleteExpenseQuery = new DeleteQuery(expensesApplicationLocal.getHostname(), expensesApplicationLocal.getPort(), "/pivot-tutorials/expenses/" + id, expensesApplicationLocal.isSecure());
                activityIndicatorBoxPane.setVisible(true);
                activityIndicator.setActive(true);
                deleteExpenseQuery.execute(new TaskAdapter<>(new TaskListener<Void>() {

                    @Override
                    public void taskExecuted(Task<Void> task) {
                        activityIndicatorBoxPane.setVisible(false);
                        activityIndicator.setActive(false);
                        // Find matching row and remove
                        @SuppressWarnings("unchecked") List<Object> expenses = (List<Object>) expenseTableView.getTableData();
                        for (int i = 0, n = expenses.getLength(); i < n; i++) {
                            if (JSON.get(expenses.get(i), "id").equals(id)) {
                                expenses.remove(i, 1);
                                break;
                            }
                        }
                    }

                    @Override
                    public void executeFailed(Task<Void> task) {
                        activityIndicatorBoxPane.setVisible(false);
                        activityIndicator.setActive(false);
                        Prompt.prompt(MessageType.ERROR, task.getFault().getMessage(), ExpensesWindow.this);
                    }
                }));
            }
        }
    });
}
Also used : TaskAdapter(org.apache.pivot.wtk.TaskAdapter) DeleteQuery(org.apache.pivot.web.DeleteQuery) ArrayList(org.apache.pivot.collections.ArrayList) List(org.apache.pivot.collections.List) SheetCloseListener(org.apache.pivot.wtk.SheetCloseListener) Sheet(org.apache.pivot.wtk.Sheet)

Aggregations

List (org.apache.pivot.collections.List)47 ArrayList (org.apache.pivot.collections.ArrayList)37 TableView (org.apache.pivot.wtk.TableView)11 Span (org.apache.pivot.wtk.Span)10 Button (org.apache.pivot.wtk.Button)8 ListView (org.apache.pivot.wtk.ListView)8 Point (org.apache.pivot.wtk.Point)8 IOException (java.io.IOException)7 BXMLSerializer (org.apache.pivot.beans.BXMLSerializer)7 SerializationException (org.apache.pivot.serialization.SerializationException)6 Component (org.apache.pivot.wtk.Component)6 File (java.io.File)5 HashMap (org.apache.pivot.collections.HashMap)5 Map (org.apache.pivot.collections.Map)5 JSONSerializer (org.apache.pivot.json.JSONSerializer)5 ButtonPressListener (org.apache.pivot.wtk.ButtonPressListener)5 TableViewSortListener (org.apache.pivot.wtk.TableViewSortListener)5 Color (java.awt.Color)4 FileObject (org.apache.commons.vfs2.FileObject)4 Task (org.apache.pivot.util.concurrent.Task)4