package com.fyp.resilience.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.fyp.resilience.R;
import com.fyp.resilience.event.ClientModified;
import com.fyp.resilience.swarm.model.SwarmClient;
import de.greenrobot.event.EventBus;
public class ClientView extends RelativeLayout {
private SwarmClient mClient;
public ClientView(Context context, AttributeSet attrs) {
super(context, attrs);
}
private TextView getClientAddress() {
return (TextView) findViewById(R.id.client_view_client_address);
}
private TextView getClientSuccess() {
return (TextView) findViewById(R.id.client_view_successes);
}
private TextView getClientFailures() {
return (TextView) findViewById(R.id.client_view_failures);
}
public void setClient(SwarmClient client) {
mClient = client;
getClientAddress().setText(mClient.getAddress().getHostAddress() + ":" + mClient.getPort());
getClientSuccess().setText("Success: " + mClient.getSuccessfulAttempts() + "");
getClientFailures().setText("Failure: " + mClient.getFailedAttempts() + "");
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
EventBus.getDefault().register(this, ClientModified.class);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
EventBus.getDefault().unregister(this);
}
public void onEventMainThread(ClientModified event) {
if (event.getClient() == mClient) {
setClient(mClient);
invalidate();
}
}
}