Aggregator Breaking Buttons

Hello,
I am currently in the transition process moving from CP5.5 to 6. With the transition, we are starting to work with the Aggregator tool for the first time. Previously we would create a Table of Contents (ToC) as a seperate html file and would have a menu button that would redirect the user to a different page where they could navigate to their desired location. The use of the aggregator has greatly reduced the ammount of effort that was taken up by this old method (especially in how it links the files automatically). However, we want to leave the menu button in so that older courses will look the same as the new ones. I changed the menu button so that it expands the ToC on the left hand side using the following macro:
Expression cpCmndTOCVisible = 1+0
When i publish the file individually, this macro works and will expand the ToC. However, once i publish and open through the aggregator, my macro stops working. Any ideas how to fix this an allow my menu button to work with the aggregator?
Also, as a side note, my expression for the menu button will only open the menu. Any ideas on a menu button that would also close the ToC if it is clicked twice?

Why not use this Expression:
Expression cpCmndTOCVisible = 1 - cpCmndTOCVisible
You create a real toggle in that case.

Similar Messages

  • How to use Pause / Break button on Macbook / Small Apple Keyboards

    I have ready many forums regarding the inability to use Pause / Break button on Macbooks (or other small keyboards made by mac) without using a USB pad extension. And all of those threads are closed and will not let me reply with MY ANSWER / SOLUTION!!
    Lets just say my life depended on getting a Pause button working on Bootcamp Windows 7 x64 macbook. I googled away, with no answers... I did know about the fn option to perm in windows btw.
    BUT, i remembered, when i couldn't get my x64 bit drivers for Bluetooth keyboard to work, that there was a VIRTUAL KEYBOARD inside of "ease of access center" inside of Control Panel (all view). Find "use the computer without keyboard" and enable "use on screen keyboard"
    Now you will be able to click PAUSE virtually in keyboard...
    I dont know if this is an option in XP or vista, but Im sure its built in as well.
    YOUR WELCOME ;P

    I've been going crazy tring to figue this out as well--  I use Microsoft Remote Access on my Macbook Pro. I found this archived post below-- it worked for me!!!
    MWithersIT
    Nov 3, 2010 1:09 PM 
    I have ready many forums regarding the inability to use Pause / Break button on Macbooks (or other small keyboards made by mac) without using a USB pad extension. And all of those threads are closed and will not let me reply with MY ANSWER / SOLUTION!! Lets just say my life depended on getting a Pause button working on Bootcamp Windows 7 x64 macbook. I googled away, with no answers... I did know about the fn option to perm in windows btw. BUT, i remembered, when i couldn't get my x64 bit drivers for Bluetooth keyboard to work, that there was a VIRTUAL KEYBOARD inside of "ease of access center" inside of Control Panel (all view). Find "use the computer without keyboard" and enable "use on screen keyboard" Now you will be able to click PAUSE virtually in keyboard... I dont know if this is an option in XP or vista, but Im sure its built in as well. YOUR WELCOME ;P 

  • How to catch user break from OI ?

    I'm using slightly modified standard CVI OI shipped with TS.
    I have a sequence in TS which counts time how long time it takes for a DUT to clarify the test. If the DUT doesn't clarify the test at all, the sequence timeouts and indicates test time failed.
    Sometimes it happens that operator wants to break the test by clicking the break button on OI, do some things with DUT and continue testing. In my current implementation time which operator do things is counted, so normally when operator continues testing timeout condition is met and sequence indicates test time is failed.  
    I would like to improve the sequence by catching the operator break OI button click, save the time stamp, catch the operator resume OI button click and substract time it took for operator in order to get real time it took for DUT to clarify the test. 
    Any hint ?
    I attach start point for a sequence file.
    Best regards,
    Petri
    Attachments:
    Catch OI break.seq ‏10 KB

    Hi Petri,
    The method i suggested would allow you to implement this in the user interface, not the sequence itself; sorry for the confusion on that. Unfortunately there isn't a good way to do this in the sequence itself because the sequence will not be executing at a breakpoint, so no callback sequences will run until you resume the execution.  
    I think the best approach here would be to use the method I described previously to implement a counter variable in the UI which tracks how much time an execution has been suspended, then query this value at the end of your sequence using a custom UI message (as in this example; unfortunately no CVI equivalent example exists).  Refer to this article for information on creating a UI message callback in your user interface.
    Al B.
    Staff Software Engineer - TestStand
    CTA/CLD

  • How to aggregate data in SNP aggregated?

    Dear Expert,
    Now, i want aggregate demand of products( A123,A124 and A A224) for location K410 from two location: 6610 and 6710.
    I have created a loction hierachy with root is K410 and two leaves : 6610 and 6710.
    Now how can i aggregate demand of A123, A124 and A224 in K410 from 6610 and 6710  ?
    thanks

    Hello,
    If the hierarchy master data is correctly created, activated and assigned to the correct model, you can try aggregated planning in standard SNP aggregated planning book 9ASNPAGGR/SNPAGGR(1). Just load the data, and use 'Location Aggregation' function button.
    If you're new to SNP aggregated planning, please review the below online documents for more detailed information. It is very important that you have the correct master data settings and planning book settings.
    http://help.sap.com/saphelp_scm70/helpdata/EN/2c/c557e9e330cc46b8e440fb3999ca51/frameset.htm
    Best Regards,
    Ada

  • Button in JTabbedPane Title

    Hi all
    I am Using JTabbedPane I need to include button for close within every tab. How I Do this one using swings

    hi!
    for that you need to use the javax.swing.plaf.basic.BasicTabbedPaneUI class. i wrote
    package una.common.file.vc.gui.control;
    import java.awt.Component;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.Event;
    import java.awt.Font;
    import java.awt.FontMetrics;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Insets;
    import java.awt.LayoutManager;
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.awt.Shape;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ContainerEvent;
    import java.awt.event.ContainerListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseMotionListener;
    import java.awt.image.BufferedImage;
    import java.util.EventListener;
    import java.util.Hashtable;
    import java.util.Vector;
    import javax.swing.AbstractAction;
    import javax.swing.ActionMap;
    import javax.swing.Icon;
    import javax.swing.InputMap;
    import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
    import javax.swing.JTabbedPane;
    import javax.swing.JViewport;
    import javax.swing.KeyStroke;
    import javax.swing.SwingConstants;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    import javax.swing.border.Border;
    import javax.swing.border.SoftBevelBorder;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    import javax.swing.plaf.ActionMapUIResource;
    import javax.swing.plaf.ComponentUI;
    import javax.swing.plaf.InputMapUIResource;
    import javax.swing.plaf.UIResource;
    import javax.swing.plaf.basic.BasicArrowButton;
    import javax.swing.plaf.basic.BasicHTML;
    import javax.swing.plaf.basic.BasicTabbedPaneUI;
    import javax.swing.text.View;
    import una.common.file.vc.gui.VCResource;
    * UI for <code>VCTabbedPane</code>.
    * <p>
    * Credits to:
    public class VCTabPaneUI extends BasicTabbedPaneUI implements ActionListener
         // Instance variables initialized at installation
         private ContainerListener          containerListener;
         private Vector                         htmlViews;
         private Hashtable                    mnemonicToIndexMap;
          * InputMap used for mnemonics. Only non-null if the JTabbedPane has
          * mnemonics associated with it. Lazily created in initMnemonics.
         private InputMap                    mnemonicInputMap;
         // For use when tabLayoutPolicy = SCROLL_TAB_LAYOUT
         protected ScrollableTabSupport     tabScroller;
         private int                              tabCount;
         protected MyMouseMotionListener     motionListener;
         // UI creation
         private static final int          INACTIVE                    = 0;
         private static final int          OVER                         = 1;
         private static final int          PRESSED                         = 2;
         protected static final int          BUTTONSIZE                    = 15;
         protected static final int          WIDTHDELTA                    = 5;
         private static final Border          PRESSEDBORDER               = new SoftBevelBorder(
                                                                                         SoftBevelBorder.LOWERED);
         private static final Border          OVERBORDER                    = new SoftBevelBorder(
                                                                                         SoftBevelBorder.RAISED);
         private BufferedImage               closeImgB;
         private BufferedImage               closeImgI;
         private JButton                         closeB;
         private int                              overTabIndex               = -1;
         private int                              closeIndexStatus          = INACTIVE;
         private int                              maxIndexStatus               = INACTIVE;
         private boolean                         mousePressed               = false;
         private boolean                         isCloseButtonEnabled     = true;
         private JPopupMenu                    actionPopupMenu               = null;
         private JMenuItem                    closeItem                    = null;
         private JMenuItem                    closeOthers                    = null;
         private JMenuItem                    closeAll                    = null;
         public VCTabPaneUI()
              super();
              closeImgB = new BufferedImage(BUTTONSIZE, BUTTONSIZE,
                        BufferedImage.TYPE_4BYTE_ABGR);
              closeImgI = new BufferedImage(BUTTONSIZE, BUTTONSIZE,
                        BufferedImage.TYPE_4BYTE_ABGR);
              closeB = new JButton("X");
              closeB.setSize(BUTTONSIZE, BUTTONSIZE);
              actionPopupMenu = new JPopupMenu();
              closeItem = new JMenuItem(VCResource.getString("CLOSE"));
              closeOthers = new JMenuItem(VCResource.getString("CLOSE_OTHERS"));
              closeAll = new JMenuItem(VCResource.getString("CLOSE_ALL"));
              actionPopupMenu.add(closeItem);
              actionPopupMenu.add(closeOthers);
              actionPopupMenu.add(closeAll);
              closeItem.addActionListener(this);
              closeOthers.addActionListener(this);
              closeAll.addActionListener(this);
         protected boolean isOneActionButtonEnabled()
              return isCloseButtonEnabled;
         public boolean isCloseEnabled()
              return isCloseButtonEnabled;
         public void setCloseIcon(boolean b)
              isCloseButtonEnabled = b;
         protected int calculateTabWidth(int tabPlacement, int tabIndex,
                   FontMetrics metrics)
              int delta = 2;
              if (!isOneActionButtonEnabled())
                   delta += 6;
              else
                   if (isCloseButtonEnabled)
                        delta += BUTTONSIZE + WIDTHDELTA;
              return super.calculateTabWidth(tabPlacement, tabIndex, metrics) + delta;
         protected int calculateTabHeight(int tabPlacement, int tabIndex,
                   int fontHeight)
              return super.calculateTabHeight(tabPlacement, tabIndex, fontHeight) + 5;
         protected void layoutLabel(int tabPlacement, FontMetrics metrics,
                   int tabIndex, String title, Icon icon, Rectangle tabRect,
                   Rectangle iconRect, Rectangle textRect, boolean isSelected)
              textRect.x = textRect.y = iconRect.x = iconRect.y = 0;
              View v = getTextViewForTab(tabIndex);
              if (v != null)
                   tabPane.putClientProperty("html", v);
              SwingUtilities.layoutCompoundLabel((JComponent) tabPane, metrics,
                        title, icon, SwingUtilities.CENTER, SwingUtilities.LEFT,
                        SwingUtilities.CENTER, SwingUtilities.CENTER, tabRect,
                        iconRect, textRect, textIconGap);
              tabPane.putClientProperty("html", null);
              iconRect.x = tabRect.x + 8;
              textRect.x = iconRect.x + iconRect.width + textIconGap;
         protected MouseListener createMouseListener()
              return new MyMouseHandler();
         protected ScrollableTabButton createScrollableTabButton(int direction)
              return new ScrollableTabButton(direction);
         protected Rectangle newCloseRect(Rectangle rect)
              int dx = rect.x + rect.width;
              int dy = (rect.y + rect.height) / 2 - 6;
              return new Rectangle(dx - BUTTONSIZE - WIDTHDELTA, dy, BUTTONSIZE,
                        BUTTONSIZE);
         protected Rectangle newMaxRect(Rectangle rect)
              int dx = rect.x + rect.width;
              int dy = (rect.y + rect.height) / 2 - 6;
              if (isCloseButtonEnabled)
                   dx -= BUTTONSIZE;
              return new Rectangle(dx - BUTTONSIZE - WIDTHDELTA, dy, BUTTONSIZE,
                        BUTTONSIZE);
         protected void updateOverTab(int x, int y)
              if (overTabIndex != (overTabIndex = getTabAtLocation(x, y)))
                   tabScroller.tabPanel.repaint();
         protected void updateCloseIcon(int x, int y)
              if (overTabIndex != -1)
                   int newCloseIndexStatus = INACTIVE;
                   Rectangle closeRect = newCloseRect(rects[overTabIndex]);
                   if (closeRect.contains(x, y))
                        newCloseIndexStatus = mousePressed ? PRESSED : OVER;
                   if (closeIndexStatus != (closeIndexStatus = newCloseIndexStatus))
                        tabScroller.tabPanel.repaint();
    //     protected void updateMaxIcon(int x, int y)
    //          if (overTabIndex != -1)
    //               int newMaxIndexStatus = INACTIVE;
    //               Rectangle maxRect = newMaxRect(rects[overTabIndex]);
    //               if (maxRect.contains(x, y))
    //                    newMaxIndexStatus = mousePressed ? PRESSED : OVER;
    //               if (maxIndexStatus != (maxIndexStatus = newMaxIndexStatus))
    //                    tabScroller.tabPanel.repaint();
         private void setTabIcons(int x, int y)
              // if the mouse isPressed
              if (!mousePressed)
                   updateOverTab(x, y);
              if (isCloseButtonEnabled)
                   updateCloseIcon(x, y);
         public static ComponentUI createUI(JComponent c)
              return new VCTabPaneUI();
          * Invoked by <code>installUI</code> to create a layout manager object to
          * manage the <code>JTabbedPane</code>.
          * @return a layout manager object
          * @see TabbedPaneLayout
          * @see javax.swing.JTabbedPane#getTabLayoutPolicy
         protected LayoutManager createLayoutManager()
              return new TabbedPaneScrollLayout();
          * In an attempt to preserve backward compatibility for programs which have
          * extended BasicTabbedPaneUI to do their own layout, the UI uses the
          * installed layoutManager (and not tabLayoutPolicy) to determine if
          * scrollTabLayout is enabled.
          * Creates and installs any required subcomponents for the JTabbedPane.
          * Invoked by installUI.
          * @since 1.4
         protected void installComponents()
              if (tabScroller == null)
                   tabScroller = new ScrollableTabSupport(tabPane.getTabPlacement());
                   tabPane.add(tabScroller.viewport);
                   tabPane.add(tabScroller.scrollForwardButton);
                   tabPane.add(tabScroller.scrollBackwardButton);
          * Removes any installed subcomponents from the JTabbedPane. Invoked by
          * uninstallUI.
          * @since 1.4
         protected void uninstallComponents()
              tabPane.remove(tabScroller.viewport);
              tabPane.remove(tabScroller.scrollForwardButton);
              tabPane.remove(tabScroller.scrollBackwardButton);
              tabScroller = null;
         protected void installListeners()
              if ((propertyChangeListener = createPropertyChangeListener()) != null)
                   tabPane.addPropertyChangeListener(propertyChangeListener);
              if ((tabChangeListener = createChangeListener()) != null)
                   tabPane.addChangeListener(tabChangeListener);
              if ((mouseListener = createMouseListener()) != null)
                   tabScroller.tabPanel.addMouseListener(mouseListener);
              if ((focusListener = createFocusListener()) != null)
                   tabPane.addFocusListener(focusListener);
              // PENDING(api) : See comment for ContainerHandler
              if ((containerListener = new ContainerHandler()) != null)
                   tabPane.addContainerListener(containerListener);
                   if (tabPane.getTabCount() > 0)
                        htmlViews = createHTMLVector();
              if ((motionListener = new MyMouseMotionListener()) != null)
                   tabScroller.tabPanel.addMouseMotionListener(motionListener);
         protected void uninstallListeners()
              if (mouseListener != null)
                   tabScroller.tabPanel.removeMouseListener(mouseListener);
                   mouseListener = null;
              if (motionListener != null)
                   tabScroller.tabPanel.removeMouseMotionListener(motionListener);
                   motionListener = null;
              if (focusListener != null)
                   tabPane.removeFocusListener(focusListener);
                   focusListener = null;
              // PENDING(api): See comment for ContainerHandler
              if (containerListener != null)
                   tabPane.removeContainerListener(containerListener);
                   containerListener = null;
                   if (htmlViews != null)
                        htmlViews.removeAllElements();
                        htmlViews = null;
              if (tabChangeListener != null)
                   tabPane.removeChangeListener(tabChangeListener);
                   tabChangeListener = null;
              if (propertyChangeListener != null)
                   tabPane.removePropertyChangeListener(propertyChangeListener);
                   propertyChangeListener = null;
         protected ChangeListener createChangeListener()
              return new TabSelectionHandler();
         protected void installKeyboardActions()
              InputMap km = getMyInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
              SwingUtilities.replaceUIInputMap(tabPane,
                        JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, km);
              km = getMyInputMap(JComponent.WHEN_FOCUSED);
              SwingUtilities.replaceUIInputMap(tabPane, JComponent.WHEN_FOCUSED, km);
              ActionMap am = createMyActionMap();
              SwingUtilities.replaceUIActionMap(tabPane, am);
              tabScroller.scrollForwardButton.setAction(am
                        .get("scrollTabsForwardAction"));
              tabScroller.scrollBackwardButton.setAction(am
                        .get("scrollTabsBackwardAction"));
         InputMap getMyInputMap(int condition)
              if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
                   return (InputMap) UIManager.get("TabbedPane.ancestorInputMap");
              } else if (condition == JComponent.WHEN_FOCUSED)
                   return (InputMap) UIManager.get("TabbedPane.focusInputMap");
              return null;
         ActionMap createMyActionMap()
              ActionMap map = new ActionMapUIResource();
              map.put("navigateNext", new NextAction());
              map.put("navigatePrevious", new PreviousAction());
              map.put("navigateRight", new RightAction());
              map.put("navigateLeft", new LeftAction());
              map.put("navigateUp", new UpAction());
              map.put("navigateDown", new DownAction());
              map.put("navigatePageUp", new PageUpAction());
              map.put("navigatePageDown", new PageDownAction());
              map.put("requestFocus", new RequestFocusAction());
              map.put("requestFocusForVisibleComponent",
                        new RequestFocusForVisibleAction());
              map.put("setSelectedIndex", new SetSelectedIndexAction());
              map.put("scrollTabsForwardAction", new ScrollTabsForwardAction());
              map.put("scrollTabsBackwardAction", new ScrollTabsBackwardAction());
              return map;
         protected void uninstallKeyboardActions()
              SwingUtilities.replaceUIActionMap(tabPane, null);
              SwingUtilities.replaceUIInputMap(tabPane,
                        JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null);
              SwingUtilities
                        .replaceUIInputMap(tabPane, JComponent.WHEN_FOCUSED, null);
          * Reloads the mnemonics. This should be invoked when a memonic changes,
          * when the title of a mnemonic changes, or when tabs are added/removed.
         private void updateMnemonics()
              resetMnemonics();
              for (int counter = tabPane.getTabCount() - 1; counter >= 0; counter--)
                   int mnemonic = tabPane.getMnemonicAt(counter);
                   if (mnemonic > 0)
                        addMnemonic(counter, mnemonic);
          * Resets the mnemonics bindings to an empty state.
         private void resetMnemonics()
              if (mnemonicToIndexMap != null)
                   mnemonicToIndexMap.clear();
                   mnemonicInputMap.clear();
          * Adds the specified mnemonic at the specified index.
         private void addMnemonic(int index, int mnemonic)
              if (mnemonicToIndexMap == null)
                   initMnemonics();
              mnemonicInputMap.put(KeyStroke.getKeyStroke(mnemonic, Event.ALT_MASK),
                        "setSelectedIndex");
              mnemonicToIndexMap.put(new Integer(mnemonic), new Integer(index));
          * Installs the state needed for mnemonics.
         private void initMnemonics()
              mnemonicToIndexMap = new Hashtable();
              mnemonicInputMap = new InputMapUIResource();
              mnemonicInputMap.setParent(SwingUtilities.getUIInputMap(tabPane,
                        JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT));
              SwingUtilities
                        .replaceUIInputMap(tabPane,
                                  JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,
                                  mnemonicInputMap);
         // UI Rendering
         public void paint(Graphics g, JComponent c)
              int tc = tabPane.getTabCount();
              if (tabCount != tc)
                   tabCount = tc;
                   updateMnemonics();
              int selectedIndex = tabPane.getSelectedIndex();
              int tabPlacement = tabPane.getTabPlacement();
              ensureCurrentLayout();
              // Paint content border
              paintContentBorder(g, tabPlacement, selectedIndex);
         protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects,
                   int tabIndex, Rectangle iconRect, Rectangle textRect)
              Rectangle tabRect = rects[tabIndex];
              int selectedIndex = tabPane.getSelectedIndex();
              boolean isSelected = selectedIndex == tabIndex;
              boolean isOver = overTabIndex == tabIndex;
              Graphics2D g2 = null;
              Shape save = null;
              boolean cropShape = false;
              int cropx = 0;
              int cropy = 0;
              if (g instanceof Graphics2D)
                   g2 = (Graphics2D) g;
                   // Render visual for cropped tab edge...
                   Rectangle viewRect = tabScroller.viewport.getViewRect();
                   int cropline;
                   cropline = viewRect.x + viewRect.width;
                   if ((tabRect.x < cropline)
                             && (tabRect.x + tabRect.width > cropline))
                        cropx = cropline - 1;
                        cropy = tabRect.y;
                        cropShape = true;
                   if (cropShape)
                        save = g2.getClip();
                        g2
                                  .clipRect(tabRect.x, tabRect.y, tabRect.width,
                                            tabRect.height);
              paintTabBackground(g, tabPlacement, tabIndex, tabRect.x, tabRect.y,
                        tabRect.width, tabRect.height, isSelected);
              paintTabBorder(g, tabPlacement, tabIndex, tabRect.x, tabRect.y,
                        tabRect.width, tabRect.height, isSelected);
              String title = tabPane.getTitleAt(tabIndex);
              Font font = tabPane.getFont();
              FontMetrics metrics = g.getFontMetrics(font);
              Icon icon = getIconForTab(tabIndex);
              layoutLabel(tabPlacement, metrics, tabIndex, title, icon, tabRect,
                        iconRect, textRect, isSelected);
              paintText(g, tabPlacement, font, metrics, tabIndex, title, textRect,
                        isSelected);
              paintIcon(g, tabPlacement, tabIndex, icon, iconRect, isSelected);
              paintFocusIndicator(g, tabPlacement, rects, tabIndex, iconRect,
                        textRect, isSelected);
              if (cropShape)
                   paintCroppedTabEdge(g, tabPlacement, tabIndex, isSelected, cropx,
                             cropy);
                   g2.setClip(save);
              } else if (isOver || isSelected)
                   int dx = tabRect.x + tabRect.width - BUTTONSIZE - WIDTHDELTA;
                   int dy = (tabRect.y + tabRect.height) / 2 - 6;
                   if (isCloseButtonEnabled)
                        paintCloseIcon(g2, dx, dy, isOver);
         protected void paintCloseIcon(Graphics g, int dx, int dy, boolean isOver)
              paintActionButton(g, dx, dy, closeIndexStatus, isOver, closeB,
                        closeImgB);
              g.drawImage(closeImgI, dx, dy + 1, null);
         protected void paintActionButton(Graphics g, int dx, int dy, int status,
                   boolean isOver, JButton button, BufferedImage image)
              button.setBorder(null);
              if (isOver)
                   switch (status)
                   case OVER:
                        button.setBorder(OVERBORDER);
                        break;
                   case PRESSED:
                        button.setBorder(PRESSEDBORDER);
                        break;
              button.setBackground(tabScroller.tabPanel.getBackground());
              button.paint(image.getGraphics());
              g.drawImage(image, dx, dy, null);
          * This method will create and return a polygon shape for the given tab
          * rectangle which has been cropped at the specified cropline with a torn
          * edge visual. e.g. A "File" tab which has cropped been cropped just after
          * the "i": ------------- | ..... | | . | | ... . | | . . | | . . | | . . |
          * The x, y arrays below define the pattern used to create a "torn" edge
          * segment which is repeated to fill the edge of the tab. For tabs placed on
          * TOP and BOTTOM, this righthand torn edge is created by line segments
          * which are defined by coordinates obtained by subtracting xCropLen[i] from
          * (tab.x + tab.width) and adding yCroplen[i] to (tab.y). For tabs placed on
          * LEFT or RIGHT, the bottom torn edge is created by subtracting xCropLen[i]
          * from (tab.y + tab.height) and adding yCropLen[i] to (tab.x).
         private static final int     CROP_SEGMENT     = 12;
         private void paintCroppedTabEdge(Graphics g, int tabPlacement,
                   int tabIndex, boolean isSelected, int x, int y)
              g.setColor(shadow);
              g.drawLine(x, y, x, y + rects[tabIndex].height);
         private void ensureCurrentLayout()
              if (!tabPane.isValid())
                   tabPane.validate();
               * If tabPane doesn't have a peer yet, the validate() call will silently
               * fail. We handle that by forcing a layout if tabPane is still invalid.
               * See bug 4237677.
              if (!tabPane.isValid())
                   TabbedPaneLayout layout = (TabbedPaneLayout) tabPane.getLayout();
                   layout.calculateLayoutInfo();
          * Returns the bounds of the specified tab in the coordinate space of the
          * JTabbedPane component. This is required because the tab rects are by
          * default defined in the coordinate space of the component where they are
          * rendered, which could be the JTabbedPane (for WRAP_TAB_LAYOUT) or a
          * ScrollableTabPanel (SCROLL_TAB_LAYOUT). This method should be used
          * whenever the tab rectangle must be relative to the JTabbedPane itself and
          * the result should be placed in a designated Rectangle object (rather than
          * instantiating and returning a new Rectangle each time). The tab index
          * parameter must be a valid tabbed pane tab index (0 to tab count - 1,
          * inclusive). The destination rectangle parameter must be a valid
          * <code>Rectangle</code> instance. The handling of invalid parameters is
          * unspecified.
          * @param tabIndex
          *            the index of the tab
          * @param dest
          *            the rectangle where the result should be placed
          * @return the resulting rectangle
          * @since 1.4
         protected Rectangle getTabBounds(int tabIndex, Rectangle dest)
              try{
                   dest.width = rects[tabIndex].width;
                   dest.height = rects[tabIndex].height;
                   Point vpp = tabScroller.viewport.getLocation();
                   Point viewp = tabScroller.viewport.getViewPosition();
                   dest.x = rects[tabIndex].x + vpp.x - viewp.x;
                   dest.y = rects[tabIndex].y + vpp.y - viewp.y;
              }catch(Throwable a_th){}
              return dest;
         private int getTabAtLocation(int x, int y)
              ensureCurrentLayout();
              int tabCount = tabPane.getTabCount();
              for (int i = 0; i < tabCount; i++)
                   if (rects.contains(x, y))
                        return i;
              return -1;
         public int getOverTabIndex()
              return overTabIndex;
         * Returns the index of the tab closest to the passed in location, note that
         * the returned tab may not contain the location x,y.
         private int getClosestTab(int x, int y)
              int min = 0;
              int tabCount = Math.min(rects.length, tabPane.getTabCount());
              int max = tabCount;
              int tabPlacement = tabPane.getTabPlacement();
              boolean useX = (tabPlacement == TOP || tabPlacement == BOTTOM);
              int want = (useX) ? x : y;
              while (min != max)
                   int current = (max + min) / 2;
                   int minLoc;
                   int maxLoc;
                   if (useX)
                        minLoc = rects[current].x;
                        maxLoc = minLoc + rects[current].width;
                   } else
                        minLoc = rects[current].y;
                        maxLoc = minLoc + rects[current].height;
                   if (want < minLoc)
                        max = current;
                        if (min == max)
                             return Math.max(0, current - 1);
                   } else if (want >= maxLoc)
                        min = current;
                        if (max - min <= 1)
                             return Math.max(current + 1, tabCount - 1);
                   } else
                        return current;
              return min;
         * Returns a point which is translated from the specified point in the
         * JTabbedPane's coordinate space to the coordinate space of the
         * ScrollableTabPanel. This is used for SCROLL_TAB_LAYOUT ONLY.
         private Point translatePointToTabPanel(int srcx, int srcy, Point dest)
              Point vpp = tabScroller.viewport.getLocation();
              Point viewp = tabScroller.viewport.getViewPosition();
              dest.x = srcx + vpp.x + viewp.x;
              dest.y = srcy + vpp.y + viewp.y;
              return dest;
         // BasicTabbedPaneUI methods
         // Tab Navigation methods
         // REMIND(ADC,7/29/98): This method should be made
         // protected in the next release where
         // API changes are allowed
         boolean requestMyFocusForVisibleComponent()
              Component visibleComponent = getVisibleComponent();
              if (visibleComponent.isFocusTraversable())
                   visibleComponent.requestFocus();
                   return true;
              } else if (visibleComponent instanceof JComponent)
                   if (((JComponent) visibleComponent).requestDefaultFocus())
                        return true;
              return false;
         private static class RightAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.navigateSelectedTab(EAST);
         private static class LeftAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.navigateSelectedTab(WEST);
         private static class UpAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.navigateSelectedTab(NORTH);
         private static class DownAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.navigateSelectedTab(SOUTH);
         private static class NextAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.navigateSelectedTab(NEXT);
         private static class PreviousAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.navigateSelectedTab(PREVIOUS);
         private static class PageUpAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   int tabPlacement = pane.getTabPlacement();
                   if (tabPlacement == TOP || tabPlacement == BOTTOM)
                        ui.navigateSelectedTab(WEST);
                   } else
                        ui.navigateSelectedTab(NORTH);
         private static class PageDownAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   int tabPlacement = pane.getTabPlacement();
                   if (tabPlacement == TOP || tabPlacement == BOTTOM)
                        ui.navigateSelectedTab(EAST);
                   } else
                        ui.navigateSelectedTab(SOUTH);
         private static class RequestFocusAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   pane.requestFocus();
         private static class RequestFocusForVisibleAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.requestMyFocusForVisibleComponent();
         * Selects a tab in the JTabbedPane based on the String of the action
         * command. The tab selected is based on the first tab that has a mnemonic
         * matching the first character of the action command.
         private static class SetSelectedIndexAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = (JTabbedPane) e.getSource();
                   if (pane != null && (pane.getUI() instanceof VCTabPaneUI))
                        VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                        String command = e.getActionCommand();
                        if (command != null && command.length() > 0)
                             int mnemonic = (int) e.getActionCommand().charAt(0);
                             if (mnemonic >= 'a' && mnemonic <= 'z')
                                  mnemonic -= ('a' - 'A');
                             Integer index = (Integer) ui.mnemonicToIndexMap
                                       .get(new Integer(mnemonic));
                             if (index != null && pane.isEnabledAt(index.intValue()))
                                  pane.setSelectedIndex(index.intValue());
         private static class ScrollTabsForwardAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = null;
                   Object src = e.getSource();
                   if (src instanceof JTabbedPane)
                        pane = (JTabbedPane) src;
                   } else if (src instanceof ScrollableTabButton)
                        pane = (JTabbedPane) ((ScrollableTabButton) src).getParent();
                   } else
                        return; // shouldn't happen
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.tabScroller.scrollForward(pane.getTabPlacement());
         private static class ScrollTabsBackwardAction extends AbstractAction
              public void actionPerformed(ActionEvent e)
                   JTabbedPane pane = null;
                   Object src = e.getSource();
                   if (src instanceof JTabbedPane)
                        pane = (JTabbedPane) src;
                   } else if (src instanceof ScrollableTabButton)
                        pane = (JTabbedPane) ((ScrollableTabButton) src).getParent();
                   } else
                        return; // shouldn't happen
                   VCTabPaneUI ui = (VCTabPaneUI) pane.getUI();
                   ui.tabScroller.scrollBackward(pane.getTabPlacement());
         * This inner class is marked "public" due to a compiler bug. This
         * class should be treated as a "protected" inner class.
         * Instantiate it only within subclasses of BasicTabbedPaneUI.
         private class TabbedPaneScrollLayout extends TabbedPaneLayout
              protected int preferredTabAreaHeight(int tabPlacement, int width)
                   return calculateMaxTabHeight(tabPlacement);
              protected int preferredTabAreaWidth(int tabPlacement, int height)
                   return calculateMaxTabWidth(tabPlacement);
              public void layoutContainer(Container parent)
                   int tabPlacement = tabPane.getTabPlacement();
                   int tabCount = tabPane.getTabCount();
                   Insets insets = tabPane.getInsets();
                   int selectedIndex = tabPane.getSelectedIndex();
                   Component visibleComponent = getVisibleComponent();
                   calculateLayoutInfo();
                   if (selectedIndex < 0)
                        if (visibleComponent != null)
                             // The last tab was removed, so remove the component
                             setVisibleComponent(null);
                   } else
                        Component selectedComponent = tabPane
                                  .getComponentAt(selectedIndex);
                        boolean shouldChangeFocus = false;
                        // In order to allow programs to use a single component
                        // as the display for multiple tabs, we will not change
                        // the visible compnent if the currently selected tab
                        // has a null component. This is a bit dicey, as we don't
                        // explicitly state we support this in the spec, but since
                        // programs are now depending on this, we're making it work.
                        if (selectedComponent != null)
                             if (selectedComponent != visibleComponent
                                       && visibleComponent != null)
                                  if (SwingUtilities.findFocusOwner(visibleComponent) != null)
                                       shouldChangeFocus = true;
                             setVisibleComponent(selectedComponent);
                        int tx, ty, tw, th; // tab area bounds
                        int cx, cy, cw, ch; // content area bounds
                        Insets contentInsets = getContentBorderInsets(tabPlacement);
                        Rectangle bounds = tabPane.getBounds();
                        int numChildren = tabPane.getComponentCount();
                        if (numChildren > 0)
                             // calculate tab area bounds
                             tw = bounds.width - insets.left - insets.right;
                             th = calculateTabAreaHeight(tabPlacement, runCount,
                                       maxTabHeight);
                             tx = insets.left;
                             ty =

  • LabVIEW ARM break after update Front Panel during debug

    I try to debug the vi by Ulink, the vi just show the LED blinking for 500ms on/off with while infinity loop, after click run button the loop continue working about 5 second and then break button actived with front panel update. Is this normal working?
    Thank you

    After I click Run button on the toolbar the vi start ranning, the LED blinking show on the hardware but not update to the vi front panel, around 3 second the vi stop (like a we click on Pause button on toolbar) and update the status LED to front panel.
    I used ULINK1 for this example, I don't know this cause of the problem or not.
    Thank you.
    Attachments:
    vi_stop.JPG ‏25 KB

  • Edge Animate .oam files taking a long time to load or not loading at all?

    http://pierosalardi.businesscatalyst.com
    Is there a way to correct this? I have exported this Muse Site and uploaded into my server and the same thing is happening: http://pierosalardi.com/animate/ Its taking to much time to load the .oam files and sometimes they do not load at all.
    This is a screen shot after reseting Safari and going to the site. If you see, there is no logo on the up right hand corner, or the icons at the bottom of the page
    This is another screenshot after reloading the site. Some how all the .oam files came together but only after reloading the site.
    Is there a way to correct this? I saw in another post that needed to replace the iFrame on the Muse html file and replace it with the html code generated by Edge.
    Couldn't get it to work.

    Hey Piero,
    Love your site! I'm not seeing the loading issue, but I'm also on a fast connection so that might be it.
    Took a look at the source - it looks like each button is it's own individual OAM file, which increases your load time due to the extra requests the browser has to make to load everything. Have you tried consolidating the left and right button groups into two Animate projects instead of having a seperate one for each button? This may solve your loading problems.
    You can copy and paste between projects inside of Animate so aggregating the buttons into one file should be pretty snappy.
    Sarah

  • How to use Logger object in Lookout 5.0

    I am now trying to log data using Logger object. I use Switch1 for activating LogContinuously mode and Switch2  for breaking logging process. If I turn off Switch1, the logging process stops, its ok. My problem is if Switch1 is still on and I turn off Switch2, the logging process is still running. I seems different from what I have read from Help file. Anyone has the solution for it?Please give me an advice! Thanks a lot. Its better if someone post an example about using Logger object here for reference.
    Regards, 

    I think the behaviour you described is correct. If you turn on switch2, the logging process will stop, even when switch1 is on. If you turn off switch2, the process will be running.
    Here is an example of logger object.
    http://zone.ni.com/devzone/cda/epd/p/id/3816
    you can change the "log break" button into a switch, which can better show you how it works.
    Ryan Shi
    National Instruments

  • MuVo N200 - A whole host of probl

    Not wanting to sound cocky, but I think I can answer my own problem here before you all join in, but hey, who knows, I might be wrong. I think my N200 needs returning to Creative for some serious surgery. Here's "the list":
    + When transferring files with WMP0, a random number of files on the list to be copied will complete successfully. Then, an error message such as "The Server threw an exception" appears. According to Microsoft's Web "Help", this is because an MPEG2 video file is trying to convert and won't. Somehow, I don't think this is the case.
    + If I choose not to convert the files before transfer, it's blind faith as to whether they will all copy or not. In a sync list of 80 items, the transfer will fail seven or eight times on average. No error from media player this time, it's a windows balloon tip saying "delayed write failed". I have to remove and re-connc the muvo to continue the transfer.
    + Using MediaSource, the same error as above occurs after transferring EVERY track.
    + If, by some miracle, I manage to get the songs I want onto the muvo before dying of old age, it's the a 50/50 chance that when I unplug the muvo and switch it on, it will say "file system error", switch itself off and when re-connected will be as blank as the day it left the factory.
    + Alternati'vely, it will be fine until a random amount of time later when it will switch itself off, and then when switched back on it will give the file system error.
    + If, miraculously, it has got through the day without wiping itself, when plugged back in media player will not always be able to remove old songs from the player, and will therefore declare it to be full after copying just track onto it.
    Now, before you all jump up, let me just explain the following:
    I have ALL the latest drivers, firmware, updates and widgets for Windows, Media Player, MediaSource, the MuVo, my USB ports, my motherboard, and every other piece of hardware just in case it's a conflict. There is nothing else I can download.
    I've tried re-installing the firmware (in fact I'm having to do this on an almost daily basis).
    I've tried it on a friend's computer: no change, same problems.
    I've tried using a fresh install of windows with all the extra hardware stripped out of the pc, and i've tried the same system wit al the updates. Same problems.
    I haven't EVER dropped the muvo, I don't li've next to a nuclear power station or on Jupiter.
    I've tried using different kinds of batteries.
    I've connected it in recovery mode, wiped it and started again. Repeatedly. Several times.
    So, as I said at the top, I think I have a faulty muvo, b ut if anyone out there is thinking, "What a fool, he hasn't pressed the 'don't break' button!" then please, for the sake of my sahnity and rapidly receding hairline, HELP ME!
    Dave
    p.s. My 0 year old sound blaster 6 works flawalessly and always has. My 5 year old sound blaster li've 5. works flawlessly and nearly always has. My zen touch works flawlessly, but is a replacement for a faulty zen xtra. Which worked well, but was a replacement for a faulty jukebox zen. Which work ok, but was a replacement for a faulty jukebox 3 (which had an awesome remote control). Anyone see a pattern here?

    davehelps:
    The "delayed write failed" message suggests to me that you have write caching enabled for the N200 within Windows. This might be causing problems. I have this disabled - a side effect of this is that I don't have to use the Safely Remove Hardware icon before disconnecting the player (as long as I'm sure it is not being written to at the time).
    To disable write caching:
    Open My Computer and right click on the dri've letter for your player, choosing Properties.</LI>
    On the Hardware tab click on the N200 and choose Properties again.</LI>
    On the Properties page choose the Policies tab and select Optimize for quick removal.</LI>
    PB

  • Restore problem with Window's Vista

    Laptop (G60-235DX) fell a couple feet and killed the HDD. I installed a new HDD (Seagate Momentous 500gb) and ran the recovery disks which I ordered from HP a couple years ago. The recovery goes fine and then it proceeds to install Windows. However, about 3/4 of the way through the install, I get a runtime error (restore7), which is followed by the message that it did not install correctly, which is then followed by the dreaded blue screen. When the computer reboots, I must start the process over again, as the HDD was never formated correctly in the first place.
    Any ideas? I'm worried that this is being caused by physical damage to the computer from the fall, but I don't have any actual evidence to support that.
    Thoughts?

    There might be a problem with the hardware, but don't worry too much. Blue Screens show up to remind us that something is wrong, either on your software or hardware. It is possible that not only your HDD got physically damaged, but some part as well. Try reading the whole Blue Screen to know what causes it. You could use the Pause/Break button in your keyboard for that.
    Works every time.

  • How to get to learn using TestStand User Interfaces

    I am starting to work with TestStand and I was looking into using the User Interface.  I know that a couple of examples are provided and that there is a couple of sections of literature on the subject, but there does not appear to be a very helpful (get started from scratch) type of documentation that I can find.  Does such a thing exist?  If not, what is the best way to get started?
    Solved!
    Go to Solution.

    You can currently do this in the Full-Featured UI without any modifications.  It's kind of a hack though:
    So assume that an execution is running.  The user clicks the Break button and wants to rerun a step with different parameters.  So now your execution is paused somewhere below the step.  Right click the step and select: Set Next Step to Cursor.  Now in the Variable window look for the variable that is being passed as a parameter to that step.  Say for instance Locals.Foo is being passed to your VI.  Change the value of it and click the Resume button.  This also assumes that you are passing either Locals or FileGlobals to your VI.  You may have to have Administrator privileges to do this.
    If this isn't good enough then there are ways to accomplish what you want in a cleaner manner.
    One way is to build your sequence file such that if a certain condition occurs then retry with new values or values from a file which can be changed by the user.  This is what I would recommend because it will be the cleanest and the easiest.
    Another way is to build into your UI like you are asking about.  The problem with this is at a certain point the user will click Break or a Stop button that you have put on there.  This will stop the execution at some point (who knows exactly what point unless you write code to specify a point).  Then they would have a pop up or something that would allow them to select a step.  Then for each step you'll have to have some code or a parser or something that will determine the parameters and valid values they can be and ask the user for those.  This is all doable but would be quite a task.  You will have a long ways to go in understanding the TestStand API in order to accomplish this.  In fact there would be so many API calls with numerous ways to attack this problem. 
    Whichever way you choose to go you will always have the TestStand forums or NI support.
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Where did the insert page go? and why does my documents have a text block?

    I have a document that I continually add to in Pages and is now 38 pages long. The problem is that recently the text has gone from being on the page to now being inside a text box?? I did not do anything to the document besides open it and start typing. Why would this have changed? Also I've noticed that the page break button which used to be in the tool bar, then moved to the copy/paste touch screen button, has now officially dissapeared all together from my Pages!!!! WHAT IS GOING ON!?!? there are no updates for Pages and I'm not really sure what to do. It won't let me add another page to this document? Someone please help me

    I will have your post moved " to iwork for ios "

  • Broken images are displayed in discoverer 11g

    Hi Team,
    We have installed discoverer 11g in internal node and trying to access it via https LB URL which points to internal node.
    When report is launched from EBS the images are not displayed and also look & feel is not good.
    Can anyone please assist on this.
    Thanks,
    Bharathi

    i see a ins  prt sc, ubt no pb or pause/break button.  There is a pg dn, pg up, end home, under those is a num lock, than a /, than a *, than a -
    reated by Brett N in Photoshop Elements - View the full discussion
    Screen shots:
    Windows - Click the Print Screen button (up by the Scroll Lock and Pause/Break buttons in the upper right of the keyboard). This adds the screen shot to the clipboard. Open the Photoshop Elements Editor, and go to File > New > Image from Clipboard.
    Mac - CommandShift3 (you should hear a camera sound).
    Please note that the Adobe Forums do not accept email attachments. If you want to embed a screen image in your message please visit the thread in the forum to embed the image at http://forums.adobe.com/message/5448708#5448708
    Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/5448708#5448708
    To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/5448708#5448708. In the Actions box on the right, click the Stop Email Notifications link.      
    Start a new discussion in Photoshop Elements by email or at Adobe Community
    For mo

  • How to add a pause feature to a state machine.

    I am using the attached VI (Auto Reactor.vi) to control a sequence of relays on an NI 9481. What I have it set up to do right now is run several pre-defined cycles in a given sequence based on user-inputted time parameters for each. What I need to do is build in a pause function such that whatever cycle is currently being run pauses at the press of a button then resumes exactly where it was in the cycle when the button is pressed again.
    There are several forums relating to this; however, I have not had any success using the techniques presented within them. Any help would be greatly appreciated.
    Attachments:
    LabView.zip ‏188 KB

    Hi nick525,
    you can add an additional "break" button and set the Event Timeout time to -1. After change back, the loop goes on.
    I attached an example of it.
    Mike
    Attachments:
    Auto Reactor.vi ‏76 KB

  • CS4 Installation Causing Extreme Slowdowns

    I recently installed CS4 on my computer (HP xw4300 workstation).  In the process I somehow lost my user profile and am experiencing extreme slowdowns when trying to open any of the CS4 programs.  I actually talked to HP customer service and they said there is no reason (memory capability, etc...) as to why this should be happening.  Any suggestions?

    Hi Ellie,
    To fix your problem, I would suggest adding memory to your system.  Your processor seems to be O.K. (but nothing more), so investing a tiny $25 into memory would be a good solution possibly.
    Add another GB of RAM or so.  If that is too expensive, get this RAM.
    If you are not experienced in computer maintenance, make sure you follow the simple steps of installing more memory.  It really isn't that hard.  And unless you go rubbing your feet around on the carpet and come back to shock your computer, you're not going to wreck it.  Just remember to ground yourself once in a while on the power supply (the box inside the computer case).
    I don't know how much you know, so here's some simple steps:
    Turn your computer off
    Unplug it (fat black cord)
    Wait about 30 seconds (the motherboard holds power for a little while)
    Open the case (the 'box' that makes the noise when it's on)
    Ground yourself to the power supply by touching the metal housing (again, this is the *usually silver box inside the case - around where you pulled the cable from the back)
    Find the slots for the memory (make sure there is no dust in the slots!)
    Open the clasps and put the sticks in evenly with equal amount of pressure on both sides until they snap in
    Close the case
    Plug it in
    Turn it on
    Once the PC is on and you're logged on, press the windows key (on the bottom - between the 'Ctrl' and 'Alt' keys) and the 'Pause/Break' button at the same time.  This will bring up your system properties.  Depending on how much RAM you bought, it should show something like 1.5GB or 2.5GB or a large number of MB's (2444MB for example).  If it still shows 512MB, you either didn't install the chips correctly or the system isn't recognizing them.
    Hope this helps.
    -Michael D

Maybe you are looking for