package it.angelic.soulissclient.model.typicals;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import java.util.ArrayList;
import it.angelic.soulissclient.Constants;
import it.angelic.soulissclient.R;
import it.angelic.soulissclient.helpers.SoulissPreferenceHelper;
import it.angelic.soulissclient.model.ISoulissCommand;
import it.angelic.soulissclient.model.ISoulissTypical;
import it.angelic.soulissclient.model.SoulissCommand;
import it.angelic.soulissclient.model.SoulissTypical;
import it.angelic.soulissclient.net.UDPHelper;
import it.angelic.soulissclient.views.ListButton;
public class SoulissTypical22 extends SoulissTypical implements ISoulissTypical {
/**
*
*/
private static final long serialVersionUID = -1116356816188011036L;
Context ctx;
public SoulissTypical22(Context ctx, SoulissPreferenceHelper opts) {
super(ctx, opts);
}
@Override
public String getOutputDesc() {
if (typicalDTO.getOutput() == Constants.Typicals.Souliss_T2n_Coil_Close
|| typicalDTO.getOutput() == Constants.Typicals.Souliss_T2n_LimSwitch_Close)
return context.getString(R.string.close).toUpperCase();
else if (typicalDTO.getOutput() == Constants.Typicals.Souliss_T2n_Coil_Open
|| typicalDTO.getOutput() == Constants.Typicals.Souliss_T2n_LimSwitch_Open)
return context.getString(R.string.open).toUpperCase();
else if (typicalDTO.getOutput() == Constants.Typicals.Souliss_T2n_Coil_Stop)
return context.getString(R.string.stop).toUpperCase();
else if (typicalDTO.getOutput() == Constants.Typicals.Souliss_T2n_NoLimSwitch)
return "MIDDLE";
else
return "ERR";
}
@Override
public ArrayList<ISoulissCommand> getCommands(Context ctx) {
// ritorna le bozze dei comandi, da riempire con la schermata addProgram
ArrayList<ISoulissCommand> ret = new ArrayList<>();
SoulissCommand t = new SoulissCommand(this);
t.setCommand(Constants.Typicals.Souliss_T2n_CloseCmd);
t.setSlot(typicalDTO.getSlot());
t.setNodeId(typicalDTO.getNodeId());
ret.add(t);
SoulissCommand rset = new SoulissCommand(this);
rset.setCommand(Constants.Typicals.Souliss_T2n_OpenCmd);
rset.setSlot(typicalDTO.getSlot());
rset.setNodeId(typicalDTO.getNodeId());
ret.add(rset);
SoulissCommand rsest = new SoulissCommand(this);
rsest.setCommand(Constants.Typicals.Souliss_T2n_StopCmd);
rsest.setSlot(typicalDTO.getSlot());
rsest.setNodeId(typicalDTO.getNodeId());
ret.add(rsest);
return ret;
}
/**
* Ottiene il layout del pannello comandi
*
*/
@Override
public void getActionsLayout(final Context ctx, final LinearLayout cont) {
cont.removeAllViews();
// LinearLayout.LayoutParams lp = new
// LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
// LinearLayout.LayoutParams.MATCH_PARENT);
cont.addView(getQuickActionTitle());
/*
*
* TRE BOTTONI: ON, OFF e TOGGLE
*/
final ListButton closeButton = new ListButton(ctx);
closeButton.setText(ctx.getString(R.string.close));
cont.addView(closeButton);
final ListButton openButton = new ListButton(ctx);
openButton.setText(ctx.getString(R.string.open));
cont.addView(openButton);
final ListButton stopButton = new ListButton(ctx);
stopButton.setText(ctx.getString(R.string.stop));
cont.addView(stopButton);
closeButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Thread t = new Thread() {
public void run() {
UDPHelper.issueSoulissCommand("" + getTypicalDTO().getNodeId(), "" + typicalDTO.getSlot(),
prefs,
String.valueOf(Constants.Typicals.Souliss_T2n_CloseCmd));
}
};
t.start();
}
});
openButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Thread t = new Thread() {
public void run() {
UDPHelper.issueSoulissCommand("" + getTypicalDTO().getNodeId(), "" + typicalDTO.getSlot(),
prefs,
String.valueOf(Constants.Typicals.Souliss_T2n_OpenCmd));
}
};
t.start();
}
});
stopButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Thread t = new Thread() {
public void run() {
UDPHelper.issueSoulissCommand("" + getTypicalDTO().getNodeId(), "" + typicalDTO.getSlot(),
prefs,
String.valueOf(Constants.Typicals.Souliss_T2n_StopCmd));
}
};
t.start();
}
});
}
}