You need to add a custom precast logic. If you are using mote, you can use the job_post_precast function that runs after the default one:
Code
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type == "WeaponSkill" and player.tp == 300 then
equip(sets.midcast.WS.FullTP)
end
end