Sprytab Panel code for fade transition.

Hello,
I am using the spry panel tabs, and they work great for what I need them for. However I thought it would be cool in this day and time to see if there would be a small script tag to add to the code to get them to fade on click to next tab content.
Here is the direct link.
Fantasy Football: DA-DARK_2015
Here is the spry on that page.
<div id="TabbedPanels41" class="TabbedPanels">
  <ul class="TabbedPanelsTabGroup">
    <li class="TabbedPanelsTab" tabindex="0">Breaking News</li>
    <li class="TabbedPanelsTab" tabindex="0">Trending Now</li>
    <li class="TabbedPanelsTab" tabindex="0">League Articles</li>
    <li class="TabbedPanelsTab" tabindex="0">Previews</li>
    <li class="TabbedPanelsTab" tabindex="0">Recaps</li>
    <li class="TabbedPanelsTab" tabindex="0">Videos</li>
    <li class="TabbedPanelsTab" tabindex="0">Trash-Talk Video</li>   
  </ul>
  <div class="TabbedPanelsContentGroup">
    <div class="TabbedPanelsContent"><module name="NEWS_ARTICLES" COUNT="10"/> </div>
    <div class="TabbedPanelsContent"><module name="HOT_NEWS"/> </div>
    <div class="TabbedPanelsContent"><module name="ARTICLE"/> </div>
    <div class="TabbedPanelsContent"><module name="FANTASY_PREVIEW"/> </div>
    <div class="TabbedPanelsContent"><module name="FANTASY_RECAP"/> </div>
    <div class="TabbedPanelsContent"><module name="YOUTUBEVIDEO"/>  </div>
    <div class="TabbedPanelsContent"><module name="TRASHTALKVIDEOS"/>  </div>
  </div>
</div>
<script type="text/javascript">
var TabbedPanels = new Spry.Widget.TabbedPanels("TabbedPanels41");
</script>
Where the <script> tag is, I was hoping something more could go there for the fade effect and have some control over it also would be ideal.
Thank you

So is it me or does this github page don't have a direct download of these scripts? I didn't see it if they did, however I was able to grab the effect script and make my own JS file from it.
and I see some issues with this unfortunately.
The site
Fantasy Football: DA-DARK_2015
Bottom page you can see my test tabs
Here is my code altered from what as posted for my content and I removed the css file and tab js as I have those pulled already.
<div id="TabbedPanels1" class="TabbedPanels"> 
  <ul class="TabbedPanelsTabGroup"> 
    <li id="fade1" class="TabbedPanelsTab" tabindex="0" onclick="fade1.start(); fade_content1.start();">My Roster</li> 
<li id="fade2" class="TabbedPanelsTab" tabindex="0" onclick="fade1.start(); fade_content1.start();">My News</li> 
    <li id="fade3" class="TabbedPanelsTab" tabindex="0" onclick="fade2.start(); fade_content2.start();">My Bye Weeks</li> 
    <li id="fade4" class="TabbedPanelsTab" tabindex="0" onclick="fade3.start(); fade_content3.start();">Pending Waivers</li> 
    <li id="fade5" class="TabbedPanelsTab" tabindex="0" onclick="fade4.start(); fade_content4.start();">All My Leagues</li> 
  </ul> 
  <div class="TabbedPanelsContentGroup"> 
    <div class="TabbedPanelsContent"> 
      <div id="fade_content1"><module name="ROSTER"/>   </div> 
    </div> 
    <div class="TabbedPanelsContent"> 
      <div id="fade_content2"><module name="MY_NEWS" COUNT="10"/></div> 
    </div> 
    <div class="TabbedPanelsContent"> 
      <div id="fade_content3"><module name="MY_BYE_WEEKS"/> </div> 
    </div> 
    <div class="TabbedPanelsContent"> 
      <div id="fade_content4"><module name="MY_PENDING_WAIVERS"/> </div> 
    </div> 
   <div id="fade_content5"><module name="ALL_MY_LEAGUES"/></div> 
    </div> 
  </div> 
</div> 
<script src="http://www.dagrafixdesigns.com/DA/spryeffects.js"></script> 
<script> 
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1"); 
var fade1 = new Spry.Effect.Fade("fade1", {duration:3000, from:0, to:100, toggle:false});  
var fade_content1 = new Spry.Effect.Fade("fade_content1", {duration:3000, from:0, to:100, toggle:false}); 
var fade2 = new Spry.Effect.Fade("fade2", {duration:3000, from:0, to:100, toggle:false}); 
var fade_content2 = new Spry.Effect.Fade("fade_content2", {duration:3000, from:0, to:100, toggle:false}); 
var fade3 = new Spry.Effect.Fade("fade3", {duration:3000, from:0, to:100, toggle:false}); 
var fade_content3 = new Spry.Effect.Fade("fade_content3", {duration:3000, from:0, to:100, toggle:false}); 
var fade4 = new Spry.Effect.Fade("fade4", {duration:3000, from:0, to:100, toggle:false}); 
var fade_content4 = new Spry.Effect.Fade("fade_content4", {duration:3000, from:0, to:100, toggle:false}); 
</script>
Probably I am seeing is the actual tab next to the one you click is showing fade effects, I don't want any of the tabs having an effect, just the content.
Second problem I see is, only one you click to a tab, and then back to the first tab MY ROSTERS, does that content actually fade....only.   Each tab content should fade with tab click as it comes into view.
Are these fixable, or should I just let it go and focus on another newer platform as in the first post?

