I think you are overcomplicating it. Violence can only be moral in defence.
If you face a problem that truly cannot be solved without violence, then it is better to just not solve the problem and accept that given our human nature in certain areas we cannot reach perfection. Nothing good will come from a violent solution as it always implies that for your own gain, more suffering is created elsewhere.
RE: Check Your Rationality Before You Wreck Your Morality