Add WindowBuilder NLS support

This changeset adds back portions of the WindowBuilder NLS support
into the propertysheet library such that the locale chooser etc
can for example use the language flags.

Change-Id: I3fee0c876a1fb57a1747075043c7e10eac9da880
diff --git a/propertysheet/.gitignore b/propertysheet/.gitignore
index fe99505..3826f65 100644
--- a/propertysheet/.gitignore
+++ b/propertysheet/.gitignore
@@ -1,2 +1,6 @@
 bin
-
+*~
+*.bak
+Thumbs.db
+*.class
+*.DS_Store
diff --git a/propertysheet/src/org/eclipse/wb/core/controls/CTableCombo.java b/propertysheet/src/org/eclipse/wb/core/controls/CTableCombo.java
new file mode 100644
index 0000000..407e14b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/core/controls/CTableCombo.java
@@ -0,0 +1,690 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wb.core.controls;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.TypedListener;
+
+import java.util.Locale;
+
+/**
+ * {@link Control} like {@link Combo} or {@link CCombo} that shows {@link Table} with image/text as
+ * drop-down.
+ * 
+ * @author mitin_aa
+ * @author scheglov_ke
+ * @coverage core.control
+ */
+public class CTableCombo extends Composite {
+  protected Button m_arrow;
+  protected CImageLabel m_text;
+  protected Shell m_popup;
+  protected Table m_table;
+  protected boolean hasFocus;
+
+  //
+  public CTableCombo(Composite parent, int style) {
+    super(parent, style = checkStyle(style));
+    init(parent, style);
+  }
+
+  static int checkStyle(int style) {
+    int mask = SWT.BORDER | SWT.READ_ONLY | SWT.FLAT;
+    return style & mask;
+  }
+
+  private void init(Composite parent, int style) {
+    m_arrow = new Button(this, SWT.ARROW | SWT.DOWN | SWT.NO_FOCUS);
+    m_text = new CImageLabel(this, style & ~SWT.BORDER);
+    m_text.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
+    final Shell shell = getShell();
+    m_popup = new Shell(shell, SWT.NONE);
+    m_table = new Table(m_popup, SWT.FULL_SELECTION);
+    new TableColumn(m_table, SWT.NONE);
+    Listener listener = new Listener() {
+      public void handleEvent(Event event) {
+        if (m_popup == event.widget) {
+          handlePopupEvent(event);
+          return;
+        }
+        if (m_text == event.widget) {
+          handleTextEvent(event);
+          return;
+        }
+        if (m_table == event.widget) {
+          handleTableEvent(event);
+          return;
+        }
+        if (m_arrow == event.widget) {
+          handleArrowEvent(event);
+          return;
+        }
+        if (CTableCombo.this == event.widget) {
+          handleComboEvent(event);
+          return;
+        }
+      }
+    };
+    final Listener shellListener = new Listener() {
+      public void handleEvent(Event event) {
+        switch (event.type) {
+          case SWT.Dispose :
+          case SWT.Move :
+          case SWT.Resize :
+            if (!isDisposed()) {
+              dropDown(false);
+            }
+            break;
+        }
+      }
+    };
+    final int[] comboEvents = {SWT.Dispose, SWT.Move, SWT.Resize};
+    for (int i = 0; i < comboEvents.length; i++) {
+      addListener(comboEvents[i], listener);
+      // HACK: hide popup when parent changed
+      shell.addListener(comboEvents[i], shellListener);
+    }
+    addDisposeListener(new DisposeListener() {
+      public void widgetDisposed(DisposeEvent e) {
+        for (int i = 0; i < comboEvents.length; i++) {
+          shell.removeListener(comboEvents[i], shellListener);
+        }
+      }
+    });
+    int[] popupEvents = {SWT.Close, SWT.Paint, SWT.Deactivate};
+    for (int i = 0; i < popupEvents.length; i++) {
+      m_popup.addListener(popupEvents[i], listener);
+    }
+    int[] textEvents =
+        {
+            SWT.KeyDown,
+            SWT.KeyUp,
+            SWT.Modify,
+            SWT.MouseDown,
+            SWT.MouseUp,
+            SWT.MouseDoubleClick,
+            SWT.Traverse,
+            SWT.FocusIn,
+            SWT.FocusOut};
+    for (int i = 0; i < textEvents.length; i++) {
+      m_text.addListener(textEvents[i], listener);
+    }
+    int[] tableEvents =
+        {
+            SWT.MouseUp,
+            SWT.Selection,
+            SWT.Traverse,
+            SWT.KeyDown,
+            SWT.KeyUp,
+            SWT.FocusIn,
+            SWT.FocusOut};
+    for (int i = 0; i < tableEvents.length; i++) {
+      m_table.addListener(tableEvents[i], listener);
+    }
+    int[] arrowEvents = {SWT.Selection, SWT.FocusIn, SWT.FocusOut};
+    for (int i = 0; i < arrowEvents.length; i++) {
+      m_arrow.addListener(arrowEvents[i], listener);
+    }
+  }
+
+  protected void handleTableEvent(Event event) {
+    switch (event.type) {
+      case SWT.FocusIn : {
+        if (hasFocus) {
+          return;
+        }
+        hasFocus = true;
+        Event e = new Event();
+        e.time = event.time;
+        notifyListeners(SWT.FocusIn, e);
+        break;
+      }
+      case SWT.FocusOut : {
+        final int time = event.time;
+        event.display.asyncExec(new Runnable() {
+          public void run() {
+            if (CTableCombo.this.isDisposed()) {
+              return;
+            }
+            Control focusControl = getDisplay().getFocusControl();
+            if (focusControl == m_text || focusControl == m_arrow) {
+              return;
+            }
+            hasFocus = false;
+            Event e = new Event();
+            e.time = time;
+            notifyListeners(SWT.FocusOut, e);
+          }
+        });
+        break;
+      }
+      case SWT.MouseUp : {
+        if (event.button != 1) {
+          return;
+        }
+        dropDown(false);
+        Event e = new Event();
+        e.time = event.time;
+        notifyListeners(SWT.DefaultSelection, e);
+        break;
+      }
+      case SWT.Selection : {
+        int index = m_table.getSelectionIndex();
+        if (index == -1) {
+          return;
+        }
+        TableItem item = m_table.getItem(index);
+        m_text.setText(item.getText());
+        m_text.setImage(item.getImage());
+        //m_text.selectAll();
+        m_table.setSelection(index);
+        Event e = new Event();
+        e.time = event.time;
+        e.stateMask = event.stateMask;
+        e.doit = event.doit;
+        notifyListeners(SWT.Selection, e);
+        event.doit = e.doit;
+        dropDown(false);
+        break;
+      }
+      case SWT.Traverse : {
+        switch (event.detail) {
+          case SWT.TRAVERSE_TAB_NEXT :
+          case SWT.TRAVERSE_RETURN :
+          case SWT.TRAVERSE_ESCAPE :
+          case SWT.TRAVERSE_ARROW_PREVIOUS :
+          case SWT.TRAVERSE_ARROW_NEXT :
+            event.doit = false;
+            break;
+        }
+        Event e = new Event();
+        e.time = event.time;
+        e.detail = event.detail;
+        e.doit = event.doit;
+        e.keyCode = event.keyCode;
+        notifyListeners(SWT.Traverse, e);
+        event.doit = e.doit;
+        break;
+      }
+      case SWT.KeyUp : {
+        Event e = new Event();
+        e.time = event.time;
+        e.character = event.character;
+        e.keyCode = event.keyCode;
+        e.stateMask = event.stateMask;
+        notifyListeners(SWT.KeyUp, e);
+        break;
+      }
+      case SWT.KeyDown : {
+        if (event.character == SWT.ESC) {
+          // escape key cancels popups
+          dropDown(false);
+        }
+        if (event.character == SWT.CR || event.character == '\t') {
+          // Enter and Tab cause default selection
+          dropDown(false);
+          Event e = new Event();
+          e.time = event.time;
+          e.stateMask = event.stateMask;
+          notifyListeners(SWT.DefaultSelection, e);
+        }
+        // At this point the widget may have been disposed.
+        // If so, do not continue.
+        if (isDisposed()) {
+          break;
+        }
+        Event e = new Event();
+        e.time = event.time;
+        e.character = event.character;
+        e.keyCode = event.keyCode;
+        e.stateMask = event.stateMask;
+        notifyListeners(SWT.KeyDown, e);
+        break;
+      }
+    }
+  }
+
+  protected void handlePopupEvent(Event event) {
+    switch (event.type) {
+      case SWT.Paint :
+        // draw black rectangle around list
+        Rectangle listRect = m_table.getBounds();
+        Color black = getDisplay().getSystemColor(SWT.COLOR_BLACK);
+        event.gc.setForeground(black);
+        event.gc.drawRectangle(0, 0, listRect.width + 1, listRect.height + 1);
+        break;
+      case SWT.Close :
+        event.doit = false;
+        dropDown(false);
+        break;
+    }
+  }
+
+  protected void handleComboEvent(Event event) {
+    switch (event.type) {
+      case SWT.Dispose :
+        if (m_popup != null && !m_popup.isDisposed()) {
+          m_popup.dispose();
+        }
+        m_popup = null;
+        m_text = null;
+        m_arrow = null;
+        break;
+      case SWT.Move :
+        dropDown(false);
+        break;
+      case SWT.Resize :
+        internalLayout();
+        break;
+    }
+  }
+
+  protected void handleArrowEvent(Event event) {
+    switch (event.type) {
+      case SWT.FocusIn : {
+        if (hasFocus) {
+          return;
+        }
+        hasFocus = true;
+        Event e = new Event();
+        e.time = event.time;
+        notifyListeners(SWT.FocusIn, e);
+        break;
+      }
+      case SWT.Selection : {
+        boolean wasDropped = isDropped();
+        dropDown(!wasDropped);
+        if (wasDropped) {
+          m_text.forceFocus();
+        }
+        break;
+      }
+    }
+  }
+
+  protected void handleTextEvent(Event event) {
+    switch (event.type) {
+      case SWT.FocusIn : {
+        if (hasFocus) {
+          return;
+        }
+        hasFocus = true;
+        //if (getEditable())
+        Event e = new Event();
+        e.time = event.time;
+        notifyListeners(SWT.FocusIn, e);
+        break;
+      }
+      case SWT.FocusOut : {
+        final int time = event.time;
+        event.display.asyncExec(new Runnable() {
+          public void run() {
+            if (CTableCombo.this.isDisposed()) {
+              return;
+            }
+            Control focusControl = getDisplay().getFocusControl();
+            if (focusControl == m_table
+                || focusControl == m_arrow
+                || focusControl != null
+                && focusControl.getParent() == CTableCombo.this) {
+              return;
+            }
+            hasFocus = false;
+            Event e = new Event();
+            e.time = time;
+            notifyListeners(SWT.FocusOut, e);
+          }
+        });
+        break;
+      }
+      case SWT.KeyDown : {
+        if (event.character == SWT.ESC) { // escape key cancels popup
+          dropDown(false);
+        }
+        if (event.character == SWT.CR) {
+          dropDown(false);
+          Event e = new Event();
+          e.time = event.time;
+          e.stateMask = event.stateMask;
+          notifyListeners(SWT.DefaultSelection, e);
+        }
+        // At this point the widget may have been disposed.
+        // If so, do not continue.
+        if (isDisposed()) {
+          break;
+        }
+        if (event.character == '+') {
+          dropDown(true);
+        }
+        if (isDropped()) {
+          if (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN) {
+            int oldIndex = getSelectionIndex();
+            if (event.keyCode == SWT.ARROW_UP) {
+              select(Math.max(oldIndex - 1, 0));
+            } else {
+              select(Math.min(oldIndex + 1, getItemCount() - 1));
+            }
+            if (oldIndex != getSelectionIndex()) {
+              Event e = new Event();
+              e.time = event.time;
+              e.stateMask = event.stateMask;
+              notifyListeners(SWT.Selection, e);
+            }
+            // At this point the widget may have been disposed.
+            // If so, do not continue.
+            if (isDisposed()) {
+              break;
+            }
+          }
+        }
+        if (Character.isLetter(event.character)) {
+          int oldIndex = getSelectionIndex();
+          int index = -1;
+          for (int i = 0; i < getItemCount(); i++) {
+            String item = getItem(i).toUpperCase(Locale.ENGLISH);
+            if (item.length() != 0 && item.charAt(0) == Character.toUpperCase(event.character)) {
+              index = i;
+              break;
+            }
+          }
+          if (index != -1) {
+            select(Math.max(index, 0));
+            if (oldIndex != getSelectionIndex()) {
+              Event e = new Event();
+              e.time = event.time;
+              e.stateMask = event.stateMask;
+              notifyListeners(SWT.Selection, e);
+            }
+          }
+        }
+        Event e = new Event();
+        e.time = event.time;
+        e.character = event.character;
+        e.keyCode = event.keyCode;
+        e.stateMask = event.stateMask;
+        if (m_text != null && !m_text.isDisposed()) {
+          notifyListeners(SWT.KeyDown, e);
+        }
+        break;
+      }
+      case SWT.KeyUp : {
+        Event e = new Event();
+        e.time = event.time;
+        e.character = event.character;
+        e.keyCode = event.keyCode;
+        e.stateMask = event.stateMask;
+        notifyListeners(SWT.KeyUp, e);
+        break;
+      }
+      case SWT.Modify : {
+        m_table.deselectAll();
+        Event e = new Event();
+        e.time = event.time;
+        notifyListeners(SWT.Modify, e);
+        break;
+      }
+      case SWT.MouseDown : {
+        if (event.button != 1) {
+          return;
+        }
+        m_text.forceFocus();
+        boolean dropped = isDropped();
+        dropDown(!dropped);
+        if (!dropped) {
+          m_text.forceFocus();
+        }
+        break;
+      }
+      case SWT.MouseDoubleClick : {
+        notifyListeners(SWT.MouseDoubleClick, event);
+        break;
+      }
+      case SWT.Traverse : {
+        switch (event.detail) {
+          case SWT.TRAVERSE_RETURN :
+          case SWT.TRAVERSE_ARROW_PREVIOUS :
+          case SWT.TRAVERSE_ARROW_NEXT :
+            // The enter causes default selection and
+            // the arrow keys are used to manipulate the list contents so
+            // do not use them for traversal.
+            event.doit = false;
+            break;
+          case SWT.TRAVERSE_TAB_NEXT :
+          case SWT.TRAVERSE_TAB_PREVIOUS :
+            event.doit = true;
+            break;
+        }
+        Event e = new Event();
+        e.time = event.time;
+        e.detail = event.detail;
+        e.doit = event.doit;
+        e.keyCode = event.keyCode;
+        notifyListeners(SWT.Traverse, e);
+        event.doit = e.doit;
+        break;
+      }
+    }
+  }
+
+  private void dropDown(boolean drop) {
+    if (drop == isDropped()) {
+      return;
+    }
+    if (!drop) {
+      m_popup.setVisible(false);
+      m_text.setFocus();
+      return;
+    }
+    int index = m_table.getSelectionIndex();
+    if (index != -1) {
+      m_table.setTopIndex(index);
+      m_table.setSelection(index);
+    }
+    m_table.pack();
+    Point point = getParent().toDisplay(getLocation());
+    Point comboSize = getSize();
+    //Rectangle tableRect = m_table.getBounds();
+    //int width = Math.max(comboSize.x, tableRect.width + 2);
+    int width = comboSize.x - 1;
+    // only one column 
+    m_table.getColumn(0).setWidth(width - 5);
+    if (!(m_popup.getLayout() instanceof FillLayout)) {
+      m_popup.setLayout(new FillLayout());
+    }
+    int itemCount = m_table.getItemCount();
+    if (itemCount > 20) {
+      itemCount = 20;
+    }
+    int height =
+        Math.min(
+            m_table.getItemHeight() * itemCount + 5,
+            Display.getCurrent().getClientArea().height - point.y - 20);
+    m_popup.setBounds(point.x, point.y + comboSize.y, width, height);
+    m_popup.layout();
+    m_popup.setVisible(true);
+    m_text.setFocus();
+    if (index != -1) {
+      m_table.setTopIndex(index);
+      m_table.setSelection(index);
+    }
+  }
+
+  @Override
+  public Point computeSize(int wHint, int hHint, boolean changed) {
+    checkWidget();
+    int width = 0, height = 0;
+    Point textSize = m_text.computeSize(wHint, SWT.DEFAULT, changed);
+    Point arrowSize = m_arrow.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);
+    int tableWidth;
+    {
+      TableColumn column = m_table.getColumn(0);
+      column.pack();
+      tableWidth = column.getWidth();
+    }
+    //
+    int borderWidth = getBorderWidth();
+    height = Math.max(hHint, Math.max(textSize.y, arrowSize.y) + 2 * borderWidth);
+    width = Math.max(wHint, Math.max(textSize.x + arrowSize.x, tableWidth) + 2 * borderWidth);
+    //
+    return new Point(width, height);
+  }
+
+  private void internalLayout() {
+    if (isDropped()) {
+      dropDown(false);
+    }
+    Rectangle rect = getClientArea();
+    int width = rect.width;
+    int height = rect.height;
+    Point arrowSize = m_arrow.computeSize(SWT.DEFAULT, height);
+    m_text.setBounds(rect.x, rect.y, width - arrowSize.x, height);
+    m_arrow.setBounds(rect.x + width - arrowSize.x, rect.y, arrowSize.x, arrowSize.y);
+  }
+
+  private boolean isDropped() {
+    return m_popup.isVisible();
+  }
+
+  @Override
+  public boolean isFocusControl() {
+    checkWidget();
+    if (m_text.isFocusControl()
+        || m_arrow.isFocusControl()
+        || m_table.isFocusControl()
+        || m_popup.isFocusControl()) {
+      return true;
+    }
+    return super.isFocusControl();
+  }
+
+  public void select(int index) {
+    checkWidget();
+    if (index == -1) {
+      m_table.deselectAll();
+      m_text.setText(""); //$NON-NLS-1$
+      m_text.setImage(null);
+      return;
+    }
+    if (0 <= index && index < m_table.getItemCount()) {
+      if (index != getSelectionIndex()) {
+        TableItem item = m_table.getItem(index);
+        m_text.setText(item.getText());
+        m_text.setImage(item.getImage());
+        m_table.select(index);
+        m_table.showSelection();
+      }
+    }
+  }
+
+  @Override
+  public void setEnabled(boolean enabled) {
+    super.setEnabled(enabled);
+    if (enabled) {
+      m_text.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
+    } else {
+      m_text.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW));
+    }
+  }
+
+  public String getItem(int index) {
+    checkWidget();
+    return m_table.getItem(index).getText();
+  }
+
+  public int getSelectionIndex() {
+    checkWidget();
+    return m_table.getSelectionIndex();
+  }
+
+  public void removeAll() {
+    checkWidget();
+    m_text.setText(""); //$NON-NLS-1$
+    m_text.setImage(null);
+    m_table.removeAll();
+  }
+
+  public int indexOf(String string) {
+    return indexOf(string, 0);
+  }
+
+  public int indexOf(String string, int start) {
+    checkWidget();
+    if (string == null) {
+      return -1;
+    }
+    TableItem[] items = m_table.getItems();
+    for (int i = start; i < items.length; i++) {
+      TableItem item = items[i];
+      if (item.getText().equalsIgnoreCase(string)) {
+        return i;
+      }
+    }
+    return -1;
+  }
+
+  public String getText() {
+    return m_text.getText();
+  }
+
+  public int getItemCount() {
+    checkWidget();
+    return m_table.getItemCount();
+  }
+
+  protected void setText(String string) {
+    m_text.setText(string);
+  }
+
+  protected void setImage(Image image) {
+    m_text.setImage(image);
+  }
+
+  public void add(String text) {
+    add(text, null);
+  }
+
+  public void add(String text, Image image) {
+    checkWidget();
+    TableItem item = new TableItem(m_table, SWT.NONE);
+    item.setText(text);
+    item.setImage(image);
+  }
+
+  public void addSelectionListener(SelectionListener listener) {
+    checkWidget();
+    if (listener == null) {
+      SWT.error(SWT.ERROR_NULL_ARGUMENT);
+    }
+    TypedListener typedListener = new TypedListener(listener);
+    addListener(SWT.Selection, typedListener);
+    addListener(SWT.DefaultSelection, typedListener);
+  }
+}
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java b/propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java
index 564a068..9c6a6ca 100644
--- a/propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java
+++ b/propertysheet/src/org/eclipse/wb/internal/core/DesignerPlugin.java
@@ -208,7 +208,7 @@
         if (image == null) {
             ImageDescriptor descriptor = getImageDescriptor(path);
             if (descriptor != null) {
-                return descriptor.createImage();
+                image = descriptor.createImage();
             }
             sImageCache.put(path, image);
         }
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/add_source.gif b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/add_source.gif
new file mode 100644
index 0000000..10dd73e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/add_source.gif
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/add_source.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/add_source.png
new file mode 100644
index 0000000..34abffb
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/add_source.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/externalize_strings.gif b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/externalize_strings.gif
new file mode 100644
index 0000000..ee1d84b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/externalize_strings.gif
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/externalize_strings_disabled.gif b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/externalize_strings_disabled.gif
new file mode 100644
index 0000000..85eb7b1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/externalize_strings_disabled.gif
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/extstr_wiz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/extstr_wiz.png
new file mode 100644
index 0000000..74ff245
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/extstr_wiz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ad.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ad.png
new file mode 100644
index 0000000..625ca84
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ad.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ae.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ae.png
new file mode 100644
index 0000000..ef3a1ec
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ae.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/af.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/af.png
new file mode 100644
index 0000000..a4742e2
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/af.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ag.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ag.png
new file mode 100644
index 0000000..556d550
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ag.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ai.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ai.png
new file mode 100644
index 0000000..74ed29d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ai.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/al.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/al.png
new file mode 100644
index 0000000..92354cb
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/al.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/am.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/am.png
new file mode 100644
index 0000000..344a2a8
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/am.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/an.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/an.png
new file mode 100644
index 0000000..633e4b8
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/an.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ao.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ao.png
new file mode 100644
index 0000000..bcbd1d6
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ao.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ar.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ar.png
new file mode 100644
index 0000000..e5ef8f1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ar.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/as.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/as.png
new file mode 100644
index 0000000..32f30e4
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/as.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/at.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/at.png
new file mode 100644
index 0000000..0f15f34
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/at.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/au.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/au.png
new file mode 100644
index 0000000..a01389a
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/au.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/aw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/aw.png
new file mode 100644
index 0000000..a3579c2
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/aw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ax.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ax.png
new file mode 100644
index 0000000..1eea80a
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ax.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/az.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/az.png
new file mode 100644
index 0000000..4ee9fe5
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/az.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ba.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ba.png
new file mode 100644
index 0000000..c774992
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ba.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bb.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bb.png
new file mode 100644
index 0000000..0df19c7
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bb.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bd.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bd.png
new file mode 100644
index 0000000..076a8bf
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bd.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/be.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/be.png
new file mode 100644
index 0000000..d86ebc8
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/be.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bf.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bf.png
new file mode 100644
index 0000000..ab5ce8f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bf.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bg.png
new file mode 100644
index 0000000..0469f06
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bh.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bh.png
new file mode 100644
index 0000000..ea8ce68
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bh.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bi.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bi.png
new file mode 100644
index 0000000..5cc2e30
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bi.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bj.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bj.png
new file mode 100644
index 0000000..1cc8b45
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bj.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bm.png
new file mode 100644
index 0000000..c0c7aea
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bn.png
new file mode 100644
index 0000000..8fb0984
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bo.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bo.png
new file mode 100644
index 0000000..ce7ba52
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bo.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/br.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/br.png
new file mode 100644
index 0000000..9b1a553
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/br.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bs.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bs.png
new file mode 100644
index 0000000..639fa6c
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bs.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bt.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bt.png
new file mode 100644
index 0000000..1d512df
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bt.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bv.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bv.png
new file mode 100644
index 0000000..160b6b5
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bv.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bw.png
new file mode 100644
index 0000000..fcb1039
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/by.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/by.png
new file mode 100644
index 0000000..504774e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/by.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bz.png
new file mode 100644
index 0000000..be63ee1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/bz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ca.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ca.png
new file mode 100644
index 0000000..1f20419
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ca.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/catalonia.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/catalonia.png
new file mode 100644
index 0000000..5041e30
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/catalonia.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cc.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cc.png
new file mode 100644
index 0000000..aed3d3b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cc.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cd.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cd.png
new file mode 100644
index 0000000..5e48942
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cd.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cf.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cf.png
new file mode 100644
index 0000000..da687bd
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cf.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cg.png
new file mode 100644
index 0000000..a859792
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ch.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ch.png
new file mode 100644
index 0000000..242ec01
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ch.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ci.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ci.png
new file mode 100644
index 0000000..3f2c62e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ci.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ck.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ck.png
new file mode 100644
index 0000000..746d3d6
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ck.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cl.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cl.png
new file mode 100644
index 0000000..29c6d61
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cl.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cm.png
new file mode 100644
index 0000000..f65c5bd
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cn.png
new file mode 100644
index 0000000..8914414
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/co.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/co.png
new file mode 100644
index 0000000..a118ff4
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/co.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cr.png
new file mode 100644
index 0000000..c7a3731
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cs.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cs.png
new file mode 100644
index 0000000..8254790
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cs.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cu.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cu.png
new file mode 100644
index 0000000..083f1d6
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cu.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cv.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cv.png
new file mode 100644
index 0000000..a63f7ea
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cv.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cx.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cx.png
new file mode 100644
index 0000000..48e31ad
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cx.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cy.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cy.png
new file mode 100644
index 0000000..5b1ad6c
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cy.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cz.png
new file mode 100644
index 0000000..c8403dd
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/cz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/de.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/de.png
new file mode 100644
index 0000000..ac4a977
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/de.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dj.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dj.png
new file mode 100644
index 0000000..582af36
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dj.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dk.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dk.png
new file mode 100644
index 0000000..e2993d3
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dk.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dm.png
new file mode 100644
index 0000000..5fbffcb
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/do.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/do.png
new file mode 100644
index 0000000..5a04932
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/do.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dz.png
new file mode 100644
index 0000000..335c239
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/dz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ec.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ec.png
new file mode 100644
index 0000000..0caa0b1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ec.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ee.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ee.png
new file mode 100644
index 0000000..0c82efb
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ee.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/eg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/eg.png
new file mode 100644
index 0000000..8a3f7a1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/eg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/eh.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/eh.png
new file mode 100644
index 0000000..90a1195
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/eh.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/england.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/england.png
new file mode 100644
index 0000000..3a7311d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/england.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/er.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/er.png
new file mode 100644
index 0000000..13065ae
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/er.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/es.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/es.png
new file mode 100644
index 0000000..c2de2d7
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/es.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/et.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/et.png
new file mode 100644
index 0000000..2e893fa
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/et.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/europeanunion.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/europeanunion.png
new file mode 100644
index 0000000..d6d8711
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/europeanunion.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fam.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fam.png
new file mode 100644
index 0000000..cf50c75
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fam.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fi.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fi.png
new file mode 100644
index 0000000..14ec091
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fi.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fj.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fj.png
new file mode 100644
index 0000000..cee9988
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fj.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fk.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fk.png
new file mode 100644
index 0000000..ceaeb27
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fk.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/flag_empty.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/flag_empty.png
new file mode 100644
index 0000000..5c00ce1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/flag_empty.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fm.png
new file mode 100644
index 0000000..066bb24
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fo.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fo.png
new file mode 100644
index 0000000..cbceb80
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fo.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fr.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/fr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ga.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ga.png
new file mode 100644
index 0000000..0e0d434
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ga.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gb.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gb.png
new file mode 100644
index 0000000..ff701e1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gb.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gd.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gd.png
new file mode 100644
index 0000000..9ab57f5
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gd.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ge.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ge.png
new file mode 100644
index 0000000..728d970
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ge.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gf.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gf.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gf.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gh.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gh.png
new file mode 100644
index 0000000..4e2f896
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gh.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gi.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gi.png
new file mode 100644
index 0000000..e76797f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gi.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gl.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gl.png
new file mode 100644
index 0000000..ef12a73
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gl.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gm.png
new file mode 100644
index 0000000..0720b66
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gn.png
new file mode 100644
index 0000000..ea660b0
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gp.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gp.png
new file mode 100644
index 0000000..dbb086d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gp.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gq.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gq.png
new file mode 100644
index 0000000..ebe20a2
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gq.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gr.png
new file mode 100644
index 0000000..8651ade
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gs.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gs.png
new file mode 100644
index 0000000..7ef0bf5
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gs.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gt.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gt.png
new file mode 100644
index 0000000..c43a70d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gt.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gu.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gu.png
new file mode 100644
index 0000000..92f37c0
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gu.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gw.png
new file mode 100644
index 0000000..b37bcf0
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gy.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gy.png
new file mode 100644
index 0000000..22cbe2f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/gy.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hk.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hk.png
new file mode 100644
index 0000000..d5c380c
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hk.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hm.png
new file mode 100644
index 0000000..a01389a
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hn.png
new file mode 100644
index 0000000..96f8388
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hr.png
new file mode 100644
index 0000000..696b515
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ht.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ht.png
new file mode 100644
index 0000000..416052a
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ht.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hu.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hu.png
new file mode 100644
index 0000000..7baafe4
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/hu.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/id.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/id.png
new file mode 100644
index 0000000..c6bc0fa
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/id.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ie.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ie.png
new file mode 100644
index 0000000..26baa31
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ie.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/il.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/il.png
new file mode 100644
index 0000000..2ca772d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/il.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/in.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/in.png
new file mode 100644
index 0000000..e4d7e81
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/in.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/io.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/io.png
new file mode 100644
index 0000000..3e74b6a
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/io.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/iq.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/iq.png
new file mode 100644
index 0000000..878a351
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/iq.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ir.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ir.png
new file mode 100644
index 0000000..c5fd136
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ir.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/is.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/is.png
new file mode 100644
index 0000000..b8f6d0f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/is.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/it.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/it.png
new file mode 100644
index 0000000..89692f7
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/it.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jm.png
new file mode 100644
index 0000000..7be119e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jo.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jo.png
new file mode 100644
index 0000000..11bd497
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jo.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jp.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jp.png
new file mode 100644
index 0000000..325fbad
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/jp.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ke.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ke.png
new file mode 100644
index 0000000..51879ad
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ke.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kg.png
new file mode 100644
index 0000000..0a818f6
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kh.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kh.png
new file mode 100644
index 0000000..30f6bb1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kh.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ki.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ki.png
new file mode 100644
index 0000000..2dcce4b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ki.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/km.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/km.png
new file mode 100644
index 0000000..812b2f5
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/km.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kn.png
new file mode 100644
index 0000000..febd5b4
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kp.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kp.png
new file mode 100644
index 0000000..d3d509a
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kp.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kr.png
new file mode 100644
index 0000000..9c0a78e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kw.png
new file mode 100644
index 0000000..96546da
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ky.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ky.png
new file mode 100644
index 0000000..15c5f8e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ky.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kz.png
new file mode 100644
index 0000000..45a8c88
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/kz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/la.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/la.png
new file mode 100644
index 0000000..e28acd0
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/la.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lb.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lb.png
new file mode 100644
index 0000000..d0d452b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lb.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lc.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lc.png
new file mode 100644
index 0000000..a47d065
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lc.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/li.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/li.png
new file mode 100644
index 0000000..6469909
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/li.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lk.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lk.png
new file mode 100644
index 0000000..088aad6
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lk.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lr.png
new file mode 100644
index 0000000..89a5bc7
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ls.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ls.png
new file mode 100644
index 0000000..33fdef1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ls.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lt.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lt.png
new file mode 100644
index 0000000..c8ef0da
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lt.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lu.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lu.png
new file mode 100644
index 0000000..4cabba9
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lu.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lv.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lv.png
new file mode 100644
index 0000000..49b6998
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/lv.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ly.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ly.png
new file mode 100644
index 0000000..b163a9f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ly.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ma.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ma.png
new file mode 100644
index 0000000..f386770
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ma.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mc.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mc.png
new file mode 100644
index 0000000..1aa830f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mc.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/md.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/md.png
new file mode 100644
index 0000000..4e92c18
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/md.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/me.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/me.png
new file mode 100644
index 0000000..ac72535
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/me.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mg.png
new file mode 100644
index 0000000..d2715b3
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mh.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mh.png
new file mode 100644
index 0000000..fb523a8
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mh.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mk.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mk.png
new file mode 100644
index 0000000..db173aa
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mk.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ml.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ml.png
new file mode 100644
index 0000000..2cec8ba
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ml.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mm.png
new file mode 100644
index 0000000..f464f67
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mn.png
new file mode 100644
index 0000000..9396355
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mo.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mo.png
new file mode 100644
index 0000000..deb801d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mo.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mp.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mp.png
new file mode 100644
index 0000000..298d588
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mp.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mq.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mq.png
new file mode 100644
index 0000000..010143b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mq.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mr.png
new file mode 100644
index 0000000..319546b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ms.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ms.png
new file mode 100644
index 0000000..d4cbb43
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ms.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mt.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mt.png
new file mode 100644
index 0000000..00af948
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mt.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mu.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mu.png
new file mode 100644
index 0000000..b7fdce1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mu.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mv.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mv.png
new file mode 100644
index 0000000..5073d9e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mv.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mw.png
new file mode 100644
index 0000000..13886e9
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mx.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mx.png
new file mode 100644
index 0000000..5bc58ab
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mx.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/my.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/my.png
new file mode 100644
index 0000000..9034cba
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/my.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mz.png
new file mode 100644
index 0000000..76405e0
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/mz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/na.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/na.png
new file mode 100644
index 0000000..63358c6
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/na.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nc.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nc.png
new file mode 100644
index 0000000..2cad283
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nc.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ne.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ne.png
new file mode 100644
index 0000000..d85f424
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ne.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nf.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nf.png
new file mode 100644
index 0000000..f9bcdda
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nf.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ng.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ng.png
new file mode 100644
index 0000000..3eea2e0
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ng.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ni.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ni.png
new file mode 100644
index 0000000..3969aaa
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ni.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nl.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nl.png
new file mode 100644
index 0000000..fe44791
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nl.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/no.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/no.png
new file mode 100644
index 0000000..160b6b5
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/no.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/np.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/np.png
new file mode 100644
index 0000000..aeb058b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/np.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nr.png
new file mode 100644
index 0000000..705fc33
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nu.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nu.png
new file mode 100644
index 0000000..c3ce4ae
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nu.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nz.png
new file mode 100644
index 0000000..10d6306
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/nz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/om.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/om.png
new file mode 100644
index 0000000..2ffba7e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/om.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pa.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pa.png
new file mode 100644
index 0000000..9b2ee9a
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pa.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pe.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pe.png
new file mode 100644
index 0000000..62a0497
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pe.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pf.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pf.png
new file mode 100644
index 0000000..771a0f6
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pf.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pg.png
new file mode 100644
index 0000000..10d6233
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ph.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ph.png
new file mode 100644
index 0000000..b89e159
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ph.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pk.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pk.png
new file mode 100644
index 0000000..e9df70c
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pk.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pl.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pl.png
new file mode 100644
index 0000000..d413d01
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pl.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pm.png
new file mode 100644
index 0000000..ba91d2c
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pn.png
new file mode 100644
index 0000000..aa9344f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pr.png
new file mode 100644
index 0000000..82d9130
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ps.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ps.png
new file mode 100644
index 0000000..f5f5477
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ps.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pt.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pt.png
new file mode 100644
index 0000000..ece7980
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pt.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pw.png
new file mode 100644
index 0000000..6178b25
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/pw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/py.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/py.png
new file mode 100644
index 0000000..cb8723c
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/py.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/qa.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/qa.png
new file mode 100644
index 0000000..ed4c621
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/qa.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/re.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/re.png
new file mode 100644
index 0000000..8332c4e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/re.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ro.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ro.png
new file mode 100644
index 0000000..57e74a6
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ro.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/rs.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/rs.png
new file mode 100644
index 0000000..9439a5b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/rs.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ru.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ru.png
new file mode 100644
index 0000000..47da421
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ru.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/rw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/rw.png
new file mode 100644
index 0000000..5356491
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/rw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sa.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sa.png
new file mode 100644
index 0000000..b4641c7
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sa.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sb.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sb.png
new file mode 100644
index 0000000..a9937cc
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sb.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sc.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sc.png
new file mode 100644
index 0000000..39ee371
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sc.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/scotland.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/scotland.png
new file mode 100644
index 0000000..a0e57b4
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/scotland.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sd.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sd.png
new file mode 100644
index 0000000..eaab69e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sd.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/se.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/se.png
new file mode 100644
index 0000000..1994653
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/se.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sg.png
new file mode 100644
index 0000000..dd34d61
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sh.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sh.png
new file mode 100644
index 0000000..4b1d2a2
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sh.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/si.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/si.png
new file mode 100644
index 0000000..bb1476f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/si.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sj.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sj.png
new file mode 100644
index 0000000..160b6b5
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sj.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sk.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sk.png
new file mode 100644
index 0000000..7ccbc82
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sk.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sl.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sl.png
new file mode 100644
index 0000000..12d812d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sl.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sm.png
new file mode 100644
index 0000000..3df2fdc
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sn.png
new file mode 100644
index 0000000..eabb71d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/so.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/so.png
new file mode 100644
index 0000000..4a1ea4b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/so.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sr.png
new file mode 100644
index 0000000..5eff927
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/st.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/st.png
new file mode 100644
index 0000000..2978557
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/st.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sv.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sv.png
new file mode 100644
index 0000000..2498799
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sv.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sy.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sy.png
new file mode 100644
index 0000000..f5ce30d
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sy.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sz.png
new file mode 100644
index 0000000..914ee86
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/sz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tc.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tc.png
new file mode 100644
index 0000000..8fc1156
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tc.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/td.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/td.png
new file mode 100644
index 0000000..667f21f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/td.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tf.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tf.png
new file mode 100644
index 0000000..80529a4
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tf.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tg.png
new file mode 100644
index 0000000..3aa00ad
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/th.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/th.png
new file mode 100644
index 0000000..dd8ba91
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/th.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tj.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tj.png
new file mode 100644
index 0000000..617bf64
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tj.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tk.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tk.png
new file mode 100644
index 0000000..67b8c8c
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tk.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tl.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tl.png
new file mode 100644
index 0000000..77da181
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tl.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tm.png
new file mode 100644
index 0000000..828020e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tn.png
new file mode 100644
index 0000000..183cdd3
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/to.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/to.png
new file mode 100644
index 0000000..f89b8ba
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/to.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tr.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tr.png
new file mode 100644
index 0000000..be32f77
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tr.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tt.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tt.png
new file mode 100644
index 0000000..2a11c1e
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tt.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tv.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tv.png
new file mode 100644
index 0000000..28274c5
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tv.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tw.png
new file mode 100644
index 0000000..f31c654
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tz.png
new file mode 100644
index 0000000..c00ff79
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/tz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ua.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ua.png
new file mode 100644
index 0000000..09563a2
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ua.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ug.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ug.png
new file mode 100644
index 0000000..33f4aff
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ug.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/um.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/um.png
new file mode 100644
index 0000000..c1dd965
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/um.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/us.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/us.png
new file mode 100644
index 0000000..10f451f
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/us.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/uy.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/uy.png
new file mode 100644
index 0000000..31d948a
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/uy.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/uz.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/uz.png
new file mode 100644
index 0000000..fef5dc1
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/uz.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/va.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/va.png
new file mode 100644
index 0000000..b31eaf2
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/va.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vc.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vc.png
new file mode 100644
index 0000000..8fa17b0
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vc.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ve.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ve.png
new file mode 100644
index 0000000..00c90f9
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ve.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vg.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vg.png
new file mode 100644
index 0000000..4156907
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vg.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vi.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vi.png
new file mode 100644
index 0000000..ed26915
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vi.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vn.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vn.png
new file mode 100644
index 0000000..ec7cd48
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vn.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vu.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vu.png
new file mode 100644
index 0000000..b3397bc
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/vu.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/wales.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/wales.png
new file mode 100644
index 0000000..e0d7cee
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/wales.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/wf.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/wf.png
new file mode 100644
index 0000000..9f95587
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/wf.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ws.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ws.png
new file mode 100644
index 0000000..c169508
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ws.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ye.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ye.png
new file mode 100644
index 0000000..468dfad
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/ye.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/yt.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/yt.png
new file mode 100644
index 0000000..c298f37
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/yt.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/za.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/za.png
new file mode 100644
index 0000000..57c58e2
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/za.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/zm.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/zm.png
new file mode 100644
index 0000000..c25b07b
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/zm.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/zw.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/zw.png
new file mode 100644
index 0000000..53c9725
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/flags/zw.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/globe3.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/globe3.png
new file mode 100644
index 0000000..9991031
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/globe3.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/ms16.png b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/ms16.png
new file mode 100644
index 0000000..fd46156
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/ms16.png
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/property.gif b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/property.gif
new file mode 100644
index 0000000..b512915
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/icons/nls/property.gif
Binary files differ
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocaleInfo.java b/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocaleInfo.java
new file mode 100644
index 0000000..0403351
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocaleInfo.java
@@ -0,0 +1,190 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wb.internal.core.nls.model;
+
+import java.util.Locale;
+
+/**
+ * Information about {@link Locale}.
+ *
+ * We separate {@link LocaleInfo} from {@link BundleInfo} because {@link BundleInfo} is wrapper for
+ * single *.properties file and we support more than one source of bundles in one
+ * {@link CompilationUnit}.
+ *
+ * @author scheglov_ke
+ * @coverage core.nls
+ */
+public final class LocaleInfo implements Comparable<LocaleInfo> {
+  /**
+   * The default {@link LocaleInfo}.
+   */
+  public static final LocaleInfo DEFAULT = new LocaleInfo(null);
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Instance fields
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  private final Locale m_locale;
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Constructor
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  public LocaleInfo(Locale locale) {
+    m_locale = locale;
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Object
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  @Override
+  public String toString() {
+    return getTitle();
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj == this) {
+      return true;
+    }
+    if (obj instanceof LocaleInfo) {
+      LocaleInfo localeInfo = (LocaleInfo) obj;
+      if (isDefault()) {
+        return localeInfo.isDefault();
+      }
+      return m_locale.equals(localeInfo.m_locale);
+    }
+    return false;
+  }
+
+  @Override
+  public int hashCode() {
+    if (isDefault()) {
+      return 0;
+    }
+    return m_locale.hashCode();
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Comparable
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  @Override
+public int compareTo(LocaleInfo o) {
+    if (m_locale == null) {
+      if (o.m_locale == null) {
+        return 0;
+      }
+      return -1;
+    }
+    if (o.m_locale == null) {
+      return 1;
+    }
+    String localeNameA = m_locale.toString();
+    String localeNameB = o.m_locale.toString();
+    return localeNameA.compareTo(localeNameB);
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Access
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  /**
+   * @return {@link Locale} for this {@link LocaleInfo}.
+   */
+  public Locale getLocale() {
+    return m_locale;
+  }
+
+  /**
+   * @return <code>true</code> if that {@link Locale} is default.
+   */
+  public boolean isDefault() {
+    return m_locale == null;
+  }
+
+  /**
+   * @return the title to display in UI.
+   */
+  public String getTitle() {
+    if (isDefault()) {
+      return "(default)";
+    }
+    return m_locale.toString();
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Utils
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  /**
+   * @return the "parent" {@link LocaleInfo} from given array.<br>
+   *         Here "parent" is locale that is more general than current one.<br>
+   *         For example "parent" locale for 'ru_RU' is 'ru'.
+   *
+   *         If there are no parent locale in array, return default locale.<br>
+   */
+  public LocaleInfo getParent(LocaleInfo locales[]) {
+    String localeName = m_locale.toString();
+    int lastSeparatorIndex = localeName.lastIndexOf('_');
+    if (lastSeparatorIndex != -1) {
+      String parentLocaleName = localeName.substring(0, lastSeparatorIndex);
+      // try to find locale with parent name
+      for (LocaleInfo locale : locales) {
+        if (locale.getLocale() != null && locale.getLocale().toString().equals(parentLocaleName)) {
+          return locale;
+        }
+      }
+    }
+    // use default
+    return LocaleInfo.DEFAULT;
+  }
+
+  /**
+   * @param localeName
+   *          the name of locale, such as "en" or "ru_RU".
+   * @param localeDescription
+   *          the description of {@link Locale}, used in exception.
+   * @return the {@link LocaleInfo} which wraps {@link Locale}.
+   */
+  public static LocaleInfo create(String localeName, String localeDescription) {
+    // try to find locale in list of available locales
+    Locale[] locales = Locale.getAvailableLocales();
+    for (int i = 0; i < locales.length; i++) {
+      Locale locale = locales[i];
+      if (locale.toString().equals(localeName)) {
+        return new LocaleInfo(locale);
+      }
+    }
+    // try to create new, this constructor is since 1.4, so do this in try/catch
+    try {
+      Locale locale;
+      int separatorIndex = localeName.indexOf('_');
+      if (separatorIndex != -1) {
+        String language = localeName.substring(0, separatorIndex);
+        String country = localeName.substring(separatorIndex + 1);
+        locale = new Locale(language, country);
+      } else {
+        locale = new Locale(localeName);
+      }
+      return new LocaleInfo(locale);
+    } catch (Throwable e) {
+      String msg = "Locale not found for " + localeDescription;
+      throw new IllegalArgumentException(msg);
+    }
+  }
+}
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocalePartInfo.java b/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocalePartInfo.java
new file mode 100644
index 0000000..9278979
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocalePartInfo.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wb.internal.core.nls.model;
+
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * Information about part of Locale - language or country.
+ * 
+ * @author scheglov_ke
+ * @coverage core.nls
+ */
+public final class LocalePartInfo implements Comparable<LocalePartInfo> {
+  private final String m_name;
+  private final String m_displayName;
+  private final Image m_flagImage;
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Constructor
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  public LocalePartInfo(String name, String displayName, Image flagImage) {
+    m_name = name;
+    m_displayName = displayName;
+    m_flagImage = flagImage;
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Access
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  public String getName() {
+    return m_name;
+  }
+
+  public Image getFlagImage() {
+    return m_flagImage;
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Object
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  @Override
+  public String toString() {
+    if (m_name.length() == 0) {
+      return m_displayName;
+    }
+    return m_name + " - " + m_displayName;
+  }
+
+  @Override
+  public int hashCode() {
+    return m_name.hashCode();
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    return obj instanceof LocalePartInfo && m_name.equals(((LocalePartInfo) obj).m_name);
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Comparable
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  public int compareTo(LocalePartInfo o) {
+    return m_name.compareTo(o.m_name);
+  }
+}
\ No newline at end of file
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocalePartInfos.java b/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocalePartInfos.java
new file mode 100644
index 0000000..68f9097
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/nls/model/LocalePartInfos.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wb.internal.core.nls.model;
+
+import com.google.common.collect.Sets;
+
+import org.eclipse.wb.internal.core.nls.ui.FlagImagesRepository;
+
+import org.eclipse.swt.graphics.Image;
+
+import java.util.Arrays;
+import java.util.Locale;
+import java.util.Set;
+
+/**
+ * Utilities for {@link LocaleInfo}.
+ * 
+ * @author scheglov_ke
+ * @coverage core.nls
+ */
+public final class LocalePartInfos {
+  private static LocalePartInfo m_languages[];
+  private static LocalePartInfo m_countries[];
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Access
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  public static LocalePartInfo[] getLanguages() {
+    initLanguagesAndCountries();
+    return m_languages;
+  }
+
+  public static LocalePartInfo[] getCountries() {
+    initLanguagesAndCountries();
+    return m_countries;
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Find items
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  public static int indexByName(LocalePartInfo[] parts, String name) {
+    for (int i = 0; i < parts.length; i++) {
+      LocalePartInfo part = parts[i];
+      if (part.getName().equals(name)) {
+        return i;
+      }
+    }
+    return -1;
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Initialization
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  /**
+   * Prepare arrays of all available languages and countries with titles and flags.
+   */
+  private static void initLanguagesAndCountries() {
+    if (m_languages == null) {
+      // languages
+      {
+        Set<LocalePartInfo> languagesSet = Sets.newHashSet();
+        // fill
+        for (String language : Locale.getISOLanguages()) {
+          Locale locale = new Locale(language);
+          Image flagImage = FlagImagesRepository.getFlagImage(locale);
+          languagesSet.add(new LocalePartInfo(locale.getLanguage(),
+              locale.getDisplayLanguage(),
+              flagImage));
+        }
+        // remember as array
+        m_languages = languagesSet.toArray(new LocalePartInfo[languagesSet.size()]);
+        Arrays.sort(m_languages);
+      }
+      // countries
+      {
+        Set<LocalePartInfo> countriesSet = Sets.newHashSet();
+        countriesSet.add(new LocalePartInfo("", "(none)", FlagImagesRepository.getEmptyFlagImage()));
+        // fill
+        for (String country : Locale.getISOCountries()) {
+          Locale locale = new Locale("", country);
+          Image flagImage = FlagImagesRepository.getFlagImage(locale);
+          countriesSet.add(new LocalePartInfo(locale.getCountry(),
+              locale.getDisplayCountry(),
+              flagImage));
+        }
+        // remember as array
+        m_countries = countriesSet.toArray(new LocalePartInfo[countriesSet.size()]);
+        Arrays.sort(m_countries);
+      }
+    }
+  }
+}
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/nls/ui/FlagImagesRepository.java b/propertysheet/src/org/eclipse/wb/internal/core/nls/ui/FlagImagesRepository.java
new file mode 100644
index 0000000..854ba17
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/nls/ui/FlagImagesRepository.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wb.internal.core.nls.ui;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wb.internal.core.DesignerPlugin;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Repository of flags for locale/country.
+ *
+ * @author scheglov_ke
+ * @coverage core.nls.ui
+ */
+public class FlagImagesRepository {
+  private static Map<String, Image> m_countriesFlags = Maps.newHashMap();
+  private static Locale[] m_locales;
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Initialization
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  private static void init() {
+    if (m_locales == null) {
+      // prepare sorted Locale's
+      {
+        List<Locale> locales = Lists.newArrayList();
+        Collections.addAll(locales, Locale.getAvailableLocales());
+        Collections.sort(locales, new Comparator<Locale>() {
+          @Override
+        public int compare(Locale o1, Locale o2) {
+            return o1.toString().compareTo(o2.toString());
+          }
+        });
+        m_locales = locales.toArray(new Locale[locales.size()]);
+      }
+    }
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Access
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  /**
+   * @return the array of {@link Locale}'s sorted by title.
+   */
+  public static Locale[] getSortedLocales() {
+    init();
+    return m_locales;
+  }
+
+  /**
+   * @return the {@link Image} of flag for default {@link Locale}.
+   */
+  public static Image getEmptyFlagImage() {
+    return DesignerPlugin.getImage("nls/flags/flag_empty.png");
+  }
+
+  /**
+   * @return the {@link Image} of flag for given {@link Locale}.
+   */
+  public static Image getFlagImage(Locale locale) {
+    init();
+    String localeCountry = locale.getCountry();
+    String localeLanguage = locale.getLanguage();
+
+// BEGIN ADT MODIFICATIONS
+    return getFlagImage(localeCountry, localeLanguage);
+  }
+
+  public static Image getFlagImage(String localeCountry, String localeLanguage) {
+        init();
+// END ADT MODIFICATIONS
+
+    // if locale has no assosiated country set, try to find the locale with the same language but with the country set
+    if (localeCountry.length() == 0) {
+      // special cases
+      if (localeLanguage.equals("ar")) {
+        localeCountry = "AE";
+      } else if (localeLanguage.equals("zh")) {
+        localeCountry = "CN";
+      } else if (localeLanguage.equals("en")) {
+        localeCountry = "US";
+      } else {
+        // try to guess
+        String localeCountryCandidate = "";
+        for (int i = 0; i < m_locales.length; i++) {
+          Locale lookupLocale = m_locales[i];
+          String lookupLanguage = lookupLocale.getLanguage();
+          if (lookupLanguage.equals(localeLanguage)) {
+            if (lookupLocale.getCountry().length() != 0) {
+              localeCountryCandidate = lookupLocale.getCountry();
+              if (localeCountryCandidate.equalsIgnoreCase(lookupLanguage)) {
+                localeCountry = localeCountryCandidate;
+                break;
+              }
+            }
+          }
+        }
+        if (localeCountry.length() == 0) {
+          localeCountry = localeCountryCandidate;
+        }
+      }
+    }
+    //
+    Image flagImage = m_countriesFlags.get(localeCountry);
+    if (flagImage == null) {
+      try {
+        String flagFileName = null;
+        if (localeCountry.equalsIgnoreCase("YU")) {
+          localeCountry = "CS"; // use Serbia and Montenegro
+        }
+        if (Strings.isNullOrEmpty(localeCountry)) {
+          return null;
+        }
+        flagFileName = localeCountry.toLowerCase() + ".png";
+        flagImage = DesignerPlugin.getImage("nls/flags/" + flagFileName);
+        m_countriesFlags.put(localeCountry, flagImage);
+      } catch (Throwable e) {
+        return null;
+      }
+    }
+    return flagImage;
+  }
+}
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/nls/ui/LocaleUtils.java b/propertysheet/src/org/eclipse/wb/internal/core/nls/ui/LocaleUtils.java
new file mode 100644
index 0000000..699bba8
--- /dev/null
+++ b/propertysheet/src/org/eclipse/wb/internal/core/nls/ui/LocaleUtils.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wb.internal.core.nls.ui;
+
+import org.eclipse.wb.internal.core.nls.model.LocaleInfo;
+
+import org.eclipse.swt.graphics.Image;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+/**
+ * UI utils for {@link LocaleInfo}.
+ * 
+ * @author scheglov_ke
+ * @coverage core.nls.ui
+ */
+public class LocaleUtils {
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Constructor
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  private LocaleUtils() {
+  }
+
+  ////////////////////////////////////////////////////////////////////////////
+  //
+  // Utils
+  //
+  ////////////////////////////////////////////////////////////////////////////
+  /**
+   * @return the flag image for given {@link LocaleInfo}.
+   */
+  public static Image getImage(LocaleInfo localeInfo) {
+    if (localeInfo.isDefault()) {
+      return FlagImagesRepository.getEmptyFlagImage();
+    } else {
+      return FlagImagesRepository.getFlagImage(localeInfo.getLocale());
+    }
+  }
+
+  /**
+   * Sorts given array of {@link LocaleInfo}'s by title.
+   */
+  public static void sortByTitle(LocaleInfo locales[]) {
+    Arrays.sort(locales, new Comparator<LocaleInfo>() {
+      public int compare(LocaleInfo locale_1, LocaleInfo locale_2) {
+        return locale_1.getTitle().compareTo(locale_2.getTitle());
+      }
+    });
+  }
+}