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

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

/*
* 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;

import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.arjunatransaction.icons.*;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.arjunatransaction.nodes.*;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.TxInfoNode;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.TxInfoViewEntry;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.ArjunaTransactionWrapper;
import com.arjuna.ats.tools.objectstorebrowser.stateviewers.viewers.atomicaction.AtomicActionViewer;
import com.arjuna.ats.tools.objectstorebrowser.ObjectStoreBrowserTreeManipulationInterface;
import com.arjuna.ats.tools.objectstorebrowser.panels.StatePanel;
import com.arjuna.ats.tools.objectstorebrowser.panels.SubTreeViewEntry;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.UidNode;
import com.arjuna.ats.tools.objectstorebrowser.treenodes.ListNode;
import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.arjuna.common.Environment;
import com.arjuna.ats.arjuna.gandiva.ObjectName;
import com.arjuna.ats.arjuna.coordinator.RecordList;
import com.arjuna.ats.arjuna.ArjunaNames;

import javax.swing.tree.DefaultMutableTreeNode;

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


public class ArjunaTransactionViewer extends AtomicActionViewer
{
    /**
     * A uid node of the type this viewer is registered against has been expanded.
     * @param os
     * @param type
     * @param manipulator
     * @param uidNode
     * @throws ObjectStoreException
     */
    public void uidNodeExpanded(ObjectStore os,
                                String type,
                                ObjectStoreBrowserTreeManipulationInterface manipulator,
                                UidNode uidNode,
                                StatePanel infoPanel) throws ObjectStoreException
    {
        Uid theUid = uidNode.getUid();
        ArjunaTransactionWrapper ba = new ArjunaTransactionWrapper(theUid,getObjectName(os), type);
        ListNode node;
        SubTreeViewEntry entry;

        manipulator.clearEntries();

        if ( !activate(ba) )
        {
            infoPanel.reportError("Failed to activate transaction");

            node = new TxInfoNode("Tx Info", ba, type);
            entry = new TxInfoViewEntry(type, "Info", node);
            addNode(manipulator, node, entry, "Basic Information");
        }
        else
        {
            node = new TxInfoNode("Tx Info", ba, type);
            entry = new TxInfoViewEntry(type, "Info", node);
            addNode(manipulator, node, entry, "Basic Information");
           
            manipulator.createEntry(node = new PreparedListNode("Prepared List", ba, type));
            node.setIconPanelEntry(entry = new PreparedViewEntry(type, "Prepared List", node));
            entry.setToolTipText(getListSize(ba.getPreparedList())+" entries");
            node.add(new DefaultMutableTreeNode(""));

            manipulator.createEntry(node = new PendingListNode("Pending List", ba, type));
            node.setIconPanelEntry(entry = new PendingViewEntry(type, "Pending List", node));
            entry.setToolTipText(getListSize(ba.getPendingList())+" entries");
            node.add(new DefaultMutableTreeNode(""));

            manipulator.createEntry(node = new HeuristicListNode("Heuristic List", ba, type));
            node.setIconPanelEntry(entry = new HeuristicViewEntry(type, "Heuristic List", node));
            entry.setToolTipText(getListSize(ba.getHeuristicList())+" entries");
            node.add(new DefaultMutableTreeNode(""));

            manipulator.createEntry(node = new FailedListNode("Failed List", ba, type));
            node.setIconPanelEntry(entry = new FailedViewEntry(type, "Failed List", node));
            entry.setToolTipText(getListSize(ba.getFailedList())+" entries");
            node.add(new DefaultMutableTreeNode(""));

            manipulator.createEntry(node = new ReadOnlyListNode("Read-only List", ba, type));
            node.setIconPanelEntry(entry = new ReadOnlyViewEntry(type, "Read-only List", node));
            entry.setToolTipText(getListSize(ba.getReadOnlyList())+" entries");
            node.add(new DefaultMutableTreeNode(""));
        }
    }

    private ObjectName getObjectName(ObjectStore os)
    {
        ObjectName name = new ObjectName("PNS:");

        try
        {
            name.setClassNameAttribute(Environment.OBJECTSTORE_TYPE, os.className());
            name.setStringAttribute(ArjunaNames.StateManager_objectStoreRoot(), os.storeRoot());
        }
        catch (java.io.IOException e)
        {
            // Ignore
        }

        return name;
    }

    /**
     * Get the type this state viewer is intended to be registered against.
     * @return
     */
    public String getType()
    {
        return "/StateManager/BasicAction/TwoPhaseCoordinator/ArjunaTransactionImple/";
    }

    private int getListSize(RecordList list)
    {
        return list != null ? list.size() : 0;
    }
}
TOP

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

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.