// -*- mode: java; c-basic-offset: 2; -*- // Copyright 2015-2016 MIT, All rights reserved // Released under the Apache License, Version 2.0 // http://www.apache.org/licenses/LICENSE-2.0 package com.google.appinventor.client.editor.simple.palette; import com.google.appinventor.client.Images; import com.google.appinventor.client.Ode; import com.google.appinventor.client.editor.simple.SimpleComponentDatabase; import com.google.appinventor.client.editor.youngandroid.YaBlocksEditor; import com.google.appinventor.client.editor.youngandroid.YaProjectEditor; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Widget; import static com.google.appinventor.client.Ode.MESSAGES; /** * Defines a widget that has the appearance of a red close button. * The Widget is clicked to delete the associated component */ public class ComponentRemoveWidget extends Image { private static ImageResource imageResource = null; private static Ode ode = Ode.getInstance(); private final SimpleComponentDescriptor scd; public ComponentRemoveWidget(SimpleComponentDescriptor simpleComponentDescriptor) { if (imageResource == null) { Images images = Ode.getImageBundle(); imageResource = images.deleteComponent(); } this.scd = simpleComponentDescriptor; AbstractImagePrototype.create(imageResource).applyTo(this); addClickListener(new ClickListener() { @Override public void onClick(Widget widget) { if (Window.confirm(MESSAGES.reallyRemoveComponent())) { long projectId = ode.getCurrentYoungAndroidProjectId(); YaProjectEditor projectEditor = (YaProjectEditor) ode.getEditorManager().getOpenProjectEditor(projectId); SimpleComponentDatabase componentDatabase = SimpleComponentDatabase.getInstance(); componentDatabase.addComponentDatabaseListener(projectEditor); componentDatabase.removeComponent(scd.getName()); } } }); } }