Package org.apache.tapestry.workbench.tree.examples

Source Code of org.apache.tapestry.workbench.tree.examples.DirectoryTableView

// Copyright 2004, 2005 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package org.apache.tapestry.workbench.tree.examples;

import java.util.ArrayList;
import java.util.Collection;

import org.apache.tapestry.BaseComponent;
import org.apache.tapestry.IBinding;
import org.apache.tapestry.contrib.table.components.Table;
import org.apache.tapestry.contrib.table.model.ITableColumn;
import org.apache.tapestry.contrib.table.model.ITableModel;
import org.apache.tapestry.contrib.table.model.simple.SimpleTableColumn;
import org.apache.tapestry.contrib.table.model.simple.SimpleTableModel;
import org.apache.tapestry.event.PageDetachListener;
import org.apache.tapestry.event.PageEvent;
import org.apache.tapestry.workbench.tree.examples.fsmodel.SFObject;

/**
* @author ceco
*/
public abstract class DirectoryTableView extends BaseComponent implements PageDetachListener
{

    private ITableModel m_objTableModel = null;

    private ITableColumn[] m_arrColumns = null;

    private ISelectedFolderSource m_objSelectedFolderSource = null;

    /**
     *
     */
    public DirectoryTableView()
    {
        super();
        initialize();
    }

    private void initialize()
    {
        m_objTableModel = null;
        m_objSelectedFolderSource = null;
    }

    /**
     * @see org.apache.tapestry.AbstractComponent#finishLoad()
     */
    protected void finishLoad()
    {
        super.finishLoad();
        getPage().addPageDetachListener(this);
    }

    /**
     * @see org.apache.tapestry.event.PageDetachListener#pageDetached(org.apache.tapestry.event.PageEvent)
     */
    public void pageDetached(PageEvent arg0)
    {
        initialize();
    }

    public ITableModel getTableModel()
    {
        if (m_objTableModel == null)
        {
            ISelectedFolderSource objSelectedFolderSource = getSelectedFolderSource();
            Collection colChildrens = objSelectedFolderSource.getSelectedFolderChildren();

            m_objTableModel = new SimpleTableModel(colChildrens.toArray(), getColumns());
        }
        return m_objTableModel;
    }

    public ITableColumn[] getColumns()
    {
        if (m_arrColumns == null)
        {
            ArrayList arrColumnsList = new ArrayList();
            arrColumnsList.add(new SimpleTableColumn("Name", true)
            {
                private static final long serialVersionUID = -5394217017984056107L;

        public Object getColumnValue(Object objValue)
                {
                    SFObject objSFObject = (SFObject) objValue;
                    return objSFObject.getName();
                }
            });

            arrColumnsList.add(new SimpleTableColumn("Date", true)
            {
                private static final long serialVersionUID = -3258043732869364037L;

        public Object getColumnValue(Object objValue)
                {
                    SFObject objSFObject = (SFObject) objValue;
                    return objSFObject.getDate();
                }
            });

            m_arrColumns = new SimpleTableColumn[arrColumnsList.size()];
            arrColumnsList.toArray(m_arrColumns);
        }
        return m_arrColumns;
    }

    public ISelectedFolderSource getSelectedFolderSource()
    {
        if (m_objSelectedFolderSource == null)
        {
            IBinding objBinding = getBinding("selectedFolderSource");
            m_objSelectedFolderSource = (ISelectedFolderSource) objBinding.getObject();
        }
        return m_objSelectedFolderSource;
    }

    public void resetState()
    {
        initialize();
        Table objTable = (Table) getComponent("table");
        objTable.reset();
    }

    public String getSelectedNodeName()
    {
        return getSelectedFolderSource().getSelectedNodeName();
    }
}
TOP

Related Classes of org.apache.tapestry.workbench.tree.examples.DirectoryTableView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.