package treehou.se.habit.ui.widgets.factories.switches;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import se.treehou.ng.ohcommunicator.connector.models.OHItem;
import se.treehou.ng.ohcommunicator.connector.models.OHWidget;
import se.treehou.ng.ohcommunicator.services.Connector;
import se.treehou.ng.ohcommunicator.services.IServerHandler;
import treehou.se.habit.R;
import treehou.se.habit.connector.Constants;
import treehou.se.habit.ui.widgets.WidgetFactory;
import treehou.se.habit.ui.widgets.factories.BaseWidgetFactory;
/**
* Widget rollershutters
*/
public class RollerShutterWidgetHolder implements WidgetFactory.IWidgetHolder {
private static final String TAG = "RollerShutterWidgetHold";
private BaseWidgetFactory.BaseWidgetHolder baseHolder;
public static RollerShutterWidgetHolder create(WidgetFactory factory, OHWidget widget, OHWidget parent){
return new RollerShutterWidgetHolder(widget, parent, factory);
}
private RollerShutterWidgetHolder(final OHWidget widget, OHWidget parent, final WidgetFactory factory) {
baseHolder = new BaseWidgetFactory.BaseWidgetHolder.Builder(factory)
.setWidget(widget)
.setShowLabel(true)
.setParent(parent)
.build();
final OHItem item = widget.getItem();
View itemView = factory.getInflater().inflate(R.layout.item_widget_rollershutters, null);
IServerHandler serverHandler = new Connector.ServerHandler(factory.getServer(), factory.getContext());
ImageButton btnUp = (ImageButton) itemView.findViewById(R.id.btn_up);
btnUp.setOnClickListener(v -> {
if (widget.getItem() != null) {
serverHandler.sendCommand(widget.getItem().getName(), Constants.COMMAND_UP);
}
});
ImageButton btnCancel = (ImageButton) itemView.findViewById(R.id.btn_cancel);
btnCancel.setOnClickListener(v -> {
if (widget.getItem() != null) {
serverHandler.sendCommand(item.getName(), Constants.COMMAND_STOP);
}
});
ImageButton btnDown = (ImageButton) itemView.findViewById(R.id.btn_down);
btnDown.setOnClickListener(v -> {
if (widget.getItem() != null) {
serverHandler.sendCommand(item.getName(), Constants.COMMAND_DOWN);
}
});
baseHolder.getSubView().addView(itemView);
update(widget);
}
@Override
public void update(final OHWidget widget) {
Log.d(TAG, "update " + widget);
if (widget == null) {
return;
}
baseHolder.update(widget);
}
@Override
public View getView() {
return baseHolder.getView();
}
}