/*
* ******************************************************************************
* * Copyright 2015 See AUTHORS file.
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
* *****************************************************************************
*/
package com.uwsoft.editor.view.ui.box.resourcespanel.draggable.box;
import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.commons.ResourcePayloadObject;
import com.uwsoft.editor.view.ui.box.UIResourcesBoxMediator;
public class ImageResource extends BoxItemResource {
private final Image payloadImg;
private final ResourcePayloadObject payload;
public ImageResource(AtlasRegion region) {
Image img = new Image(region);
if (img.getWidth() > thumbnailSize || img.getHeight() > thumbnailSize) {
// resizing is needed
float scaleFactor = 1.0f;
if (img.getWidth() > img.getHeight()) {
//scale by width
scaleFactor = 1.0f / (img.getWidth() / thumbnailSize);
} else {
scaleFactor = 1.0f / (img.getHeight() / thumbnailSize);
}
img.setScale(scaleFactor);
img.setX((getWidth() - img.getWidth() * img.getScaleX()) / 2);
img.setY((getHeight() - img.getHeight() * img.getScaleY()) / 2);
} else {
// put it in middle
img.setX((getWidth() - img.getWidth()) / 2);
img.setY((getHeight() - img.getHeight()) / 2);
}
addActor(img);
setRightClickEvent(UIResourcesBoxMediator.IMAGE_RIGHT_CLICK, region.name);
payloadImg = new Image(region);
payload = new ResourcePayloadObject();
payload.name = region.name;
payload.className = getClass().getName();
}
@Override
public Actor getDragActor() {
return payloadImg;
}
@Override
public ResourcePayloadObject getPayloadData() {
return payload;
}
}