Odd difference between shadow and highlight clipping

A newly imported RAW file I started to process shows what I thought to be odd behaviour when the shadow clipping button was pressed ; initially the trunk of a tree in deep shadow showed large areas of shadow clipping , and was so mostly blue .
Then , when the Fill Light slider was pulled across from 0 to say 30 , the blue colour indicating shadow clipping started to disappear , and definite detail started to appear . Examination at 300% shows that differentiated pixels appear directly from the blue ones , and aren`t just adjacent to the blue originally .
I thought that shadow clipping was exactly analogous to highlight clipping , and that pixel info had been permanently lost from these areas , with RGB;0:0:0 , just like blown highlights .
So is the shadow clipping indication an absolute measurement , or is it somehow relative , and if so to what ? Anyone able to suggest the underlying mechanism and any answers ? Thanks in advance .
Nikon D70 NEFs into XP on an Athlon XP 2200 with 1 GB RAM .

The clipping (shadows and highlights) indicates clipping in the current rendering, not in the RAW data. If the "RAW" data is a JPEG, you can't recover highlights, just shadows. If the "RAW" data is a RAW, you can't tell from the clipping indicators if the RAW data is clipped or not. You may be able to recover using the develop tools.

Similar Messages

  • Shadow and highlight clipping

    Over the past few weeks I have noticed something with correcting shadow and highlight clipping in LR 5.7 and 5.7.1 I was not aware of and would like some opinions.
    In one sentence, it appears that there is highlight clipping both in the White and Highlight portion of the histogram and shadow clipping in the Shadows and Blacks portion of the histogram. Up until recently I had assumed that if I wanted to globally recover highlights, I had to bring the Whites down. However, I have now seem quite a few photos, taken with different cameras (all Nikon), where the highlight clipping warning only went away after reducing the Highlights by -5.

    What you are seeing is perfectly normal for images with moderate to high dynamic range. The LR PV2012 Tone controls should be adjusted using a top-down workflow. Here's what I have found that works well:
    PV2012 Basic Panel Tone Control Adjustment Procedure
    Start with all of the Tone controls at their default 0 settings and adjust them from the top-down in the order shown below.
    1. Set Exposure to correct midtone brightness ignoring the highlight and shadow areas for now. Setting Exposure slightly higher (+.25 to +.50 EV) than what looks correct for the midtones seems to work best with most images.
    2. Leave Contrast at 0 for now. It’s usually better to adjust this after the first pass.
    3. Adjust Highlights so that blown out areas are recovered and “fine tonal detail” is revealed.
    4. Adjust Shadows to reveal fine detail in dark areas. For most normal images simply setting +Shadows = -Highlights (Example +50 and -50) works very well.
    5. The Whites control sets the white clipping point, which you can see by holding down the ALT key as you move the slider. Adjust it to the point where you see clipping appear with the ALT key.
    6. The Blacks control sets the black clipping point, which you can see by holding down the ALT key as you move the slider. Adjust it to the point where you see clipping appear with the ALT key.
    7. Now go back and adjust the Contrast control to establish the best midtone contrast.
    8. Lastly touch-up the Exposure control for the best midtone brightness.
    9. If necessary “touch-up” the controls using the same top-down workflow.

  • Quick question: what is the difference between graphic and movie clips?

    What is the difference between the two symbols: graphic and movie clips? They both contain frames..?

    movie clips can have
    instance names : so they can be controlled via actionscript
    filters applied : drop shadow, glow, blur, color adjust etc
    blend modes applied : difference, screen, lighten, darken, etc.
    3d transformations
    graphics:
    none of the above
    the only real practical reason to use a graphic is the reason jdehaan stated. a graphics internal animation can be scrubbed via the main timeline. graphics will only advance when the main timeline advances. when the main timeline stops.. graphics stops.
    movieclips on the otherhand are said to run independent of the main timeline. so you can have a MAIN timeline with one frame only and the movieclip's interior animation will run constantly.
    also via the properties panel you can tell a graphic to stay stuck on a certain frame or loop a set number of times.
    always use movieclips unless you have a reason not too. as kglad said it will save you and others a lot of hurt in the future.

  • Difference between implicit and explicit enhancement points

    Hi Folks,
    I had learned many documents to findout the difference between explicit and implicit enhancement point.I got the theoritical knowledge on that but losing on the practical side..
    Can anybody help me out with one real time scenario where the explicit enhancement points have been implemented and the step by step procedure to implement it..
    Hoping for the positive response from you..
    Regards,
    Rohan.

    Hi Rohan,
    In implicit they are available at the beginning of subroutines defined in the standard reports.
    Edit-> Enhancement operations->show implicit enhancement options.
    This will highlight all the implicit enhancements in the report.
    In Explicit enhancement we have two different types of enhancements -
    Enhancement point and Enhancement section.
    Enhancement point - SAP has some standard functionality defined for a report , but it may be required that you'll need to add your own code. In this case the code that you'll add will be executed along with the standard code.
    Enhancement section - SAP has its standard functionality defines but it may not suit your requirement, in that case you may need to add your code and you'll need that code to be executed only. By this method the existing code is automatically commented and a copy of the same code is available to edit.
    After executing the report only your code will be executed and the standard code will be bypassed.
    For Practicle implementation, follow this link.
    Link : [http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/bb54c452-0801-0010-0e84-a653307fc6fc]
    i hope it will give you some clear picture....
    Thanks.
    Anurag

  • Differences between Oracle and SAP ERP

    Hi All
    I have a Industrial project which is currently having oracle.
    I would like to give them a presentation on SAP ERP and its modules.
    Does any1 have a ppt which highlights the advantages of SAP over Oracle. and stating its major differences.
    Please send it ASAP.
    Thanks and Regards

    Hi.......
    Check this link :
    The key difference between SAP and Oracle
    http://searchsap.techtarget.com/news/article/0,289142,sid21_gci1294788,00.html
    http://www.itjungle.com/two/two032807-story03.html
    http://searchmanufacturingerp.techtarget.com/news/article/0,289142,sid193_gci1325932,00.html
    Hope this helps you...........
    Regards,
    Debjani..........

  • Difference between photoshop and illustrator effects?

    Under the effects menu in cs5, what is the difference between photoshop and illustrator effects? when do you use the photoshop ones?
    Thank you.

    The Photoshop effects are copies of similar effects from Photoshop. As such, they can only be applied to raster art, such as that edited in Photoshop. When you apply a Photoshop effect the Illustrator art you apply it to is rasterized in the background and the effect is applied to the rasterized version of the art. If you expand the appearance of anything with a Photoshop effect on it it will be rasterized. The other effects retain all or part of the vector art. When you expand the effect or save a PDF at least some of the original vector art will remain as vectors, although some effects (Drop Shadow, Blur, Feather, Inner Glow, etc.) to add rasterized art to the file.
    The rasterization is non-damaging, in that the original vector, type, or other objets remain fully editable. If you remove the effect the rasterization goes away. There is no dialogue for rasterization resolution in the effect; you set that in Effect > Document Raster Effect Settings.

  • Flickering after adding shadow and highlight effect

    I seem to be getting a flicker, in any shot that has had the shadow and highlight effect added. It is as if premiere flashes from an uneffected frame and to a frame after "correcting" with shadow and highlight. Sometimes hardly noticeable until I have "make movie" and play it as an avi.
    regards

    Bill Hunt wrote:
    Well, as with most of the "auto" Effects, things work well, only if everything stays the same, like lighting, etc.. If one has a Clip, where lighting, exposure, white-balance, etc. changes, then the auto Effects WILL "pulse," or "strobe." It's sort of like the old days, with auto-aperture, and "seeking" for exposure.
    Lock down the camera, and do not change the lighting, exposure, or white-balance, and the auto aspect of Highlight & Shadow (plus most other "auto" Effects), will work just fine.
    I use Highlight & Shadow fairly often, but seldom on its "auto" adjustment - I almost always manually set the parameters manually.
    Good luck,
    Hunt
    This thread isn't long, and clearly in the several posts above, we discuss that the bug (which Adobe refuses to fix after years of bug reports) occurs regardless of whether automatic or manual control is being used.  So you are not offering a solution; Adobe needs to do that.

  • Differences between awt and swing

    Ive written the following code, however Ive implemented the gui in awt rather then swing. Ive been told it hs too be in swing. What is the difference between swing and awt what will I need to change in my program so that its done using swing rather then the awt? Heres the code:
    // pp.java
    // Grant Brown
    // 22/02/02
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    // =========================================================
    // Class: pp
    // This class drives the customer manager. It contains the
    // main method which gets called as soon as this application
    // begins to run.
    // =========================================================
    class pp extends Frame implements ActionListener
    // Container of customer objects
    private Vector customers = new Vector (100);
    // List of names component. (Must specify java.awt in
    // front of List to distinguish the List class in the
    // java.awt package from the List class in the java.util
    // package.)
    private java.awt.List names = new java.awt.List ();
    // Delete and update button components.
    private Button delete;
    private Button update;
    // Default constructor.
    public pp ()
    // Assign "Paper Round Manager" to title bar of frame window.
    super ("Paper Round Manager");
    // Add a listener that responds to window closing
    // events. When this event occurs (by clicking on the
    // close box in the title bar), save customers and exit.
    addWindowListener (new WindowAdapter ()
    public void windowClosing
    (WindowEvent e)
    saveCustomers ();
    System.exit (0);
    // Place an empty label in the north part of the frame
    // window. This is done to correct an AWT positioning
    // problem.
    Label l = new Label ();
    add ("North", l);
    // Place the names component in the center part of the
    // frame window.
    add ("Center", names);
    // Create a panel object to hold four buttons.
    Panel p = new Panel ();
    Button b;
    // Add an Insert button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (b = new Button ("Insert"));
    b.addActionListener (this);
    // Add a Delete button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (delete = new Button ("Delete"));
    delete.addActionListener (this);
    // The Delete button should be disabled until there is at
    // least one customer to delete.
    delete.setEnabled (false);
    // Add an Update button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (update = new Button ("Update"));
    update.addActionListener (this);
    // The Update button should be disabled until there is at
    // least one customer to update.
    update.setEnabled (false);
    // Add a Finish button to the Panel object and register
    // the current customer object as a listener for button events.
    p.add (b = new Button ("Finish"));
    b.addActionListener (this);
    // Add the panel object to the frame window container.
    add ("South", p);
    // Set the background of the frame window container to
    // lightGray
    setBackground (Color.lightGray);
    // Set the size of the frame window container to 400
    // pixels horizontally by 200 pixels vertically.
    setSize (400, 200);
    // Allow the user to resize the frame window.
    setResizable (true);
    // Load all contacts.
    loadCustomers ();
    // Make sure that the frame window is visible.
    setVisible (true);
    public void actionPerformed (ActionEvent e)
    if (e.getActionCommand ().equals ("Delete"))
    delete ();
    else
    if (e.getActionCommand ().equals ("Finish"))
    saveCustomers ();
    System.exit (0);
    else
    if (e.getActionCommand ().equals ("Insert"))
    insert ();
    else
    update ();
    public Insets getInsets ()
    // Return an Insets object that describes the number of
    // pixels to reserve as a border around the edges of the
    // frame window.
    return new Insets (10, 10, 10, 10);
    public static void main (String [] args)
    // Create a new pp object and let it do its thing.
    new pp ();
    private void delete ()
    // Obtain index of selected contact item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a contact if no contact item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Remove the contact item from the names component.
    names.remove (index);
    // Remove the Customer object from the contacts Vector
    // object.
    customers.remove (index);
    // If there are no more customers ...
    if (customers.size () == 0)
    delete.setEnabled (false);
    update.setEnabled (false);
    else
    // Make sure that the first contact item in the names
    // list is highlighted.
    names.select (0);
    private void insert ()
    // Create an Insert data entry form to enter information
    // for a new customer.
    DataEntryForm def = new DataEntryForm (this, "Insert");
    // If the bOk Boolean flag is set, this indicates the user
    // exited the form by pressing the Ok button.
    if (def.bOk)
    // Create a Contact object and assign information from
    // the form to its fields.
    Customer temp = new Customer ();
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.round = new String (def.round.getText ());
    temp.address = new String (def.address.getText ());
    temp.phone = new String (def.phone.getText ());
    // Add a new customer item to the names component.
    names.add (temp.name + ", " + temp.publication);
    // Add the Customer object to the contacts Vector
    // object.
    customers.add (temp);
    // Make sure that the Delete and Update buttons are
    // enabled.
    delete.setEnabled (true);
    update.setEnabled (true);
    // Destroy the dialouge box.
    def.dispose ();
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ===========================================================
    // Load all contacts from contacts.dat into the contacts
    // Vector object. Also, make sure that the last name/first
    // name from each contact is combined into a String object and
    // inserted into the names component - as a contact item.
    // ===========================================================
    private void loadCustomers ()
    FileInputStream fis = null;
    try
    fis = new FileInputStream ("Customers.dat");
    DataInputStream dis = new DataInputStream (fis);
    int nCustomers = dis.readInt ();
    for (int i = 0; i < nCustomers; i++)
    Customer temp = new Customer ();
    temp.name = dis.readUTF ();
    temp.publication = dis.readUTF ();
    temp.round = dis.readUTF ();
    temp.address = dis.readUTF ();
    temp.phone = dis.readUTF ();
    names.add (temp.name + ", " + temp.publication);
    customers.add (temp);
    if (nCustomers > 0)
    delete.setEnabled (true);
    update.setEnabled (true);
    catch (IOException e)
    finally
    if (fis != null)
    try
    fis.close ();
    catch (IOException e) {}
    // Make sure that the first contact item in the names list
    // is highlighted.
    names.select (0);
    // ========================================================
    // Save all Customer objects from the customer Vector object
    // to customer.dat. The number of customerss are saved as an
    // int to make it easy for loadCustomers () to do its job.
    // ========================================================
    private void saveCustomers ()
    FileOutputStream fos = null;
    try
    fos = new FileOutputStream ("customers.dat");
    DataOutputStream dos = new DataOutputStream (fos);
    dos.writeInt (customers.size ());
    for (int i = 0; i < customers.size (); i++)
    Customer temp = (Customer) customers.elementAt (i);
    dos.writeUTF (temp.name);
    dos.writeUTF (temp.publication);
    dos.writeUTF (temp.round);
    dos.writeUTF (temp.address);
    dos.writeUTF (temp.phone);
    catch (IOException e)
    MsgBox mb = new MsgBox (this, "PP Error",
    e.toString ());
    mb.dispose ();
    finally
    if (fos != null)
    try
    fos.close ();
    catch (IOException e) {}
    private void update ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a customer if no customer item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Obtain a reference to the customer object (from the
    // customers Vector object) that is associated with the
    // index.
    Customer temp = (Customer) customers.elementAt (index);
    // Create and display an update entry form.
    DataEntryForm def = new DataEntryForm (this, "Update",
    temp.name,
    temp.publication,
    temp.round,
    temp.address,
    temp.phone);
    // If the user pressed Ok...
    if (def.bOk)
    // Update the customer information in the customers
    // Vector object.
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.round = new String (def.round.getText ());
    temp.address = new String (def.address.getText ());
    temp.phone = new String (def.phone.getText ());
    // Make sure the screen reflects the update.
    names.replaceItem (temp.name + ", " + temp.publication,
    index);
    // Destroy the dialouge box.
    def.dispose ();
    // Make sure that the first customer item in the names
    // list is highlighted.
    names.select (0);

    Ive doen pretty much what you said burt now my program isnt working at all. The window comes up but instead of doing something when you click the button it just throws shit loads of exceptions. Heres my abridged code
    // pp.java
    // Grant Brown
    // 22/02/02
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    // =========================================================
    // Class:PP
    // This class drives the Paper Round manager. It contains the
    // main method which gets called as soon as this application
    // begins to run.
    // =========================================================
    class pp extends JFrame implements ActionListener
    // Container of customer objects (one object per customer)
    private Vector customers = new Vector (100);
    // List of names component. (Must specify java.awt in
    // front of List to distinguish the List class in the
    // java.awt package from the List class in the java.util
    // package.)
    private java.awt.List names = new java.awt.List ();
    // Delete and update button components.
    private JButton delete;
    private JButton update;
    // Default constructor.
    public pp ()
    // Assign Contact Manager to title bar of frame window.
    super ("Paper Round Manager");
    // Add a listener that responds to window closing
    // events. When this event occurs (by clicking on the
    // close box in the title bar), save contacts and exit.
    addWindowListener (new WindowAdapter ()
    public void windowClosing
    (WindowEvent e)
    saveCustomers ();
    System.exit (0);
    // Place an empty label in the north part of the frame
    // window. This is done to correct an AWT positioning
    // problem. (One thing that you'll come to realize as
    // you work with the AWT is that there are lots of bugs.)
    JLabel l = new JLabel ();
    getContentPane().add ("North", l);
    // Place the names component in the center part of the
    // frame window.
    getContentPane().add ("Center", names);
    // Create a panel object to hold four buttons.
    JPanel p = new JPanel ();
    JButton b;
    // Add an Insert button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (b = new JButton ("Insert"));
    b.addActionListener (this);
    // Add a Delete button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (delete = new JButton ("Delete"));
    delete.addActionListener (this);
    // The Delete button should be disabled until there is at
    // least one contact to delete.
    delete.setEnabled (false);
    // Add an Update button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (update = new JButton ("Update"));
    update.addActionListener (this);
    // The Update button should be disabled until there is at
    // least one contact to update.
    update.setEnabled (false);
    // Add a Finish button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (b = new JButton ("Finish"));
    b.addActionListener (this);
    // Add the panel object to the frame window container.
    getContentPane().add ("South", p);
    // Set the background of the frame window container to
    // lightGray (to give a pleasing effect).
    setBackground (Color.lightGray);
    // Set the size of the frame window container to 400
    // pixels horizontally by 200 pixels vertically.
    setBounds (50, 100, 400, 200);
    // Do not allow the user to resize the frame window.
    loadCustomers ();
    // Load all contacts.
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // Make sure that the frame window is visible.
    setVisible (true);
    public void actionPerformed (ActionEvent e)
    if (e.getActionCommand ().equals ("Delete"))
    delete ();
    else
    if (e.getActionCommand ().equals ("Finish"))
    saveCustomers ();
    System.exit (0);
    else
    if (e.getActionCommand ().equals ("Insert"))
    insert ();
    else
    update ();
    public Insets getInsets ()
    // Return an Insets object that describes the number of
    // pixels to reserve as a border around the edges of the
    // frame window.
    return new Insets (10, 10, 10, 10);
    public static void main (String [] args)
    // Create a new cm object and let it do its thing.
    new pp ();
    private void delete ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a contact if no contact item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Remove the customer item from the names component.
    names.remove (index);
    // Remove the Customer object from the contacts Vector
    // object.
    customers.remove (index);
    // If there are no more customers ...
    if (customers.size () == 0)
    delete.setEnabled (false);
    update.setEnabled (false);
    else
    // Make sure that the first contact item in the names
    // list is highlighted.
    names.select (0);
    private void insert ()
    // Create an Insert data entry form to enter information
    // for a new contact.
    DataEntryForm def = new DataEntryForm (this, "Insert");
    // If the bOk Boolean flag is set, this indicates the user
    // exited the form by pressing the Ok button.
    if (def.bOk)
    // Create a Customer object and assign information from
    // the form to its fields.
    Customer temp = new Customer ();
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.address = new String (def.address.getText ());
    temp.round = new String (def.round.getText ());
    temp.phone = new String
              (def.phone.getText ());
    // Add a new customer item to the names component.
    names.add (temp.publication + ", " + temp.address);
    // Add the Customer object to the contacts Vector
    // object.
    customers.add (temp);
    // Make sure that the Delete and Update buttons are
    // enabled.
    delete.setEnabled (true);
    update.setEnabled (true);
    // Destroy the dialog box.
    def.dispose ();
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ===========================================================
    // Load all customers from customers.dat into the customers
    // Vector object. Also, make sure that the last name/first
    // name from each contact is combined into a String object and
    // inserted into the names component - as a contact item.
    // ===========================================================
    private void loadCustomers ()
    FileInputStream fis = null;
    try
    fis = new FileInputStream ("customers.dat");
    DataInputStream dis = new DataInputStream (fis);
    int nCustomers = dis.readInt ();
    for (int i = 0; i < nCustomers; i++)
    Customer temp = new Customer ();
    temp.name = dis.readUTF ();
    temp.publication = dis.readUTF ();
    temp.address = dis.readUTF ();
    temp.round = dis.readUTF ();
    temp.phone = dis.readUTF ();
    names.add (temp.publication + ", " + temp.address);
    customers.add (temp);
    if (nCustomers > 0)
    delete.setEnabled (true);
    update.setEnabled (true);
    catch (IOException e)
    finally
    if (fis != null)
    try
    fis.close ();
    catch (IOException e) {}
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ========================================================
    // Save all customer objects from the contacts Vector object
    // to customers.dat. The number of contacts are saved as an
    // int to make it easy for loadCustomers () to do its job.
    // ========================================================
    private void saveCustomers ()
    FileOutputStream fos = null;
    try
    fos = new FileOutputStream ("customers.dat");
    DataOutputStream dos = new DataOutputStream (fos);
    dos.writeInt (customers.size ());
    for (int i = 0; i < customers.size (); i++)
    Customer temp = (Customer) customers.elementAt (i);
    dos.writeUTF (temp.name);
    dos.writeUTF (temp.publication);
    dos.writeUTF (temp.address);
    dos.writeUTF (temp.round);
    dos.writeUTF (temp.phone);
    catch (IOException e)
    MsgBox mb = new MsgBox (this, "PP Error",
    e.toString ());
    mb.dispose ();
    finally
    if (fos != null)
    try
    fos.close ();
    catch (IOException e) {}
    private void update ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a customer if no customer item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Obtain a reference to the Customer object (from the
    // customer Vector object) that is associated with the
    // index.
    Customer temp = (Customer) customers.elementAt (index);
    // Create and display an update entry form.
    DataEntryForm def = new DataEntryForm (this, "Update",
    temp.name,
    temp.publication,
    temp.address,
    temp.round,
    temp.phone);
    // If the user pressed Ok...
    if (def.bOk)
    // Update the customer information in the customers
    // Vector object.
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.address = new String (def.address.getText ());
    temp.round = new String (def.round.getText ());
    temp.phone = new String (def.phone.getText ());
    // Make sure the screen reflects the update.
    names.replaceItem (temp.publication + ", " + temp.address,
    index);
    // Destroy the dialog box.
    def.dispose ();
    // Make sure that the first customer item in the names
    // list is highlighted.
    names.select (0);
    // ========================================================
    // Class: Customer
    // This class describes the contents of a business customer.
    // ========================================================
    class Customer
    public String name;
    public String publication;
    public String address;
    public String round;
    public String phone;
    // ==========================================================
    // Class: DataEntryForm
    // This class provides a data entry form for entering customer
    // information.
    // ==========================================================
    class DataEntryForm extends JDialog implements ActionListener
    // bOk is a boolean flag. When true, it indicates that
    // the Ok button was pressed to terminate the dialog box
    // (as opposed to the Cancel button).
    public boolean bOk;
    // The following components hold the text that the user
    // entered into the visible text fields.
    public JTextField name;
    public JTextField publication;
    public JTextField address;
    public JTextField round;
    public JTextField phone;
    public void actionPerformed (ActionEvent e)
    // If the user pressed the Ok button, indicate this
    // by assigning true to bOk.
    if (e.getActionCommand ().equals ("Ok"))
    bOk = true;
    // Destroy the dialog box and return to the point
    // just after the creation of the DataEntryForm object.
    dispose ();
    public DataEntryForm (JFrame parent, String title)
    // Call the other constructor. The current constructor
    // is used for insert operations. The other constructor
    // is used for update operations.
    this (parent, title, "", "", "", "", "");
    public DataEntryForm (JFrame parent, String title,
    String name, String publication,
    String address, String round,
    String phone)
    // Initialize the superclass layer.
    super (parent, title, true);
    // Choose a grid bag layout so that components can be more
    // accurately positioned. (It looks nicer.)
    setLayout (new GridBagLayout ());
    // Add appropriate first name, last name, phone, fax, and
    // email components to the current DataEntryForm container.
    // (Remember, DataEntryForm is a subclass of Dialog.
    // Dialog is a container. Therefore, DataEntryForm
    // inherits the ability to be a container.)
    addComponent (this, new JLabel ("Name: "), 0, 0, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.name = new JTextField (15);
    addComponent (this, this.name, 1, 0, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.name.setText (name);
    addComponent (this, new JLabel ("Publications: "), 0, 1, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.publication = new JTextField (15);
    addComponent (this, this.publication, 1, 1, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.publication.setText (publication);
    addComponent (this, new JLabel ("Address "), 0, 2, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.address = new JTextField (15);
    addComponent (this, this.address, 1, 2, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.address.setText (address);
    addComponent (this, new JLabel ("Round No "), 0, 3, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.round = new JTextField (15);
    addComponent (this, this.round, 1, 3, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.round.setText (round);
    addComponent (this, new JLabel ("Phone Number "), 0, 4, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.phone = new JTextField (15);
    addComponent (this, this.phone, 1, 4, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.phone.setText (phone);
    addComponent (this, new JLabel (""), 0, 5, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    addComponent (this, new JLabel (""), 1, 5, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    JButton b;
    // Add an Ok button to this container.
    addComponent (this, b = new JButton ("Ok"), 0, 6, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    b.addActionListener (this);
    // Add a Cancel button to this container.
    addComponent (this, b = new JButton ("Cancel"), 1, 6, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    b.addActionListener (this);
    // Set the size of the dialog window to 250 pixels
    // horizontally by 200 pixels vertically.
    setSize (250, 200);
    // Do not allow users to resize the dialog window.
    setResizable (false);
    // Make sure that the dialog window is visible.
    setVisible (true);
    private void addComponent (Container con, Component com,
    int gridx, int gridy,
    int gridw, int gridh, int fill,
    int anchor)
    // Get the current layout manager. It is assumed to
    // be a GridBagLayout object.
    LayoutManager lm = con.getLayout ();
    // Create a GridBagConstraints object to make it
    // possible to customize component positioning.
    GridBagConstraints gbc = new GridBagConstraints ();
    // Assign the x and y grid positions.
    gbc.gridx = gridx;
    gbc.gridy = gridy;
    // Assign the number of grid blocks horizontally and
    // vertically that are occupied by the component.
    gbc.gridwidth = gridw;
    gbc.gridheight = gridh;
    // Specify the component's resize policy (fill) and
    // the direction in which the component is positioned
    // when its size is smaller than available space (anchor).
    gbc.fill = fill;
    gbc.anchor = anchor;
    // Set the new constraints that the grid bag layout
    // manager will use.
    ((GridBagLayout) lm).setConstraints (com, gbc);
    // Add the component to the container.
    con.add (com);
    // ===========================================================
    // Class: MsgBox
    // This class displays a message box to the user. The message
    // is usually an error message. The user must press the Ok
    // button to terminate the message box.
    // ===========================================================
    class MsgBox extends JDialog implements ActionListener
    public void actionPerformed (ActionEvent e)
    // Terminate the dialog box in response to the user
    // pressing the Ok button.
    dispose ();
    public MsgBox (JFrame parent, String title, String msg)
    // Initialize the superclass layer.
    super (parent, title, true);
    // Store the msg argument in a Label object and add
    // this object to the center part of the dialog window.
    JLabel l = new JLabel (msg);
    add ("Center", l);
    // Create a Button object and add it to the south part
    // of the dialog window.
    JButton b = new JButton ("Ok");
    add ("South", b);
    // Make the current object a listener to events that
    // occur as a result of the user pressing the Ok
    // button.
    b.addActionListener (this);
    // Make sure that the Ok button has the focus.
    b.requestFocus ();
    // Do not allow users to resize the dialog window.
    setResizable (false);
    // Allow the layout manager to choose an appropriate
    // size for the dialog window.
    pack ();
    // Make sure that the dialog window is visible.
    setVisible (true);
    }

  • PE2 - What's the difference between "cut" and "clear" in Project Assets?

    When removing items from the Project Assets area, what's the difference between "cut" and "clear"?
    Also I believe "delete" is an option at times, but I couldn't replicate it.

    Cut should Delete, but transfer that Clip to the Clipboard, where Clear will just Delete it completely - no transfer to Clipboard.
    That can be tested by doing a Cut, then move the CTI (Current Timeline Indicator) to the end of the Timeline, and hit Ctrl+V (Paste). That Deleted Clip should appear after the CTI.
    Then, clear (or choose a different Clip) the Clipboard, and try Clear. It should not Paste the Clip into the Timeline.
    Good luck,
    Hunt

  • Difference between Insert and Insert all

    Hi,
    I tried to understand what INSERT ALL syntax is doing, but I cannot find any difference between INSERT and INSERT ALL.
    I replicated the test scenario using the data from the below mentioned URL:
    http://psoug.org/reference/insert.html
    I also did a google on finding up the difference between them, but could not find any...
    Please advice if both are same as I have planned to use INSERT statement with a WHEN clause if INSERT ALL is same as INSERT.
    Thanks!

    Hello
    The key difference is that INSERT ALL will allow you to insert into multiple different tables in a single statement whereas INSERT will only insert into 1 table. Each of the WHEN clauses allows a different table to be specified.
    SQL> create table t1
      2  (   id  number
      3  )
      4  /
    Table created.
    Elapsed: 00:00:00.01
    SQL> create table t2
      2  (   id  number
      3  )
      4  /
    Table created.
    Elapsed: 00:00:00.00
    SQL> create table t3
      2  (   id  number
      3  )
      4  /
    Table created.
    SQL> INSERT
      2  ALL
      3      WHEN id < 10 THEN
      4          INTO t1 VALUES(id)
      5      WHEN MOD(id,2) = 0 THEN
      6          INTO t2 VALUES(id)
      7      WHEN MOD(id,2) != 0 THEN
      8          INTO t3 VALUES(id)
      9  SELECT
    10      rownum id
    11  FROM
    12      dual
    13  CONNECT BY
    14      LEVEL <=20
    15  /
    29 rows created.
    Elapsed: 00:00:00.01
    SQL> select * from t1;
            ID
             1
             2
             3
             4
             5
             6
             7
             8
             9
    9 rows selected.
    Elapsed: 00:00:00.01
    SQL> select * from t2;
            ID
             2
             4
             6
             8
            10
            12
            14
            16
            18
            20
    10 rows selected.
    Elapsed: 00:00:00.00
    SQL> select * from t3
      2  /
            ID
             1
             3
             5
             7
             9
            11
            13
            15
            17
            19
    10 rows selected.
    Elapsed: 00:00:00.01So you can see that in a single statement, I've inserted all rows with an ID <10 into t1, all even numbered rows into t2 and all odd numbered rows into t3. This was also done with a single pass of the source table - in this case dual.
    David

  • Help me clarify: Difference between Joining and Extending Wireless Network

    I've eventually figured out how to get my AirPort Express to allow my Mac Pro access to the internet Via Ethernet cable by joining an existing wireless network. What's the difference between that and extending it? By extending it I loose my ability to use the ethernet to connect to internet on my Mac Pro. Odd thing is though when I initially used AirPort Utility to set up my AirPort Express, I went through all the options to get it configured to access my existing network and I checked option to allow internet access through ethernet. All is well, but then I still don't have access to the internet through the ethernet and I noticed that the setting is on Extended. Just curious why it would give me the option to use the ethernet, set it on extended and not even work.

    I've eventually figured out how to get my AirPort Express to allow my Mac Pro access to the internet Via Ethernet cable by joining an existing wireless network. What's the difference between that and extending it?
    When "joining a network," the AirPort Express Base Station (AX) acts just like any other wireless client (laptop, desktop, printer, etc.) You would want to configure the AX to join a network when you only want to use it to share a USB printer and/or stream iTunes.
    When "extending a network," the AX can perform as either a main, relay, or remote base station in a Wireless Distribution System (WDS). A WDS is primarily used to extend a network wirelessly.
    By extending it I loose my ability to use the ethernet to connect to internet on my Mac Pro.
    If the AX is configured as either a relay/remote base station in a WDS, you actually can use it's Ethernet port for Internet access. Of course, this relay/remote must be connected to a main base station, that itself, has Internet access.

  • Difference between WRV200 and WRV210

    Dear Cisco
    Can you tell me the main difference between WRV200 and WRV210.
    Another question
    The datasheet said that the WRV200 can run SSL VPN, is that rigth???
    Cisco WRV200 Wireless-G VPN Router: RangeBooster
    Downloads
    Cisco WRV200 Wireless-G VPN Router: RangeBooster
    Secure Wireless Network Access for Small Offices
    Highlights
    • IPsec and SSL VPN connectivity on a single device
    • Built-in 4-port 10/100 Fast Ethernet switch
    • Multiple SSIDs and VLANs provide separate secure networks
    • Simple, browser-based configuration
    Figure 1. Cisco WRV200 Wireless-G VPN Router: RangeBooster

    Do WRV200 support SSL. strange if yes a newer product do not
    Highlights
    • IPsec and SSL VPN connectivity on a single device
    • Built-in 4-port 10/100 Fast Ethernet switch
    • Multiple SSIDs and VLANs provide separate secure networks
    • Simple, browser-based configuration

  • Difference between element and identity based version

    Can anybody tell me the difference between elment and identity based version of the Object with any example? which classes implement them?

    Hunky322 wrote:
    At first it struck me as odd, given how List, Set, and Map define equals, but the part the OP left off clears it up a bit: "..because element-based equality is not always well-defined for queues with the same elements but different ordering properties."This lineSo, you're saying you don't understand the following?
    >
    Queue implementations generally do not define element-based versions of the equals and hashCode methods but instead inherit the identity-based versions from Object because element-based equality is not always well-defined for queues with the same elements but different ordering properties.
    >
    Okay, here's the deal.
    For a List, equals() is true if both Lists contain the same objects and in the same order. That's pretty straightforward, and it makes sense.
    For a Set, equals() is true if both Sets contain the same objects. Order is not considered because Sets are not generally ordered. Again, this it straightforward.
    So, you might think that Queue might define equals in a similar fashion--either if both Queues contain all the same elements, or if they contain all the same elements in the same order. However, this doesn't really work very well. Since ordering is an important part of a Queue, the ordering should be considered for equality. However, unlike Lists, two different Queues containing the same objects might define ordering differently. One might be a FIFO and the other might be a PriorityQueue, so how do you compare those two queues for equality?
    There are no clear-cut rules for equality between two arbitrary Queues, so the Queue interface does not define an equals method that's related to the contents of the Queues.

  • What is the difference between imatch and icloud?

    I purchased Imatch a few months ago-but I do not understand the difference between imatch and icloud.  I have an Ipad, Iphone and appletv and am because I am not Tech Savvy at all, when I googled imatch vs icloud, I was completely overwhelmed with info and just want the basics!!! 
    Thanks guys!

    First, iCloud and iTunes Match (not "iMatch") are not the same thing. Apple uses the term "iCloud" interchangably, but that is just confusing for most people, unfortunately.
    Enabling iTunes Match is as simple pulling down the Store menu in iTunes and selecting "turn on iTunes Match." That's all the guidance there is. The process will then scan the iTunes library and "match" or "upload" all the tracks it can. The original tracks on the computer's internal HDD stay right where they are and are not changed in any way. Nor is the location of the iTunes library magically changed to the cloud.
    I strongly suggest you stop being concerned with what the files in the iTunes Media folder look like and let iTunes manage the files. If you're going to use iTunes then you should only interact with the music through iTunes. Trying to manage the files in the Finder/Windows Explorer is only going to frustrate you. You can group albums together by editing the ID3 tags by highlighting the tracks of an Album and doing a Get Info...
    So if you post back with some specific questions we will do our best to help you.

  • Difference between Null and null?

    What is the difference between null and NULL?
    When is each used?
    Thanks,

    veryConfused wrote:
    There is a null in java, but no NULL. null means no value. However, when assigning value, the following is different:Although the empty String has no special role. Null means, the referential type is not assigned (doesn't refer) to a specific object. The empty String is just another object though, so seeing it or pointing it out as something special when it actually isn't at all (no more special than new Integer(0) or new Object[0]) just adds to the confusion.

Maybe you are looking for