Package com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.arjunatransaction.nodes

Source Code of com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.arjunatransaction.nodes.ArjunaTransactionListNode

/*
* JBoss, Home of Professional Open Source
* Copyright 2006, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags.
* See the copyright.txt in the distribution for a full listing
* of individual contributors.
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU General Public License, v. 2.0.
* This program is distributed in the hope that it will be useful, but WITHOUT A
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE.  See the GNU General Public License for more details.
* You should have received a copy of the GNU General Public License,
* v. 2.0 along with this distribution; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA  02110-1301, USA.
*
* (C) 2005-2006,
* @author JBoss Inc.
*/
package com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.arjunatransaction.nodes;

/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
*
* Arjuna Technologies Limited,
* Newcastle upon Tyne,
* Tyne and Wear,
* UK.
*
* $Id: ArjunaTransactionListNode.java 2342 2006-03-30 13:06:17Z  $
*/

import com.arjuna.ats.tools.objectstorebrowser.treenodes.ListNode;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.IUidCollection;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ListEntryNode;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ListNodeListener;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewersRepository;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.AbstractRecordStateViewerInterface;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.ArjunaTransactionWrapper;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.BasicActionInfo;
import com.arjuna.ats.tools.objectstorebrowser.frames.BrowserFrame;
import com.arjuna.ats.tools.objectstorebrowser.panels.ObjectStoreViewEntry;
import com.arjuna.ats.tools.objectstorebrowser.panels.StatePanel;
import com.arjuna.ats.tools.toolsframework.iconpanel.IconPanelEntry;
import com.arjuna.ats.tools.toolsframework.iconpanel.IconSelectionListener;
import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
import com.arjuna.ats.arjuna.coordinator.AbstractRecord;
import com.arjuna.ats.arjuna.common.Uid;

public abstract class ArjunaTransactionListNode extends ListNode implements IUidCollection, ListNodeListener, IconSelectionListener
{
    private BasicActionInfo wrapper;

    public ArjunaTransactionListNode(Object userObject, Object assObject, String type)
    {
        super(userObject, assObject, type);
        wrapper = (BasicActionInfo) assObject;
    }

    protected BasicActionInfo getAction()
    {
        return wrapper;
    }

    protected void invokeStateViewer(AbstractRecord record, ArjunaTransactionWrapper atw, IconPanelEntry entry)
    {
        AbstractRecordStateViewerInterface svi = StateViewersRepository.lookupAbstractRecordStateViewer(record.type());

        if ( svi != null )
        {
            try
            {
                svi.entrySelected(record, atw, (ObjectStoreViewEntry)entry, BrowserFrame.getStatePanel());
            }
            catch (ObjectStoreException e)
            {
                e.printStackTrace(System.err);
            }
        }
        else
        {
            System.out.println("Viewer not registered for "+record.type());
        }
    }
   
    public boolean remove(Uid uid)
    {
        AbstractRecord rec = getList().peekFront();

        while (rec != null)
        {
            if (rec.order().equals(uid))
                return getList().remove(rec);

            rec = getList().peekNext(rec);
        }

        return false;
    }

    public boolean contains(Uid uid)
    {
        AbstractRecord rec = getList().peekFront();

        while (rec != null)
        {
            if (rec.order().equals(uid))
                return true;

            rec = getList().peekNext(rec);
        }

        return false;
    }

    public boolean contains(String uid)
    {
        AbstractRecord rec = getList().peekFront();

        while (rec != null)
        {
            if (rec.order().stringForm().equals(uid))
                return true;

            rec = getList().peekNext(rec);
        }

        return false;
    }

    /**
     * Called when the list node is expanded
     * @param node
     */
    public void listExpanded(ListNode node)
    {
        super.listExpanded(node);

        AbstractRecord current = getList().peekFront();
        int count = 1;
        while ( current != null )
        {
            ListEntryNode entryNode;
            ObjectStoreViewEntry icon;
            node.createEntry(entryNode = new ListEntryNode("["+count+"] "+current.type(), current, current.type()));
            entryNode.setIconPanelEntry(icon = new ObjectStoreViewEntry(wrapper.type(), (String)entryNode.getUserObject(), entryNode));
            icon.addSelectionListener(this);
            current = getList().peekNext(current);
            count++;
        }
    }

    /**
     * Called when one of the list entries is selected.
     *
     * @param icon
     * @param selected
     */
    public void iconSelected(IconPanelEntry icon, boolean selected)
    {
        /** Get node and the associated AbstractRecord **/
        ListEntryNode node = (ListEntryNode)(((ObjectStoreViewEntry)icon).getNode());
        AbstractRecord record = (AbstractRecord)node.getAssociatedObject();
        StatePanel panel = BrowserFrame.getStatePanel();

        panel.clear();
        panel.setType(record.type());

        updatePanelData(panel, record);

        invokeStateViewer(record, (ArjunaTransactionWrapper) getAssObject(), icon);
        panel.repaint();
    }
   
    protected void updatePanelData(StatePanel panel, AbstractRecord record)
    {
    }
}
TOP

Related Classes of com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.arjunatransaction.nodes.ArjunaTransactionListNode

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.