Similar Messages

  • How to write the code for a panel when using treeview?

    Hi,
    We are developing a new plug-in in Indesign as based on treeview. we have completed the design part, but we have some doubts in coding..
    One dialog widget and three panels(General, fitting, Eventsandscripts).
    The .fr file:
    resource GeneralPanelWidget (kGeneralPanelResourceID)
              __FILE__, __LINE__,
              kGeneralPanelWidgetID,      // WidgetId
              kPMRsrcID_None,         // RsrcId
              kBindNone,              // Frame binding
              Frame(0,0,800,500)      // Frame
              kTrue,                  // Visible
              kTrue,                  // Enabled
              kGeneralPanelTitleKey,                    // Panel name
                        StaticTextWidget
                                  kInvalidWidgetID,                                                                                // WidgetId (default=0)
                                  kSysStaticTextPMRsrcId,                    // RsrcId
                                  kBindNone,                                                            // Frame binding
                                  10, 15, 138, 35,                                                  // Frame: left, top, right, bottom.
                                  kTrue, kTrue,                                                  // Visible, Enabled
                                  kAlignLeft, kEllipsizeEnd,kTrue,                    // Alignment, ellipsize style
                                  ksamPrefProjectPathStringKey,                    // Initial text.
                                  ksamPrefProjectPathTextEditBoxWidgetID          // No associated widget
                        // TextEditBox Widget resource
                        TextEditBoxWidget
                        ksamPrefProjectPathTextEditBoxWidgetID, // WidgetId
                        kSysEditBoxPMRsrcId, // RsrcId
                        kBindNone, // Frame binding
                        Frame(140, 15, 420, 35), // Frame (l,t,r,b)
                        kTrue, kTrue // Visible, Enabled
                        0, // Widget id of nudge button (0 so we dont get one)
                        0, 0,// small,large nudge amount
                        0, // max num chars(0 = no limit)
                        kFalse,// is read only
                        kFalse,// should notify each key stroke
                        kFalse,// range checking enabled
                        kFalse,// blank entry allowed
                        0, // Upper bounds
                        0, // Lower bounds
                        "", // Initial text
                        ButtonWidget
                                  ksamChooseProjectButtonWidgetID,
                                  kSysButtonPMRsrcId,
                                  kBindNone,
                                  430, 15, 500, 35,
                                  kTrue, kTrue,
                                  ksamChooseBtnStringKey,
                        StaticTextWidget
                                  0,                                                                                // WidgetId (default=0)
                                  kSysStaticTextPMRsrcId,                    // RsrcId
                                  kBindNone,                                                            // Frame binding
                                  10, 45, 138, 65,                                                  // Frame: left, top, right, bottom.
                                  kTrue, kTrue,                                                  // Visible, Enabled
                                  kAlignLeft, kEllipsizeEnd,kTrue,                    // Alignment, ellipsize style
                                  ksamPrefImagePathStringKey,                    // Initial text.
                                  ksamPrefImagePathTextEditBoxWidgetID                    // No associated widget
                        // TextEditBox Widget resource
                        TextEditBoxWidget
                        ksamPrefImagePathTextEditBoxWidgetID, // WidgetId
                        kSysEditBoxPMRsrcId, // RsrcId
                        kBindNone, // Frame binding
                        Frame(140, 45, 420, 65), // Frame (l,t,r,b)
                        kTrue, kTrue // Visible, Enabled
                        0, // Widget id of nudge button (0 so we dont get one)
                        0, 0,// small,large nudge amount
                        0, // max num chars(0 = no limit)
                        kFalse,// is read only
                        kFalse,// should notify each key stroke
                        kFalse,// range checking enabled
                        kFalse,// blank entry allowed
                        0, // Upper bounds
                        0, // Lower bounds
                        "", // Initial text
                        ButtonWidget
                                  ksamChooseImgpathButtonWidgetID,
                                  kSysButtonPMRsrcId,
                                  kBindNone,
                                  430, 45, 500, 65,
                                  kTrue, kTrue,
                                  ksamChooseBtnStringKey,
                        StaticTextWidget
                                  0,                                                                      // WidgetId (default=0)
                                  kSysStaticTextPMRsrcId,                    // RsrcId
                                  kBindNone,                                                            // Frame binding
                                  10, 75, 138, 95,                                                  // Frame: left, top, right, bottom.
                                  kTrue, kTrue,                                                  // Visible, Enabled
                                  kAlignLeft, kEllipsizeEnd,kTrue,                    // Alignment, ellipsize style
                                  ksamPrefMasterTempPathStringKey,                    // Initial text.
                                  ksamPrefMasterTemplatePathTextEditBoxWidgetID                    // No associated widget
                        // TextEditBox Widget resource
                        TextEditBoxWidget
                        ksamPrefMasterTemplatePathTextEditBoxWidgetID, // WidgetId
                        kSysEditBoxPMRsrcId, // RsrcId
                        kBindNone, // Frame 85
                        Frame(140, 75, 420, 95), // Frame (l,t,r,b)
                        kTrue, kTrue // Visible, Enabled
                        0, // Widget id of nudge button (0 so we dont get one)
                        0, 0,// small,large nudge amount
                        0, // max num chars(0 = no limit)
                        kFalse,// is read only
                        kFalse,// should notify each key stroke
                        kFalse,// range checking enabled
                        kFalse,// blank entry allowed
                        0, // Upper bounds
                        0, // Lower bounds
                        "", // Initial text
                        ButtonWidget
                                  ksamChooseMasterTempButtonWidgetID,
                                  kSysButtonPMRsrcId,
                                  kBindNone,
                                  430, 75, 500, 95,
                                  kTrue, kTrue,
                                  ksamChooseBtnStringKey,
    CheckBoxWidget
                                  ksamShowFrameLabelCheckBoxWidgetID,                              // WidgetId
                                  kSysCheckBoxPMRsrcId,                                                                      // RsrcId
                                  kBindNone,
                                  Frame( 10, 165, 320, 185)                                                            //  left, top, right, bottom
                                  kTrue,                                                                                                              // Visible
                                  kTrue,                                                                                                              // Enabled
                                  kAlignLeft,                                                                                                    // Alignment
                                  ksamShowFrameLabelChkBoxTextKey                                        // Initial text
    DefaultButtonWidget
                                  kOKButtonWidgetID,                    // WidgetID
                                  kSysButtonPMRsrcId,                    // RsrcID
                                  kBindNone,                                        // Binding 
                                  320, 380, 390, 400,                    // Frame (l,t,r,b)  
                                  kTrue, kTrue,                              // Visible, Enabled
                                  ksamPrefSaveStringKey,          // Button text
                        CancelButtonWidget
                                  kCancelButton_WidgetID,          // WidgetID
                                  kSysButtonPMRsrcId,                    // RsrcID
                                  kBindNone,                                        // Binding
                                  400, 380, 470, 400,                    // Frame (l,t,r,b)
                                  kTrue, kTrue,                              // Visible, Enabled
                                  ksamPrefCancelStringKey,          // Button name
                                  kTrue,                                                  // Change to Reset on option-click.
    This is for General panel design and we have written the code for this..but we dont know where to call this functions. we implemented this plug-in based on BasicSelectableDialog sample plug-in. please guide me to complete this code.
    Thanks in Advance..

    Your question is not very clear. Have you gone through the PanelTreeView.sdk example in the sdk?

  • Change the default country code for new contacts in Outlook 2013 for countries not listed in Control Panel Region Format

    Dear all,
    I would like to change the default country code for new Outlook 2013 contacts. My country is Mozambique (+258) and is not listed under Control Panel> Region> Formats> Format:
    Is there any place (registry maybe, anywhere) where I can manipulate the existing formats or manually add a new format to the List ??? - for example Portuguese (Mozambique).
    I am using Windows 8.1
    I have tried changing the country on the phone and modem options and nothing changes. Also changing the Home Location on Region> Location to Mozambique didn't change a thing. The only place where I change something and produces results is the
    Format List.
    Any ideias???? If not, is there a place where I can ask Microsoft to include Portuguese (Mozambique) on future windows updates???
    Kind regards,
    Osvaldo

    Hi,
    Windows uses the information set under
    'Phone and Modem'  in the Control Panel to determine the default area code.
    You can change the country/region to
    Mozambique
    and set your area code here:
    Regards,
    Steve Fan
    TechNet Community Support

  • NI9203 - Need to know how to set up the FPGA code for multiple NI9203 modules and how to calibrate the data

    Hi. I'm using the NI9203 module to detect pressure, temerature and flow rate of water in a cooling system. I have 17 different inputs coming in therefore i'm using 3 NI9203 modules. I've used the example provided with labview as a base for designing my code. The example can be found here : Program Files\National Instruments\LabVIEW 8.0\examples\CompactRIO\Module Specific\NI 9203.
    I've had no problems when testing this code out for a single NI9203 module but when i add code for 3 modules the code will not compile as my resources are over mapped. Is there a simpler way to program the FPGA code.
    That said how do you go about calibrating the data that's received from the module. Preferably i'd like to write a vi to do the calibrating. Just need help on how to go about writing this vi

    Hi havok,
    Firstly, I would use constants to configure the modules, it'll save some resources on the FPGA.  I'm not typically changing the settings on the fly, so using constants whenever possible helps.  I would also take a look at the following KnowledgeBase article on other changes you can make to the FPGA VI to compile the code:
    http://digital.ni.com/public.nsf/allkb/311C18E2D635FA338625714700664816?OpenDocument
    The best changes you can make are to use fewer arrays and front panel elements.  This can be done by using a DMA FIFO or constants on the block diagram. 
    Now actually calibrating the data will require you to do it on the host side.  There is an example VI called Binary to Nominal that changes the raw data to something more useful for datalogging, display, etc.  It can be found in some of the example VIs, or in the following link:
    http://digital.ni.com/public.nsf/allkb/E86D8D460C4C092F8625752F00050A61?OpenDocument 

  • Exporting animated gifs with fade transitions in PS CS6

    So I created a basic slideshow banner with three different images that fade from one to the next. When I preview it on the timeline, everything looks great, but when I go to save for web and select gif, then hit play for a preview, the fade transitions are gone and they just hard cut from one to the next. Anyone know how to keep those fade transitions when exporting?

    The only way to optimize this is to use less colors and define the frame durations manualyl in the timeline in frame mode, i.e. setting the actual posters to a very long duration on a single frame and then only have the transition regions use multiple frames with short durations. Still, I don't think you will ever arrive at 40-50kB. Even a normal mail blast with static PNGs/ GIFs and JPEGs is larger than that if it contains a huge logo, decorative lines and borders and button graphics... It's unrealistic. With the above optimizations you may get to somewhere about 300kB, but not below, if you wnat to retain the fades. They are what makes your files fat because they introduce lots of colors in teh palette that can't be optimized away easily...
    Mylenium

  • How do I rewrite current code for java 1.3

    I'm using the code below that is written for java 1.4. I have been told that the company can not push JRE 1.4 to the company, and that I need to write my code for java 1.3. I'm using org.w3c.dom for my create xml, etc.
    Is there a java 1.3 option to the 1.4? Any help would be very appreciated.
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.List;
    import java.io.*;
    import java.util.*;
    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;
    import org.w3c.dom.*;
    public class Sametime extends JFrame implements ActionListener {
        private int indentation = -1;
        JPanel panel = new JPanel();
        JTextArea jta = new JTextArea(
        //Instructions for user
        "For a successful buddy list migration do the following:\n"
        + "1. Save your current Sametime Buddy List to your PC.\n   "
        + "The default location should be: C:/Program Files/Lotus/Sametime Client.\n"
        + "  A. Open the Sametime Client.\n"
        + "  B. Click on People\n"
        + "  C. Click on Save List.\n"
        + "  D. Save as your first.last.dat\n"
        + "     Ex. john.doe.dat\n"
        + "NOTE: If you have AOL contacts in your Sametime buddy list they will not be migrated.\n");
        JButton browse = new JButton("Continue");
        JButton exit = new JButton("Exit");
        public Sametime() {
            super("Sametime Buddy List Migration");
            setSize(610, 245);
            Container c = this.getContentPane();
            c.add(panel);
            browse.addActionListener(this);
            exit.addActionListener(this);
            panel.add(jta);
            panel.add(browse);
            panel.add(exit);
            jta.setEditable(false);
            setLookAndFeel();
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        } //end Sametime
        public class DATFilter extends javax.swing.filechooser.FileFilter {
            public boolean accept(File f) {
                //if it is a directory -- we want to show it so return true.
                if (f.isDirectory())
                    return true;
                String extension = getExtension(f);//get the extension of the file
                //check to see if the extension is equal to "dat"
                if ((extension.equals("dat")))
                    return true;
                //default -- fall through. False is return on all
                //occasions except:
                //a) the file is a directory
                //b) the file's extension is what we are looking for.
                return false;
            }//end accept
            public String getDescription() {
                return "dat files";
            }//end getDescription
             * Method to get the extension of the file, in lowercase
            private String getExtension(File f) {
                String s = f.getName();
                int i = s.lastIndexOf('.');
                if (i > 0 &&  i < s.length() - 1)
                    return s.substring(i+1).toLowerCase();
                return "";
            }//end getExtension
        }//end class DATFilter
        public void actionPerformed(ActionEvent e) {
            //Default Location for JFileChooser search
            String error = "The file selected is not a .dat file!\n"
            + "Please select your recently saved .dat file and try again.";
            JFileChooser fc = new JFileChooser("/Program Files/Lotus/Sametime Client");
            fc.setFileFilter(new DATFilter());
            fc.setFileSelectionMode( JFileChooser.FILES_ONLY);
            String user = System.getProperty("user.name");// finds who the current user is
            if (e.getSource() == browse) {
                int returnVal = fc.showSaveDialog(Sametime.this);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                    //if (fc.getSelectedFile().getName().equals(".dat")){
                    if (fc.getSelectedFile().getName().endsWith(".dat")){ // checks to see if selected file is .dat
                    }else{
                        JOptionPane.showMessageDialog(null, error, "Wrong File", JOptionPane.ERROR_MESSAGE);
                        return;
                    }//end else
                    try {
                        String[] contactArray = parseDatFile(fc.getSelectedFile());
                        Document document = createXMLDocument(contactArray);
                        saveToXMLFile(
                        document,
                        new File(
                        "C:/Documents and Settings/" + user +"/My Documents/OLCS/",// looks for directory for list
                        "contacts-list_migration.ctt"));
                    } catch (Exception exc) {
                        File f = new File("C:/Documents and Settings/" + user +"/My Documents/OLCS/");// setting directory for list if not there
                        boolean yes = true;
                        yes = f.mkdir();// creating directory
                        try {
                            String[] contactArray = parseDatFile(fc.getSelectedFile());
                            Document document = createXMLDocument(contactArray);
                            saveToXMLFile(
                            document,
                            new File(
                            "C:/Documents and Settings/" + user +"/My Documents/OLCS/",// used only if the directory didn't exist
                            "contacts-list_migration.ctt"));
                            //exc.printStackTrace();// not sure if this is needed?
                        } catch (Exception exc1) {
                            exc1.printStackTrace();
                        }//end inner catch
                    }// end catch
                }// end if
                if(returnVal==JFileChooser.CANCEL_OPTION){
                    String Warning = "You did not migrate your Sametime buddy list at this time.";
                    JOptionPane.showMessageDialog(null, Warning, "Migration Canceled", JOptionPane.WARNING_MESSAGE);
                    return;
                }else{
                    String thankyou = "Thank You for Migrating your Sametime buddy list to OLCS"
                    + "\nYour new OLCS buddy list has been saved to:"
                    + "\nC:/Documents and Settings/" + user +"/My Documents/OLCS"
                    + "\n as: Contact-List_migration.ctt"
                    + "\n\n To be able to use Contact-List_migration.ctt for Windows Messenger:"
                    + "\n1. Log into Windows Messenger."
                    + "\n2. Click on File"
                    + "\n3. Click on 'Import Contacts from a Saved File...'"
                    + "\n4. Open OLCS in My Documents"
                    + "\n5. Click on 'Contact-list_migration.ctt'"
                    + "\n6. Click Open to import the list."
                    + "\n   A window will pop up confirming that you want to add all of the contacts"
                    + "\n   Click 'yes'"
                    + "\n   Your buddy list is ready to be used.";
                    JOptionPane.showMessageDialog(null, thankyou, "Migration Completed", JOptionPane.INFORMATION_MESSAGE);//Change this when defualt directory is known.
                }//end if else statement
            } //end if
            System.exit( 0 );
            if (e.getSource() == exit) {
                System.exit( 0 );
            } //end if
        } //end actionPerformed
        String[] parseDatFile(File datFile)
        throws Exception    {
            List list = new ArrayList();
            BufferedReader br = new BufferedReader(new FileReader(datFile));
            String line;
            while ((line = br.readLine()) != null) {
                line = line.trim();
                if (line.indexOf("U") != 0)
                    continue;
                int p = line.indexOf("::");
                if (p == -1)
                    continue;
                line = line.substring(p + 2).trim();
                if (line.indexOf("AOL") == 0)
                    continue;
                p = line.indexOf(",");
                if (p != -1)
                    line = line.substring(0, p);
                line = line.trim() + "@mci.com";
                if (list.indexOf(line) == -1)
                    list.add(line);
            }//end while
            br.close();
            String[] contactArray = new String[list.size()];
            list.toArray(contactArray);
            return contactArray;
        }// end String
        // setting up the XML file
        Document createXMLDocument(String[] contactArray) throws Exception {
            DocumentBuilderFactory dBF = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = dBF.newDocumentBuilder();
            DOMImplementation domImpl = builder.getDOMImplementation();
            Document document = domImpl.createDocument(null, "messenger", null);
            Element root = document.getDocumentElement();
            Element svcElm = document.createElement("service");
            Element clElm = document.createElement("contactlist");
            svcElm.setAttribute("name", "Microsoft RTC Instant Messaging");
            svcElm.appendChild(clElm);
            root.appendChild(svcElm);
            for (int i = 0; i < contactArray.length; i++) {
                Element conElm = document.createElement("contact");
                Text conTxt = document.createTextNode(contactArray);
    conElm.appendChild(conTxt);
    clElm.appendChild(conElm);
    }//end for
    return document;
    }// end Document
    void saveToXMLFile(Document document, File xmlFile) throws Exception {
    OutputStream os =
    new BufferedOutputStream(new FileOutputStream(xmlFile));
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer();
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");//puts information on seperate lines
    transformer.setOutputProperty(OutputKeys.METHOD, "xml");
    transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");//gives the XML file indentation
    transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
    DOMSource source = new DOMSource(document);
    StreamResult result = new StreamResult(os);
    transformer.transform(source, result);
    os.close();
    }//end saveToXMLFile
    public static void main(String[] args) {
    Sametime st = new Sametime();
    ImageIcon picIcon = new ImageIcon(st.getClass().getResource("/images/mci.gif"));//Change when default is known!
    st.setIconImage(picIcon.getImage());
    } //end main
    private void setLookAndFeel() {
    try {
    UIManager.setLookAndFeel(
    UIManager.getSystemLookAndFeelClassName());
    SwingUtilities.updateComponentTreeUI(this);
    } catch (Exception e) {
    System.err.println("Could not use Look and Feel: " + e);
    } //end catch
    } //end void setLookAndFeel
    } //end public class Sametime

    Are there features of Java 1.4 that you specifically took advantage and are there any particular lines you are having problems with or did you just freak and post it here?
    Basically compile it under Java 1.3 and see what complains. I've done several projects that compile under 1.2, 1.3, and 1.4.

  • How to display the source code for this friggin' file.

    Below is a rather lengthy bit of code that provides the behavior and attributes of a web server for OpenCyc. I need to know if I can enter some java to have the HTML source code displayed in a separate text file whenever this class returns some resulting webpage. If you have any ideas it will be greatly appreciated.
    -"Will code for foo."
    package org.opencyc.webserver;
    * Class WebServer is simple multithreaded HTTP server
    * with CGI limited to a Cyc connection on default port 3600.
    * <p>
    import java.net.*;
    import java.io.*;
    import java.util.*;
    import java.util.jar.*;
    import java.text.*;
    import org.opencyc.util.*;
    public class WebServer extends Thread {
         * Singleton WebServer instance.
        public static WebServer current;
         * Default HTTP port.
        protected static int DEFAULT_PORT = 80;
         * Default Cyc base port.
        protected static int DEFAULT_CYC_PORT = 3600;
         * Default directory to serve files from on non-Windows OS.
        protected static String DEFAULT_DIR = "/";
         * Default directory to serve files from on Windows.
        //protected static String DEFAULT_WIN_DIR = "C:\\";
        protected static String DEFAULT_WIN_DIR = "k:\\opencyc\\run\\httpd\\htdocs";
         * File cache capacity.
        protected static final int CACHE_CAPACITY = 100;
         * File cache to improve file serving performance.
        protected static Hashtable fileCache = new Hashtable(CACHE_CAPACITY);
         * Number of files served from this web server.
        protected static long nbrFilesServed = 0;
         * Number of files served from this web server that were found in the cache.
        protected static long nbrCacheHits = 0;
         * Server socket for accepting connections.
        protected ServerSocket server;
         * Directories to serve files from.
        protected ArrayList dirs;
         * Map from String (jar root) to JarFile[] (jar class path).
        protected HashMap map;
         * Webserver HTTP port.
        protected int port;
         * Cyc HTML host.
        protected String cycHost = "localhost";
         * Cyc HTML port.
        protected int cycPort;
         * Expand jar tress.
        protected boolean trees;
         * Requests flag.
        protected boolean traceRequests;
         * Constructs a WebServer object.
         * @param port the port to use
         * @param directories the directory to serve files from
         * @param trees true if files within jar files should be served up
         * @param traceRequests true if client's request text should be logged.
         * @exception IOException if the listening socket cannot be opened, or problem opening jar files.
        public WebServer() throws IOException {
            getProperties();
            server = new ServerSocket(port);
            processDirectories();
         * Class Task processes a single HTTP request.
        protected class Task extends Thread {
             * Socket for the incoming request.
            protected Socket sock;
             * Client socket to the Cyc KB HTML server.
            protected Socket cycHtmlSocket;
             * Output tcp stream.
            protected DataOutputStream out;
             * Contains the file request path for a not-found error message.
            protected String notFoundPath;
             * Contains the first line of a request message.
            protected String methodLine;
             * Contains the body of a POST method.
            protected String bodyLine;
             * Constructs a Task object.
             * @param sock the socket assigned for this request.
            public Task(Socket sock) {
                this.sock = sock;
             * Processes the HTTP request.
            public void run() {
                if (traceRequests)
                    Log.current.println("connection accepted from " + sock.getInetAddress());
                notFoundPath = "";
                try {
                    out = new DataOutputStream(sock.getOutputStream());
                    try {
                        getBytes();
                    catch (Exception e) {
                        Log.current.println("file not found: " + notFoundPath);
                        try {
                            out.writeBytes("HTTP/1.1 404 Not Found\r\n");
                            out.writeBytes("Server: Cyc WebServer\r\n");
                            out.writeBytes("Connection: close\r\n");
                            out.writeBytes("Content-Type: text/html\r\n\r\n");
                            out.writeBytes("<HTML><HEAD>\n");
                            out.writeBytes("<TITLE>404 Not Found</TITLE>\n");
                            out.writeBytes("</HEAD><BODY>\n");
                            out.writeBytes("<H1>404 - Not Found</H1>\n");
                            out.writeBytes("</BODY></HTML>");
                            out.flush();
                        catch (SocketException se) {
                catch (Exception e) {
                    Log.current.printStackTrace(e);
                finally {
                    try {
                        sock.close();
                    catch (IOException e) {
             * Reads the HTTP request and obtains the response.
             * @exception IOException when HTTP request has an invalid format.
            private void getBytes() throws IOException {
                // Below logic is complex because web browsers do not close the
                // socket after sending the request, so must parse message to find
                // the end.
                BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
                ArrayList inBytes = new ArrayList(200);
                int ch = 0;
                boolean postMethod;
                methodLine = in.readLine();
                //if (traceRequests)
                //    Log.current.println("methodLine=" + methodLine);
                bodyLine = "";
                if (methodLine.startsWith("POST /"))
                    postMethod = true;
                else
                    postMethod = false;
                //if (traceRequests)
                //    Log.current.println("postMethod=" + postMethod);
                int ch1 = -1;
                int ch2 = -1;
                int ch3 = -1;
                int ch4 = -1;
                // Read the HTTP request headers.
                while (true) {
                    ch = in.read();
                    inBytes.add(new Integer(ch));
                    ch1 = ch2;
                    ch2 = ch3;
                    ch3 = ch4;
                    ch4 = ch;
                    if (ch1 == '\r' && ch2 == '\n' && ch3 == '\r' && ch4 == '\n')
                        break;
                    if ((! postMethod) &&
                        (! in.ready()) &&
                        ch1 == -1 &&
                        ch2 == -1 &&
                        ch3 == '\r' &&
                        ch4 == '\n') {
                        inBytes.add(new Integer('\r'));
                        inBytes.add(new Integer('\n'));
                        break;
                byte[] byteArray = new byte[inBytes.size()];
                for (int i = 0; i < inBytes.size(); i++) {
                    Integer ich = (Integer) inBytes.get(i);
                    byteArray[i] = ich.byteValue();
                String headers = new String(byteArray);
                if (postMethod) {
                    String lcHeaders = headers.toLowerCase();
                    int i = lcHeaders.indexOf("content-length: ");
                    String contentLength = lcHeaders.substring(i + 16);
                    int j = contentLength.indexOf("\r\n");
                    contentLength = contentLength.substring(0, j);
                    int bodyLen = (new Integer(contentLength)).intValue();
                    for (int k = 0; k < bodyLen; k++) {
                        bodyLine = bodyLine + (new Character((char) in.read())).toString();
                String line = methodLine + "\r\n" + headers + bodyLine;
                if (traceRequests)
                    Log.current.println(line);
                if (postMethod)
                    processHttpPost();
                else
                    if (line.startsWith("GET /"))
                        processHttpGet(line.substring(4));
                    else {
                        Log.current.println("Invalid request = " + line);
                        throw new IOException();
             * Processes an HTTP GET method.
             * @param httpGetPath the path of the file to get.
             * @exception IOException if the file is not found.
            private void processHttpGet(String httpGetPath) throws IOException {
                int i = httpGetPath.indexOf(' ');
                if (i > 0)
                    httpGetPath = httpGetPath.substring(0, i);
                Log.current.println(methodLine + " from " + sock.getInetAddress().getHostName());
                i = httpGetPath.indexOf("cg?");
                if (i > 0) {
                    cycHtmlRequest(httpGetPath.substring(i + 3));
                    return;
                notFoundPath = httpGetPath;
                i = httpGetPath.indexOf('/');
                if (i < 0 || map == null) {
                    if (map == null || httpGetPath.endsWith(".jar")) {
                        for (int j = 0; j < dirs.size(); j++) {
                            String dir = (String) dirs.get(j);
                            String nativePath = dir + httpGetPath;
                            nativePath = nativePath.replace('/', File.separatorChar);
                            if (fileCache.containsKey(nativePath)) {
                                writeDataBytes((byte[]) fileCache.get(nativePath));
                                Log.current.println("...cached");
                                nbrCacheHits++;
                                nbrFilesServed++;
                                return;
                            try {
                                File f = new File(nativePath);
                                byte[] fileBytes = getBytes(new FileInputStream(f), f.length());
                                writeDataBytes(fileBytes);
                                if (fileCache.size() >= CACHE_CAPACITY)
                                    fileCache.clear();
                                fileCache.put(nativePath, fileBytes);
                                Log.current.println("...from " + nativePath);
                                nbrFilesServed++;
                                return;
                            catch (IOException e) {
                    throw new IOException();
                String jar = httpGetPath.substring(0, i);
                httpGetPath = httpGetPath.substring(i + 1);
                JarFile[] jfs = (JarFile[]) map.get(jar);
                if (jfs == null)
                    throw new IOException();
                for (i = 0; i < jfs.length; i++) {
                    JarEntry je = jfs.getJarEntry(httpGetPath);
    if (je == null)
    continue;
    writeDataBytes(getBytes(jfs[i].getInputStream(je), je.getSize()));
    nbrFilesServed++;
    return;
    throw new IOException();
    * Processes an HTTP POST method.
    * @exception IOException if the file is not found.
    private void processHttpPost() throws IOException {
    Log.current.println("POST " + bodyLine + " from " + sock.getInetAddress().getHostName());
    cycHtmlRequest(bodyLine);
    * Reads the specified number of bytes and always close the stream.
    * @param in the file to be read for subsequent downloading.
    * @param length the number of bytes to read from the file.
    * @return An array of bytes from the file.
    * @exception IOException if an error occurs when processing the file.
    private byte[] getBytes(InputStream in, long length) throws IOException {
    DataInputStream din = new DataInputStream(in);
    byte[] bytes = new byte[ (int) length];
    try {
    din.readFully(bytes);
    finally {
    din.close();
    return bytes;
    * Sends the HTML request to Cyc.
    * @param cycPath the portion of the URL which is given to the Cyc HTML server.
    private void cycHtmlRequest(String cycPath) {
    String request = sock.getInetAddress().getHostName() + "&" + cycPath + "#";
    System.out.println("request=" + request);
    ArrayList bytes = new ArrayList(10000);
    try {
    cycHtmlSocket = new Socket(cycHost, cycPort);
    System.out.println("cycHost=" + cycHost + " cycPort=" + cycPort);
    BufferedReader cycIn = new BufferedReader(new InputStreamReader(cycHtmlSocket.getInputStream()));
    PrintWriter cycOut = new PrintWriter(cycHtmlSocket.getOutputStream(), true);
    cycOut.println(request);
    cycOut.flush();
    int ch = 0;
    while (ch >= 0) {
    ch = cycIn.read();
    bytes.add(new Integer(ch));
    catch (Exception e) {
    Log.current.printStackTrace(e);
    byte[] byteArray = new byte[bytes.size()];
    for (int i = 0; i < bytes.size() - 1; i++) {
    Integer ich = (Integer) bytes.get(i);
    byteArray[i] = ich.byteValue();
    try {
    writeTextBytes(byteArray);
    catch (Exception e) {
    Log.current.println(e.getMessage());
    * Responds to the HTTP client with data content from the requested URL.
    * @param bytes the array of bytes from the URL.
    * @exception IOException if there is an error writing to the HTTP client.
    public void writeDataBytes(byte[] bytes) throws IOException {
    out.writeBytes("HTTP/1.1 200 OK\r\n");
    out.writeBytes("Server: Cyc WebServer\r\n");
    out.writeBytes("Connection: close\r\n");
    out.writeBytes("Content-Length: " + bytes.length + "\r\n");
    String prefix = (new String(bytes)).toLowerCase();
    if (prefix.indexOf("<html>") > -1)
    out.writeBytes("Content-Type: text/html\r\n\r\n");
    else
    out.writeBytes("Content-Type: application/java\r\n\r\n");
    out.write(bytes);
    out.flush();
    * Respond to the HTTP client with text content from the requested URL.
    * @param bytes the array of bytes from the URL.
    * @exception IOException if there is an error writing to the HTTP client.
    public void writeTextBytes(byte[] bytes) throws IOException {
    out.writeBytes("HTTP/1.1 200 OK\r\n");
    out.writeBytes("Server: Cyc WebServer\r\n");
    out.writeBytes("Connection: close\r\n");
    out.writeBytes("Content-Length: " + bytes.length + "\r\n");
    out.writeBytes("Content-Type: text/html\r\n\r\n");
    out.write(bytes);
    out.flush();
    * Gets properties governing the web server's behavior.
    private void getProperties() {
    port = DEFAULT_PORT;
    String portProperty = System.getProperty("org.opencyc.webserver.port", "");
    if (! portProperty.equalsIgnoreCase(""))
    port = (new Integer(portProperty)).intValue();
    Log.current.println("Listening on port " + port);
    cycPort = DEFAULT_CYC_PORT;
    String cycPortProperty = System.getProperty("org.opencyc.webserver.cycPort", "");
    if (! cycPortProperty.equalsIgnoreCase(""))
    cycPort = (new Integer(cycPortProperty)).intValue();
    Log.current.println("Cyc connections directed to port " + cycPort);
    String dirsProperty = System.getProperty("org.opencyc.webserver.dirs", "");
    dirs = new ArrayList(3);
    StringTokenizer st = new StringTokenizer(dirsProperty, ";", false);
    while (st.hasMoreTokens()) {
    String dir = st.nextToken();
    dirs.add(dir);
    trees = false;
    String treesProperty = System.getProperty("org.opencyc.webserver.trees", "");
    if (! treesProperty.equalsIgnoreCase(""))
    trees = true;
    traceRequests = false;
    String traceRequestsProperty = System.getProperty("org.opencyc.webserver.traceRequests", "");
    if (! traceRequestsProperty.equalsIgnoreCase("")) {
    traceRequests = true;
    Log.current.println("tracing requests");
    * Adds transitive Class-Path jars to jfs.
    * @param jar the jar file
    * @param jfs the list of jar files to serve.
    * @param dir the jar file directory.
    * @exception IOException if an I/O error has occurred with the jar file.
    private void addJar(String jar, ArrayList jfs, String dir) throws IOException {
    Log.current.println("Serving jar files from: " + dir + jar);
    JarFile jf = new JarFile(dir + jar);
    jfs.add(jf);
    Manifest man = jf.getManifest();
    if (man == null)
    return;
    Attributes attrs = man.getMainAttributes();
    if (attrs == null)
    return;
    String val = attrs.getValue(Attributes.Name.CLASS_PATH);
    if (val == null)
    return;
    dir = dir + jar.substring(0, jar.lastIndexOf(File.separatorChar) + 1);
    StringTokenizer st = new StringTokenizer(val);
    while (st.hasMoreTokens()) {
    addJar(st.nextToken().replace('/', File.separatorChar), jfs, dir);
    * Administrative accessor method that obtains list of directories from which files are served.
    public ArrayList getDirs() {
    return dirs;
    * Administrative method that updates the list of directories from which files are served.
    public synchronized void setDirs(ArrayList dirs) throws IOException {
    this.dirs = dirs;
    fileCache.clear();
    processDirectories();
    * Administrative accessor method that obtains number of files served.
    * @return The number of files served.
    public long getNbrFilesServed() {
    return nbrFilesServed;
    * Administrative accessor method that obtains number of files served from cache.
    * @return The number of files served from the cache.
    public long getNbrCacheHits() {
    return nbrCacheHits;
    * Administrative method that clears the file cache.
    public synchronized void clearFileCache() {
    Log.current.println("Clearing file cache");
    fileCache.clear();
    nbrFilesServed = 0;
    nbrCacheHits = 0;
    * Processes the directories from which files are served, expanding jar trees if
    * directed.
    * @exception IOException if problem occurs while processing the jar files.
    private void processDirectories() throws IOException {
    if (dirs.size() == 0)
    if (File.separatorChar == '\\')
    dirs.add(DEFAULT_WIN_DIR);
    else
    dirs.add(DEFAULT_DIR);
    Iterator directories = dirs.iterator();
    while (directories.hasNext())
    Log.current.println("Serving from " + directories.next());
    if (trees) {
    map = new HashMap();
    for (int j = 0; j < dirs.size(); j++) {
    String dir = (String) dirs.get(j);
    String[] files = new File(dir).list();
    for (int i = 0; i < files.length; i++) {
    String jar = files[i];
    if (!jar.endsWith(".jar"))
    continue;
    ArrayList jfs = new ArrayList(1);
    addJar(jar, jfs, dir);
    map.put(jar.substring(0, jar.length() - 4), jfs.toArray(new JarFile[jfs.size()]));
    * Provides the command line interface for creating an HTTP server.
    * The properties are:
    * <pre>
    * org.opencyc.webserver.port=<HTTP listening port>
    * </pre>
    * which defaults to 80.
    * <pre>
    * org.opencyc.webserver.cycPort=<Cyc connection port>
    * </pre>
    * which defaults to 3600.
    * <pre>
    * org.opencyc.webserver.dirs=<path>;<path> ... ;<path>
    * </pre>
    * with the argument enclosed in quotes if any path contains an
    * embedded space.
    * The default directory on Windows is C:
    * and the default on other systems is / the default
    * can be overridden with this property. By default, all files
    * under this directory (including all subdirectories) are served
    * up via HTTP. If the pathname of a file is <var>path</var> relative
    * to the top-level directory, then the file can be downloaded using
    * the URL
    * <pre>
    * http://<var>host</var>:<var>port</var>/<var>path</var>
    * </pre>
    * Caching of file contents is performed.
    * <pre>
    * org.opencyc.util.log=all
    * </pre>
    * If the all value is given, then all attempts to download files
    * are output.
    * <pre>
    * org.opencyc.webserver.traceRequests
    * </pre>
    * If this property has any value, then the client HTTP requests are
    * output.<p>
    * <pre>
    * org.opencyc.webserver.trees
    * </pre>
    * This property can be used to serve up individual files stored
    * within jar files in addition to the files that are served up by
    * default. If the property has any value, the server finds all jar files
    * in the top-level directory (not in subdirectories). For each
    * jar file, if the name of the jar file is <var>name</var>.jar, then any
    * individual file named <var>file</var> within that jar file (or within
    * the jar or zip files referenced transitively in the Class-Path manifest
    * attribute, can be downloaded using a URL of the form:
    * <pre>
    * http://<var>host</var>:<var>port</var>/<var>name</var>/<var>file</var>
    * </pre>
    * When this property has any value, an open file descriptor and cached
    * information are held for each jar file, for the life of the process.
    * @param args an unused array of command line arguments.
    public static void main(String[] args) {
    Log.makeLog();
    System.out.println("OpenCyc Web Server");
    try {
    // Launch thread to accept HTTP connections.
    current = new WebServer();
    current.start();
    catch (IOException e) {
    e.printStackTrace();
    * Just keep looping, spawning a new thread for each incoming request.
    public void run() {
    try {
    while (true) {
    // Launch thread to process one HTTP request.
    new Task(server.accept()).start();
    catch (IOException e) {
    e.printStackTrace();

    JLundan,
    I want to thank you for responding to the thread I started on the forum at java.sun.com. Your solution to my problem of needing to print the code of the html pages that the file I included generates was just what I was looking for. However, I have some further questions to ask, if you don't mind. To clarify my task I should say that your rephrasing of the problem is accurate: "You wan't to display the contents of the HTML file that the web server produces in response of client's request?"
    Yes, this is what I need to do, but also it needs to display the source code of that html file that the server produces in response to the client's request. Also, in this case, I am the client requesting that the server return some html file, and I'm not sure where the server is. But the webserver.java file that I shared on the forum is on my local machine. I was wondering if I could modify this webserver.java file at my home so that any html file the server returns to me would automatically display the source code. This is a school project of mine and I am stuck on this one thing here.
    Further, where would I put the "foo.html" file so it can be written to?
    FileOuputStream fos = new FileOutputStream("foo.html");
    fos.write(bytes);
    fos.close();
    Thanks so much for your help. I look forward to your response, at your convenience.
    Regards

  • Code for a Flash carousal

    Hi,
    Looking for help to fix code for a Flash carousal.
    I lost all my original files in a major hard drive crash. (no
    backup, I learned). I’m now trying to redo the carousel.
    My original site contained a tooltip and a icon.xml that
    direct the icon click to a web page.
    I have enclosed the Flash code the new carousel I created,
    along with the icon.xml file. I have one web page that works using
    the same XML file
    http://www.susystastebuds.com/CakeZone.html
    At this time I’m unable to get new carousel to work on
    any other page. I guess the Flash code has changed since the
    original one I did. I hope someone is able to provide help as to
    why the new one won’t work.
    When I click on the icon now, it will close all the other
    icons and move up to the left and just stop. Not providing any link
    to another web page.
    If anbody has the same code in action script in script 3 that
    includes the Tooltip and goto url, that would be great.
    The Flash action script is:
    import mx.utils.Delegate;
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    var folder:String = "thumbnails/"; // a folder for thumbnail
    files + an XML file
    var numOfItems:Number;
    var radiusX:Number = 300;
    var radiusY:Number = 40;
    var centerX:Number = Stage.width / 2;
    var centerY:Number = Stage.height / 2;
    var speed:Number = 0.02;
    var perspective:Number = 3;
    var home:MovieClip = this;
    theText._alpha = 0;
    var tooltip:MovieClip =
    this.attachMovie("tooltip","tooltip",10000);
    tooltip._alpha = 0;
    var xml:XML = new XML();
    xml.ignoreWhite = true;
    xml.onLoad = function()
    var nodes = this.firstChild.childNodes;
    numOfItems = nodes.length;
    for(var i=0;i<numOfItems;i++)
    var t = home.attachMovie("item","item"+i,i+1);
    t.angle = i * ((Math.PI*2)/numOfItems);
    t.onEnterFrame = mover;
    t.toolText = nodes.attributes.tooltip;
    t.content = nodes.attributes.content;
    t.icon.inner.loadMovie(nodes.attributes.image);
    t.r.inner.loadMovie(nodes.attributes.image);
    t.icon.onRollOver = over;
    t.icon.onRollOut = out;
    t.icon.onRelease = released;
    function over()
    //BONUS Section
    var sou:Sound = new Sound();
    sou.attachSound("sound2");
    sou.start();
    home.tooltip.tipText.text = this._parent.toolText;
    home.tooltip._x = this._parent._x;
    home.tooltip._y = this._parent._y - this._parent._height/2;
    home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
    home.tooltip._alpha = 100;
    function out()
    delete home.tooltip.onEnterFrame;
    home.tooltip._alpha = 0;
    function released()
    //BONUS Section
    var sou:Sound = new Sound();
    sou.attachSound("sound3");
    sou.start();
    home.tooltip._alpha = 0;
    for(var i=0;i<numOfItems;i++)
    var t:MovieClip = home["item"+i];
    t.xPos = t._x;
    t.yPos = t._y;
    t.theScale = t._xscale;
    delete t.icon.onRollOver;
    delete t.icon.onRollOut;
    delete t.icon.onRelease;
    delete t.onEnterFrame;
    if(t != this._parent)
    var tw:Tween = new
    Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
    var tw2:Tween = new
    Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
    var tw3:Tween = new
    Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
    else
    var tw:Tween = new
    Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
    var tw2:Tween = new
    Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
    var tw3:Tween = new
    Tween(t,"_x",Strong.easeOut,t._x,200,1,true);
    var tw4:Tween = new
    Tween(t,"_y",Strong.easeOut,t._y,320,1,true);
    var tw5:Tween = new
    Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
    theText.text = t.content;
    var s:Object = this;
    tw.onMotionStopped = function()
    s.onRelease = unReleased;
    function unReleased()
    //BONUS Section
    var sou:Sound = new Sound();
    sou.attachSound("sdown");
    sou.start();
    delete this.onRelease;
    var tw:Tween = new
    Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
    for(var i=0;i<numOfItems;i++)
    var t:MovieClip = home["item"+i];
    if(t != this._parent)
    var tw:Tween = new
    Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
    var tw2:Tween = new
    Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
    var tw3:Tween = new
    Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
    else
    var tw:Tween = new
    Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
    var tw2:Tween = new
    Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
    var tw3:Tween = new
    Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
    var tw4:Tween = new
    Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
    tw.onMotionStopped = function()
    for(var i=0;i<numOfItems;i++)
    var t:MovieClip = home["item"+i];
    t.icon.onRollOver = Delegate.create(t.icon,over);
    t.icon.onRollOut = Delegate.create(t.icon,out);
    t.icon.onRelease = Delegate.create(t.icon,released);
    t.onEnterFrame = mover;
    function moveTip()
    home.tooltip._x = this._parent._x;
    home.tooltip._y = this._parent._y - this._parent._height/2;
    xml.load("icons.xml");
    function mover()
    this._x = Math.cos(this.angle) * radiusX + centerX;
    this._y = Math.sin(this.angle) * radiusY + centerY;
    var s = (this._y - perspective)
    /(centerY+radiusY-perspective);
    this._xscale = this._yscale = s*100;
    this.angle += this._parent.speed;
    this.swapDepths(Math.round(this._xscale) + 100);
    this.onMouseMove = function()
    speed = (this._xmouse-centerX)/10000;
    The XML file is:
    <icons>
    <icon image="icon4.png" tooltip="Baby1" url="
    http://www.susystastebuds.com/BirthdaycakeZone.html"
    />
    <icon image="icon5.png" tooltip="Wedding Anniversary Zone"
    url="
    http://www.susystastebuds.com/AnniversaryCakeZone.html"
    />
    <icon image="icon6.png" tooltip="The Other Zone" url="
    http://www.susystastebuds.com/OtherCakeZone.html"
    />
    <icon image="icon7.png" tooltip="Specialty Zone" url="
    http://www.susystastebuds.com/Specialitys_Zone.html"
    />
    <icon image="icon8.png" tooltip="The Cupcake Zone" url="
    http://www.susystastebuds.com/CupCakeZone.html"
    />
    <icon image="icon9.png" tooltip="Home Page" url="
    http://www.susystastebuds.com/home"
    />
    <icon image="icon2.png" tooltip="Birthday Zone" url="
    http://www.susystastebuds.com/BirthdaycakeZone.html"
    />
    <icon image="icon3.png" tooltip="Wedding Zone" url="
    http://www.susystastebuds.com/Weddingcakezone.html"
    />
    <icon image="icon1.png" tooltip="Cakes Of The Week" url="
    http://www.susystastebuds.com/CakeZone.html"
    />
    <icon image="icon10.png" tooltip="Contact Us" url="
    http://www.susystastebuds.com/CakeZone.html"
    />
    </icons>

    I need the code for a simple PopUp (Frame) with a gif
    as background... Should be called from an applet...
    The following code das some errors !!
    Thanks Felix
    public class SHHcycle extends Frame
    getImage(getDocumentBase(),"Image/SHHlinear.jpg");
    public void paint(Graphics screen);
    {Hi,
    you are using applet methods in a frame. You should either make it an applet or find alternatives.
    http://galileo.spaceports.com/~ibidris/

  • [Ann] QR Code for InDesign CS4 and up

    Ever needed to create a QR code? There are literally hundreds of free QR code generators on the web, but they all have the same drawbacks:
    1. They typically deliver a PNG, either 'click here to download', or you have to drag it somewhere yourself.
    2. It's typically an RGB image, so the cautious designer will start up Photoshop to convert it to a monochrome image.
    3. .. so you get a file to store somewhere ..
    4. ... and after seeing four of them you cannot remember which QR code said what ...
    5. .... and, you cannot use such site in a batched environment (well, maybe some people can by building a proper URL, call the website, wait for a response, etc. I bet it's difficult for your average scripter.)
    So I had a go on converting one of the existing Javascript solutions -- Patrick Wied's, in case you're curious -- into a construction fit for InDesign. All you have to do is download the zip: http://www.jongware.com/binaries/jw_qrcode.zip -- unpack it, and save the file "QRCode.jsxbin" in your local User Script folder. It ought to be compatible with InDesign CS4 and upwards, for both Mac and Windows.
    When it appears in your Script Panel, you can double-click to run and
    1. with nothing selected, it prompts for text and error recovery settings, and will place a proper monochrome TIFF bitmap of (approximately) a useful dimension in the center of your current page.
    2. with an empty rectangle selected, the new QR code will be placed inside it.
    3. with some text selected, the text field will be pre-filled with this.
    4. With a QR Code selected which you created earlier using this same tool, the text field will contain the original text, and the quality setting will be retrieved. You can cancel the dialog if you only wanted to know what it said, or change the text or quality.
    5. You can call this script from another script to perform batch operations. It accepts two required arguments, and one optional, in this order: text, Error Correction level (1-4), and optionally a destination rectangle to place it in:
    app.doScript(new File(app.activeScript.path+'/qrcode.jsxbin'), ScriptLanguage.JAVASCRIPT, ["hello", 1, app.selection[0]], UndoModes.ENTIRE_SCRIPT, "Call QR Code");
    6. Since it's a monochrome bitmap TIFF with enough resolution (at its default size it's 200 dpi), you can use the swatches palette to change the white or black parts to another color, or even make one transparent.
    7. It's just a small file, and so I decided to always have it automatically embed. That way you can never loose it. The image first has to be created in a temporary file (default location: (Temp)/qrcode.tiff, where (Temp) is your local Temporary Files folder). If this fails for some of you (there always seem to be overly prudent IT professionals who seem to despise users storing files willy-nilly), I'll have to think of something else.
    Note: this version only supports plain text mode, not numeric, alphanumeric, or Kanji. Text is converted to UTF-8; for the most common purpose -- web pages -- it should work normally.
    Enjoy!
    Based entirely on Patrick Wied's implementation of a basic QR Code generator. Patrick Wied dutifully notes
    I do not guarantee any resulting QR code generations or detections, use this application at your own risk! - this project is just a study project (non commercial).
    and so I advise to always check your generated code using a good QR Code reader.

    To give back to community, here is the script to generate QR codes for business cards created by data merge
    It reads text frames starting with MECARD:, empties them and places QRcode rotated 15 degrees counterclockwise. Enjoy!
    var _d = app.documents[0];
    var _allStories = _d.stories;
    for(var nx=_allStories.length-1;nx>=0;nx--){
        var _storyAllTextFrames = _allStories[nx].textContainers;
        for(var mx=_storyAllTextFrames.length-1;mx>=0;mx--){
             _storyAllTextFrames[mx].select(); // change page
             if(_storyAllTextFrames[mx].contents.indexOf('MECARD:')==0){
                 var obj = app.doScript(new File(app.activeScript.path+'/qrcode.jsxbin'), ScriptLanguage.JAVASCRIPT, [_storyAllTextFrames[mx].contents]);
                 _storyAllTextFrames[mx].contents = "";
                var myScaleMatrix = app.transformationMatrices.add({horizontalScaleFactor:.7,
                    verticalScaleFactor:.7,counterclockwiseRotationAngle:15});
                obj.transform(CoordinateSpaces.pasteboardCoordinates,AnchorPoint.centerAnchor, myScaleMatrix);            
                 //obj.move ([_x,_y]);
    here is a MECARD template for you:
    MECARD:
    N:<<Last>>,<<First>>;
    TEL:<<Direct>>;
    TEL:<<Mobile>>;
    EMAIL:<<E-mail>>;
    NOTE:<<Position>> at <<Company>>;
    http://www.nttdocomo.co.jp/english/service/developer/make/content/barcode/function/applica tion/addressbook/index.html

  • Here the SSCCE code for the prvious problem posted by me.

    Following is the SSCCE code for the program of search which is having the problem i have asked before.
    here when you run it will show a form which have a search button on it and when you press it a panel will shown below which have a table( it is just a bounded area without any column or row as i have removed the database functionality and we dont have to do with it).
    the problem is the same that firstly i want to make the panel invisible.
    (the blue and yellow colors are just to seperate the panel and the container) Secondly i want to remove the extra large space added below the last table and thirdly i want that on each press of the search button the scrollbar will focus on the new table added.
    import javax.swing.*;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.border.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Temp extends JFrame implements ActionListener
         Container c;
         Toolkit tk;
         JLabel l1; int y=30;
         JPanel p1,p2,p3;     
         JRadioButton rbByName,rbBySirName,rbByID,rbByCity,rbByState;
         JButton btSearch,btView;
         ButtonGroup bgSearch;
         JTextField txtSearch; BoxLayout boxl;
         ImageIcon i1;JScrollPane sp1;JViewport vp;
         public Temp()
              super("Search-Address Management System");
              c=getContentPane();
              tk=Toolkit.getDefaultToolkit();
              setSize(1024,768);
              c.setBackground(Color.BLUE);c.setLayout(null);
              setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              defineComponents();
              settingBounds();
              addListeners();
              addComponents();
              setVisible(true);
         public void defineComponents()
              p1=new JPanel();
              p1.setLayout(null);
              p1.setOpaque(false);
              p2=new JPanel();
              p2.setLayout(null);
              p2.setOpaque(false);
              p3=new JPanel();
              boxl=new BoxLayout(p3,BoxLayout.Y_AXIS);
              p3.setLayout(boxl);
              rbByName=new JRadioButton("First Name");
              rbByName.setOpaque(false);
              rbBySirName=new JRadioButton("Last Name");
              rbBySirName.setOpaque(false);
              rbByState=new JRadioButton("State");
              rbByState.setOpaque(false);
              rbByCity=new JRadioButton("City");
              rbByCity.setOpaque(false);
              rbByID=new JRadioButton("ID");
              rbByID.setOpaque(false);
              btSearch=new JButton("Search");
              bgSearch=new ButtonGroup();
              txtSearch=new JTextField();
              btSearch=new JButton("Search");
              TitledBorder tb=new TitledBorder("Search Criteria");
              TitledBorder tb1=new TitledBorder("Search");
              p1.setBorder(tb);
              p2.setBorder(tb1);
         public void settingBounds()
              rbByID.setBounds(20,30,50,20);
              rbByName.setBounds(120,30,100,20);
              rbByState.setBounds(20,70,80,20);
              rbByCity.setBounds(120,70,50,20);
              rbBySirName.setBounds(240,30,100,20);
              p1.setBounds(30,40,400,110);
              p2.setBounds(30,180,400,80);
              p3.setBackground(Color.ORANGE);
              txtSearch.setBounds(50,210,250,25);
              btSearch.setBounds(320,210,80,25);
              rbByID.setSelected(true);
         public void addListeners()
              btSearch.addActionListener(this);
         public void addComponents()
              p1.add(rbByName);
              p1.add(rbBySirName);
              p1.add(rbByState);
              p1.add(rbByCity);
              p1.add(rbByID);
              c.add(txtSearch);
              c.add(btSearch);
              c.add(p1);
              c.add(p2);
              bgSearch.add(rbByID);
              bgSearch.add(rbByName);
              bgSearch.add(rbBySirName);
              bgSearch.add(rbByCity);
              bgSearch.add(rbByState);
         public void drawtable()
              JTable t1=new JTable()
                  public Class getColumnClass(int column)
                    return getValueAt(0, column).getClass();
              if(y==30) //as temporay variable only to add the scrollpane once
                   sp1=new JScrollPane(p3,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
                   sp1.setBounds(30,300,660,380);
                   c.add(sp1); 
              JScrollPane sp=new JScrollPane(t1);
              sp1.getViewport().setOpaque(false); // to make the scrollpane transparent but not worked
              sp.setMaximumSize(new Dimension(600,100));
              p3.add(Box.createRigidArea(new Dimension(600,20)));//  invisible filler to add space between two tables
              p3.add(sp);
              p3.revalidate();
              y=y+110;
         public void actionPerformed(ActionEvent e)
              if(e.getSource()==btSearch)
              drawtable();
         public static void main(String args[])
              new Temp();
    }Please reply with the code required to be added.

    the problem is the same that firstly i want to make the panel invisible.If I remember you other postings I think you mean to say transparent, which means the background of its parent component will be painted. If you make the panel invisible, then all the component added to the panel will also be invisible.
    You have a structure something like this:
    main panel
        - scroll pane
            - viewport
                - table panel
                    - table1
                    - table 2As you where told in one of you many other posting on this topic, if you want the background of the main panel to show through then you need to make all the component on top of the pane non-opaque, not just the viewport. So, the scroll pane and table panel also need to be changed.
    And don't forget to reply to all your other postings on this topic stating that those postings are "closed" so people don't waste time answering in those postings. Keep the conversation in one posting so everybody knows what has been suggested.

  • I can't print out my claim code for my HPDeskjet 2540 All-In-One printer.

    So i have been trying to get the claim code for my printer for the past hour and i seem to not be able to get the code. I want to set up my printer with eprint but in order for me to be abe to get theoption i got to input the claim, which i cant print or get any where. I have tried calling HP cloud service and waited for like 20mins just for them to tell me to call back tomorrow. If any one can help me in showing me how to get the code will be reatly appriciated. Thanks.

    Hi,
    Given your printer has a claim code, please ue the following method:
    Option one: If you see an ePrint buttonOn the printer control panel, press the ePrint ( ) button to open the Web Services menu.
    If Web Services is enabled , touch Print Info . An information sheet prints that has your claim code.
    If Web Services is not enabled , touch OK to accept the terms of service, and then touch OK to accept the update. An information sheet prints that has your claim code.
    Option two: If you see a Setup iconOn the printer control panel, touch Setup ( ), and then touch Web Services Settings .
    If Web Services is enabled , touch Print Info . An information sheet prints that has your claim code.
    If Web Services is not enabled , touch Continue , touch Yes to accept the terms of service, touch Yes to accept the update, and then touch Print Info . An information sheet prints that has your claim code.
    Source: http://h10025.www1.hp.com/ewfrf/wc/document?cc=us&lc=en&dlc=en&docname=c03550536#N79
    Regards.
    BH
    **Click the KUDOS thumb up on the left to say 'Thanks'**
    Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem.

  • Fade transitions not showing in web browser

    Hi guys,
    when exporting an animated GIF with a simple fade transition between two layers, it appears to work within Photoshop but when previewing in the save for web window and in a browser,
    the fade transitions don't appear.
    Cheers
    Chris

    When a GIF supports transparency it only supports 255 colors the 256 color is reserved for transparent. Which does not support a partly transparent a pixel is either 100% opaque or empty. A fade or something something like a drop would be made by dithering. Scaling that kind of gif can help how it looks on screen. The large one is not scaled the other two are the same gif file scaled. Animater pgn would be better but all browser  do not support the use abs some like Chrome may have a plugin that support them. Latr image is an animated png...

  • Code for NSImageView

    Using Project Builder, I have made an appleScript application that selects photos with a browser then tells Photoshop to make a series of changes to them using actions. I would like to have an NSImageView as part of the interface window but it seems to need code for many handlers. Is there a sample of workable code for these handlers anywhere? Thanks...

    Hi HerbA
    Some of this code may be of use to you, it's plucked straight out of one of my projects that im working on, it works fine for me in my project. (im open to improvement suggestions also).
    global the_image
    on clicked theObject
    --CLOSES THE VIEWER PANEL--
    if name of theObject is "cancel" then
    delete image of image view "image" of window "VIEWER"
    delete contents of text field "pathto" of (window "VIEWER")
    close panel (window "VIEWER")
    end if
    --OPENS THE VIEWER PANEL--
    if name of theObject is "getviewer" then
    display (window "VIEWER") attached to window "MAIN"
    end if
    --DELET IMAGE FROM IMAGE VIEWER --
    if name of theObject is "delete" then
    delete image of image view "image" of window "VIEWER"
    delete contents of text field "pathto" of (window "VIEWER")
    end if
    --RUNS THE BARBER POLE or spinning ICON--
    tell window "VIEWER"
    set indeterminate of progress indicator "bar_Progress" to true
    set uses threaded animation of progress indicator "bar_Progress" to true
    set animation delay of progress indicator "bar_Progress" to 1
    tell progress indicator "bar_Progress" to start
    end tell
    --GETS THE IMAGE AND OPENS THE IMAGE IN ITS APPLICATION--
    tell window of theObject
    if name of theObject is "userpick" then tell me to get_picture()
    if name of theObject is "openfile" then tell me to open_picture()
    end tell
    end clicked
    on get_picture()
    set the_image to (choose file without invisibles)
    set new_image to load image the_image
    set image of image view "image" of window "VIEWER" to new_image
    set text color of text field "pathto" of window "VIEWER" to {0, 0, 65535}
    set contents of text field "pathto" of window "VIEWER" to the_image as string
    end get_picture
    on open_picture()
    if content of text field "pathto" of window "VIEWER" is not "" then
    tell application "Finder" to open the_image
    else
    display dialog "Please use - Select item to view - first." with icon caution
    end if
    end open_picture
    tell progress indicator "bar_Progress" to stop
    end clicked
    hope this helps
    Budgie

  • Linking to specific spry tabbed panel - code not working

    Hi,
    I have followed the tutorial at
    http://foundationphp.com/tutorials/spry_url_utils.php
    with regard to being able to link to a specific tab. For some
    reason though, my code doesn't work. I am usign Dreamweaver cs3,
    and as soon as I head back to the design view, or preview it in a
    browser for that matter, all I see is each tab one above the other,
    and the tabs no longer work.
    My code is as follows:
    <script src="../SpryAssets/SpryTabbedPanels.js"
    type="text/javascript"></script>
    <link href="../SpryAssets/SpryTabbedPanels.css"
    rel="stylesheet" type="text/css" />
    <style type="text/css">
    <script type="text/javascript"
    src="SpryAssets/SpryURLUtils.js"></script>
    <script type="text/javascript"> var params =
    Spry.Utils.getLocationParamsAsObject(); </script>
    is in the head, and the body for the tabbed panels is:
    <div id="mainContent">
    <div id="TabbedPanels1" class="TabbedPanels">
    <ul class="TabbedPanelsTabGroup">
    <li class="TabbedPanelsTab" tabindex="0">1st
    Team</li>
    <li class="TabbedPanelsTab" tabindex="0">2nd
    Team</li>
    <li class="TabbedPanelsTab" tabindex="0">3rd
    Team</li>
    <li class="TabbedPanelsTab" tabindex="0">4th
    Team</li>
    </ul>
    <div class="TabbedPanelsContentGroup">
    <div class="TabbedPanelsContent">
    <table width="100%" border="1" cellpadding="5"
    cellspacing="1px" bordercolor="#929925">
    <tr>
    <td width="54%"><!-- TemplateBeginEditable
    name="playername1" -->
    <div align="center" class="style3 style5">Player
    name</div>
    <!-- TemplateEndEditable -->
    <p align="center"><!-- TemplateBeginEditable
    name="playerpic1" --><img alt="" name="playerpic" width="180"
    height="245" border="1" id="playerpic" /><!--
    TemplateEndEditable --></p>
    <!-- TemplateBeginEditable name="playerinfo1" -->
    <p align="center" class="style3 style6 style4">Click a
    player name to view their profile. </p>
    <!-- TemplateEndEditable -->
    <p align="center"> </p></td>
    <td width="46%"><p align="center"><!--
    TemplateBeginEditable name="teamphoto1" --><img alt=""
    name="teamphoto" width="250" height="150" border="1" align="top"
    id="teamphoto" /><!-- TemplateEndEditable --></p>
    <p align="center" class="style3 style4
    style6"><u>Squad list</u></p>
    <p align="center" class="style5"> </p>
    <p></p></td>
    </tr>
    </table>
    <p> </p>
    <p> </p>
    </div>
    <div class="TabbedPanelsContent">
    <table width="100%" border="1" cellpadding="5"
    cellspacing="1px" bordercolor="#929925">
    <tr>
    <td width="54%">
    <div align="center" class="style3"><!--
    TemplateBeginEditable name="playername2" --><span
    class="style5">Player name</span><!--
    TemplateEndEditable --></div>
    <p align="center"><!-- TemplateBeginEditable
    name="playerpic2" --><img alt="" name="playerpic" width="180"
    height="245" border="1" id="playerpic2" /><!--
    TemplateEndEditable --></p>
    <!-- TemplateBeginEditable name="playerinfo2" -->
    <p align="center" class="style3 style4 style6">Click a
    player name to view their profile.</p>
    <!-- TemplateEndEditable --></td>
    <td width="46%"><p align="center"><!--
    TemplateBeginEditable name="teamphoto2" --><img alt=""
    name="teamphoto" width="250" height="150" border="1" align="top"
    id="teamphoto2" /><!-- TemplateEndEditable --></p>
    <p align="center" class="style3 style4
    style6"><u>Squad list</u></p>
    <p align="center"> </p>
    <p></p></td>
    </tr>
    </table>
    </div>
    <div class="TabbedPanelsContent">
    <table width="100%" border="1" cellpadding="5"
    cellspacing="1px" bordercolor="#929925">
    <tr>
    <td width="54%"><!-- TemplateBeginEditable
    name="playername3" -->
    <p align="center" class="style3 style6 style4">Player
    name</p>
    <!-- TemplateEndEditable -->
    <p align="center"><!-- TemplateBeginEditable
    name="playerpic3" --><img alt="" name="playerpic" width="180"
    height="245" border="1" id="playerpic3" /><!--
    TemplateEndEditable --></p>
    <!-- TemplateBeginEditable name="playerinfo3" -->
    <p align="center" class="style3 style6 style4">Click a
    player name to view their profile.</p>
    <!-- TemplateEndEditable -->
    <p align="center"> </p></td>
    <td width="46%"><p align="center"><!--
    TemplateBeginEditable name="teamphoto3" --><img alt=""
    name="teamphoto" width="250" height="150" border="1" align="top"
    id="teamphoto3" /><!-- TemplateEndEditable --></p>
    <p align="center" class="style3 style4
    style6"><u>Squad list</u></p>
    <p align="center"> </p>
    <p></p></td>
    </tr>
    </table>
    </div>
    <div class="TabbedPanelsContent">
    <table width="100%" border="1" cellpadding="5"
    cellspacing="1px" bordercolor="#929925">
    <tr>
    <td width="54%"><!-- TemplateBeginEditable
    name="playername4" -->
    <div align="center" class="style3 style4
    style6">Player name</div>
    <!-- TemplateEndEditable -->
    <p align="center"><!-- TemplateBeginEditable
    name="playerpic4" --><img alt="" name="playerpic" width="180"
    height="245" border="1" id="playerpic4" /><!--
    TemplateEndEditable --></p>
    <!-- TemplateBeginEditable name="playerinfo4" -->
    <p align="center" class="style3 style4 style6">Click a
    player name to view their profile.</p>
    <!-- TemplateEndEditable -->
    <p align="center"> </p></td>
    <td width="46%"><p align="center"><!--
    TemplateBeginEditable name="teamphoto4" --><img alt=""
    name="teamphoto" width="250" height="150" border="1" align="top"
    id="teamphoto4" /><!-- TemplateEndEditable --></p>
    <p align="center" class="style3 style4
    style6"><u>Squad list</u></p>
    <p align="center" class="style5"> </p>
    <p></p></td>
    </tr>
    </table>
    </div>
    </div>
    </div>
    <p> </p>
    </div>
    <script type="text/javascript">
    <!--
    var TabbedPanels1 = new
    Spry.Widget.TabbedPanels("TabbedPanels1", {defaultTab:(params.tab ?
    params.tab : 0)});
    The link I would then use to link to tab 2 say, would be:
    ../"pagename".php?tab=2#TabbedPanels2
    Also, when I then go to click on the Spry tabbed panels
    region in design view, I get an error message saying:
    while executing inspectSelection in spry_tabbedpanels.htm, a
    javascript error occurred.
    I am pretty inexperienced with Spry and Java so I may have
    missed something simple.
    A solution would be much appreciated as this is driving me
    mad!
    Please let me know if you need me to post more code.
    Thanks in advance.
    p.s. I am using Dreamweaver CS3 and the SpryURLUtils.js
    script is from the Spry 1.6.1 prerelease framework.

    quote:
    Originally posted by:
    brownie_jedi
    Ok, so I've just changed the code to <script
    type="text/javascript"
    src="../SpryAssets/SpryURLUtils.js"></script>
    to mimic the code for <script
    src="../SpryAssets/SpryTabbedPanels.js"
    type="text/javascript"></script>
    since the spry files are all in the same folder. Is this what
    you meant?
    Having just installed firebug, I get the error params is not
    defined. So I guess that this all together means that the
    SpryURLUtils.js file is not being called correctly?
    p.s. Thanks for the speedy replies, much appreciated.
    Yes it means it cant find the file SpryURLUtils.js.
    in firebug theres a tab called scripts, if u click on it, u
    can see wich scripts are loaded. i suggest u check that out. Or
    post a online URL so we can see the problem for our selfs..

  • Swapping Components with Fade Transition

    Hey,
    There are many places in my application where I swap one component out for another one. I was trying to achieve a fade transition instead of just having the new component appear. I got it working, but it is very slow. Any ideas of how to get up the FPS?
    Whenever I want to transition the content into the container, I create a new SwappableComponent with the two arguments.
    Thanks!
    private static class SwappableComponent extends JPanel {
              private static final float[] scales = { 1f, 1f, 1f, 0.5f };
              private static final float[] offsets = new float[4];
              private static final int TRANSITION_TIME = 1000;
              private final int w, h;
              private final JComponent container, content;
              private BufferedImage fromImage, toImage, currentImage;
              private long start = System.currentTimeMillis();
              private boolean finished = false;
              public SwappableComponent(JComponent container, JComponent content) {
                   this.container = container;
                   this.content = content;
                   w = container.getWidth();
                   h = container.getHeight();
                   if (w == 0 || h == 0) {
                        finish();
                   } else {
                        fromImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
                        Graphics g = fromImage.getGraphics();
                        container.printAll(g);
                        g.dispose();
                        toImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
                        g = toImage.getGraphics();
                        Components.setAllSizes(content, w, h);
                        container.removeAll();
                        container.add(content);
                        container.validate();
                        container.revalidate();
                        content.printAll(g);
                        g.dispose();
                        currentImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
                        this.setPreferredSize(new Dimension(w, h));
                        container.removeAll();
                        container.add(this);
                        container.revalidate();
                        updateCurrentImage(0.0f);
              @Override
              protected void paintComponent(Graphics g) {
                   g.drawImage(currentImage, 0, 0, null);
              // return true if finished
              public boolean tick() {
                   if (finished) {
                        return true;
                   long time = System.currentTimeMillis();
                   double percent = 1.0 * (time - start) / TRANSITION_TIME;
                   if (percent >= 1) {
                        finish();
                        return true;
                   updateCurrentImage((float) percent);
                   repaint();
                   return false;
              private void updateCurrentImage(float p) {
                   Graphics2D g = (Graphics2D) currentImage.getGraphics();
                   g.setColor(Color.white);
                   g.fillRect(0, 0, w, h);
                   scales[3] = 1 - p;
                   RescaleOp rop = new RescaleOp(scales, offsets, null);
                   g.drawImage(fromImage, rop, 0, 0);
                   scales[3] = p;
                   rop = new RescaleOp(scales, offsets, null);
                   g.drawImage(toImage, rop, 0, 0);
                   g.dispose();
              private void finish() {
                   finished = true;
                   SwingUtilities.invokeLater(new Runnable() {
                        public void run() {
                             container.removeAll();
                             container.add(content);
                             container.revalidate();
                             container.repaint();
         }

    We can't see the behaviour you describe.
    If you need further help then you need to create a [Short, Self Contained, Compilable and Executable, Example Program (SSCCE)|http://homepage1.nifty.com/algafield/sscce.html], that demonstrates the incorrect behaviour.

Maybe you are looking for