<HTML><!-- #BeginTemplate "/Templates/MainTemplate.dwt" -->
<HEAD>
<!-- #BeginEditable "doctitle" --> 
<TITLE>RB Manager - The Groups Tab</TITLE>
<!-- #EndEditable --> 
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<STYLE TYPE="TEXT/CSS">
<!--
.topicHead {  font-family: "Times New Roman", Times, serif; font-size: 14pt; font-weight: bold; text-align: center; color: #333333}
.topicList {  font-family: Georgia, "Times New Roman", Times, serif; font-size: 9pt; color: #FF0099; list-style-image: url(../images/diamond_bullet.gif); text-decoration: none; font-weight: bold}
.mainBlock {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt; margin-top: 5px; margin-right: 5px; margin-bottom: 5px; margin-left: 5px; padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; text-align: justify}
-->
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
  <TR>
    <TD ROWSPAN="2" COLSPAN="2" BACKGROUND="../images/template_ul.gif" HEIGHT="75"><IMG SRC="../images/spacer.gif" WIDTH="280" HEIGHT="1" HSPACE="0"></TD>
		<TD HEIGHT="15"  WIDTH="100%" BACKGROUND="../images/template_u.gif"></TD>
	</TR>
	<TR>
		<TD HEIGHT="60" >
			<CENTER><IMG SRC="../images/TitleLogo_transparent.gif" VSPACE="0"></CENTER>
		</TD>
	</TR>
	<TR>
		
    <TD WIDTH="200" BACKGROUND="../images/template_l.gif" VALIGN="top">
		<TABLE WIDTH="180" CELLSPACING="0" CELLPADDING="1"> 
      	<TR>
			<TD CLASS="topicHead">General</TD>
		</TR>
		<TR>
			<TD VALIGN="center"><IMG SRC="../images/template_line.gif"></TD>
		</TR>
		<TR>
			<TD CLASS="topicList">
	        <UL>
              <LI><A HREF="../system_requirements.html">System Requirements</A></LI>
              <LI><A HREF="../faq.html">FAQ</A></LI>
              <LI><A HREF="../future_features.html">Future Releases</A></LI>
              <LI CLASS="topicList"><A HREF="../future_features.html">Version 
                History</A></LI>
            </UL>
			</TD>
		</TR>
      	<TR>
			<TD CLASS="topicHead">RB Manager</TD>
		</TR>
		<TR>
			<TD VALIGN="center"><IMG SRC="../images/template_line.gif"></TD>
		</TR>
		<TR>
			<TD CLASS="topicList">
	        <UL>
              <LI><A HREF="../index.html">Home</A></LI>
              <LI><A HREF="../tutorial/index.html">Tutorial</A></LI>
              <LI><A HREF="index.html">Functionality and Views</A></LI>
              <LI><A HREF="../lookandfeel.html">Look and Feel</A></LI>
              <LI><A HREF="../menu.html">Menu Items</A></LI>
              <LI CLASS="topicList"><A HREF="../tutorial/step1.html">Preferences</A></LI>
            </UL>
			</TD>
		</TR>
		<TR>
			<TD CLASS="topicHead">RB Reporter</TD>
		</TR>
		<TR>
			<TD VALIGN="center"><IMG SRC="../images/template_line.gif"></TD>
		</TR>
		<TR>
			<TD CLASS="topicList">
	  <UL>
              <LI><A HREF="../RBReporter.html">Home</A></LI>
        <LI>Report Types</LI>
              <LI><A HREF="../scanfile.html">Code Scanning</A></LI>
            </UL>
			</TD>
		</TR>
	</TABLE>

      <P>&nbsp; </P>
      </TD>
		
    <TD COLSPAN="2" VALIGN="top" CLASS="mainBlock"><!-- #BeginEditable "Main" --> 
      <H3 ALIGN="CENTER">View 4. The Groups Tab</H3>
      <P>The Groups tab view, like all tab views, looks and functions differently 
        when working with the resource bundle as a whole than when working with 
        an individual resource file. For an overview of this difference see <A HREF="view1.html">View 
        1</A>. RB Manager adds a level of heirarchy not commonly found in resource 
        bundles. This addtional level is called Groups. For more information on 
        Resource Groups see the <A HREF="../tutorial/index.html">Tutorial</A>.</P>
      <P><B>Working with a Resource Bundle</B></P>
      <P>The screen shot below shows RB Manager and a view of groups for the entire 
        resource bundle.</P>
      <P><IMG SRC="../images/screenshots/view_groups_bundle.gif" WIDTH="671" HEIGHT="543"></P>
      <P>Unlike the Untranslated tab view, this view allows the editing of resources. 
        Editing or adding resources at this level affects the resource bundle 
        as a whole. Thus if a resource has all ready been translated in a resource 
        file, it will be marked as untranslated to reflect the change in the entire 
        bundle.</P>
      <P>Editing a resource is as simple as selecting the group from the drop 
        down box at the top of the screen, double clicking a resource, making 
        the desired change, and clicking 'Edit' on the dialog box resulting from 
        the double click. Optionally, the resource can be edited by selecting 
        it and pressing the 'Edit Resource' button instead of double clicking.</P>
      <P>The Resource Group can also be edited. The name and comment associate 
        with the group can be changed by pressing the 'Edit Group' button. Pressing 
        the 'Delete Group' button will delete both the group and all resources 
        contained within it. A dialog will prompt you when this button is pressed 
        to make sure this is what you intend to do.</P>
      <P>Resources created in the Group view will by default be placed in the 
        group currently being shown. This can be changed however by selecting 
        another group name from the resource creation dialog box.</P>
      <P>This view is probably the most commonly used view by developers inserting 
        new resources into a bundle.</P>
      <P><B>Working with a Resource File</B></P>
      <P>The next screen shot shows the Group tab view when working with an individual 
        resource file.</P>
      <P><IMG SRC="../images/screenshots/view_groups_file.gif" WIDTH="671" HEIGHT="543"></P>
      <P>The functionality of this view mostly mirrors that of the Untranslated 
        tab view. More on that view is found in <A HREF="view3.html">View 3</A>. 
        The only addition is that resources all ready marked as translated can 
        be seen and edited from this view. Selecting a group from the drop down 
        box will update the display with all resources, translated or not, from 
        that group.</P>
      <P ALIGN="CENTER"><A HREF="view5.html">View 5. The Search Tab</A></P>
      <!-- #EndEditable --></TD>
	</TR>
	<TR>
		<TD BACKGROUND="../images/template_ll.gif" HEIGHT="40" WIDTH="200">
			<!-- Comment -->
		</TD>
		<TD WIDTH="80">
			<!-- Comment -->
		</TD>
		<TD>
			<CENTER><SPAN CLASS="Copyright">Copyright 2000-2001 International Business Machines, All Rights Reserved</SPAN></CENTER>
		</TD>
	</TR>
</TABLE>

</BODY>
<!-- #EndTemplate --></HTML>
