Merge change Ic86de6e9 into eclair

* changes:
  Fix NPE when opening new layout file.
This commit is contained in:
Android (Google) Code Review
2009-09-29 13:09:41 -04:00
5 changed files with 17 additions and 12 deletions

View File

@@ -679,6 +679,8 @@ public class GraphicalEditorPart extends EditorPart implements IGraphicalLayoutE
// enable the create button if the current and edited config are not equals
mConfigComposite.setEnabledCreate(
mEditedConfig.equals(mConfigComposite.getCurrentConfig()) == false);
reloadConfigurationUi(false /*notifyListener*/);
}
public Clipboard getClipboard() {
@@ -967,7 +969,7 @@ public class GraphicalEditorPart extends EditorPart implements IGraphicalLayoutE
}
}
public void reloadConfigurationUi() {
public void reloadConfigurationUi(boolean notifyListener) {
// enable the clipping button if it's supported.
Sdk currentSdk = Sdk.getCurrent();
if (currentSdk != null) {
@@ -975,7 +977,7 @@ public class GraphicalEditorPart extends EditorPart implements IGraphicalLayoutE
AndroidTargetData data = currentSdk.getTargetData(target);
if (data != null) {
LayoutBridge bridge = data.getLayoutBridge();
mConfigComposite.reloadDevices();
mConfigComposite.reloadDevices(notifyListener);
mConfigComposite.setClippingSupport(bridge.apiLevel >= 4);
}
}

View File

@@ -548,7 +548,7 @@ public class GraphicalLayoutEditor extends GraphicalEditorWithPalette
mConfigComposite.setEnabledCreate(
mEditedConfig.equals(mConfigComposite.getCurrentConfig()) == false);
reloadConfigurationUi();
reloadConfigurationUi(false /*notifyListener*/);
}
public Rectangle getBounds() {
@@ -730,7 +730,7 @@ public class GraphicalLayoutEditor extends GraphicalEditorWithPalette
PaletteFactory.createPaletteRoot(mPaletteRoot, mLayoutEditor.getTargetData());
}
public void reloadConfigurationUi() {
public void reloadConfigurationUi(boolean notifyListener) {
// enable the clipping button if it's supported.
Sdk currentSdk = Sdk.getCurrent();
if (currentSdk != null) {
@@ -738,7 +738,7 @@ public class GraphicalLayoutEditor extends GraphicalEditorWithPalette
AndroidTargetData data = currentSdk.getTargetData(target);
if (data != null) {
LayoutBridge bridge = data.getLayoutBridge();
mConfigComposite.reloadDevices();
mConfigComposite.reloadDevices(notifyListener);
mConfigComposite.setClippingSupport(bridge.apiLevel >= 4);
}
}

View File

@@ -82,6 +82,6 @@ import org.eclipse.ui.IEditorPart;
abstract Clipboard getClipboard();
abstract void reloadConfigurationUi();
abstract void reloadConfigurationUi(boolean notifyListener);
}

View File

@@ -410,7 +410,7 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
if (mGraphicalEditor != null) {
mGraphicalEditor.reloadEditor();
mGraphicalEditor.reloadPalette();
mGraphicalEditor.reloadConfigurationUi();
mGraphicalEditor.reloadConfigurationUi(true /*notify listener */);
mGraphicalEditor.recomputeLayout();
}
}

View File

@@ -150,7 +150,7 @@ public class ConfigurationComposite extends Composite {
mDeviceList.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
onDeviceChange();
onDeviceChange(true /* recomputeLayout*/);
}
});
@@ -451,11 +451,12 @@ public class ConfigurationComposite extends Composite {
/**
* Reloads the list of {@link DeviceConfiguration} from the {@link Sdk}.
* @param notifyListener
*/
public void reloadDevices() {
public void reloadDevices(boolean notifyListener) {
mDevices = Sdk.getCurrent().getLayoutDevices();
initUiWithDevices();
onDeviceChange();
onDeviceChange(notifyListener);
}
/**
@@ -508,7 +509,7 @@ public class ConfigurationComposite extends Composite {
}
}
private void onDeviceChange() {
private void onDeviceChange(boolean recomputeLayout) {
int deviceIndex = mDeviceList.getSelectionIndex();
DeviceConfiguration device = mDevices.get(deviceIndex);
@@ -525,8 +526,10 @@ public class ConfigurationComposite extends Composite {
mDeviceConfigs.setEnabled(false);
}
if (recomputeLayout) {
onDeviceConfigChange();
}
}
private void onDeviceConfigChange() {
if (mDevices != null) {