import javax.swing.JPanel;
public class InsertSort extends Algorithm {
private InsertHilfVariablen hilfVariablen ;
public InsertSort(String alg,TextfieldArray tf, JPanel pane){
super(alg, tf ,pane);
hilfVariablen = new InsertHilfVariablen();
}
public void sort(TextfieldArray tf) throws InterruptedException{
int j,k=0;
boolean flagAdd = true;
TextfieldArray[] vektor = new TextfieldArray[5];
for (int i=0 ; i<5 ; i++){
vektor[i] = new TextfieldArray(PanelVektor.cols);
}
//setdata(this.tf,vektor[0]);
copyData(this.tf,vektor[4]);
//pane.add(vektor[0]);
pane.add(hilfVariablen);
pane.add(vektor[4]);
StartFenster.panelCode.selectLine(0);
Thread.sleep(500);
StartFenster.panelCode.selectLine(1);
Thread.sleep(500);
for(int i=1 ; i<PanelVektor.cols ; i++){
StartFenster.panelCode.selectLine(2);
hilfVariablen.setInHilfVar(""+i, 0);
vektor[4].setColor_c(i);
synchron();
Thread.sleep(500);
StartFenster.panelCode.selectLine(3);
j=i;
hilfVariablen.setInHilfVar(""+j, 1);
synchron();
Thread.sleep(500);
StartFenster.panelCode.selectLine(4);
hilfVariablen.setInHilfVar(vektor[4].getAusArray(j), 2);
synchron();
Thread.sleep(500);
StartFenster.panelCode.selectLine(5);
synchron();
Thread.sleep(500);
while(j>0 && Integer.parseInt(vektor[4].getAusArray(j-1)) > Integer.parseInt(hilfVariablen.getAusHilfVar(2))){
StartFenster.panelCode.selectLine(6);
vektor[4].setInArray(vektor[4].getAusArray(j-1), j);
vektor[4].setColor_m(j-1);
synchron();
Thread.sleep(500);
StartFenster.panelCode.selectLine(7);
j--;
hilfVariablen.setInHilfVar(""+j, 1);
synchron();
Thread.sleep(500);
}
vektor[4].setColor(j);
StartFenster.panelCode.selectLine(8);
synchron();
Thread.sleep(500);
StartFenster.panelCode.selectLine(9);
vektor[4].setInArray(hilfVariablen.getAusHilfVar(2), j);
synchron();
Thread.sleep(500);
if(flagAdd){
k++;
copyData(vektor[4],vektor[k]);
pane.add(vektor[k]);
pane.add(hilfVariablen);
pane.add(vektor[4]);
vektor[4].setColorNull();
//StartFenster.animation.repaint();
StartFenster.animation.revalidate();
if(k == 3 && flagAdd){
flagAdd = false;
}
}
else {
pane.add(vektor[4]);
for(int s = 1 ; s<4 ; s++ ){
vektor[s-1].setColorNull();
copyData(vektor[s],vektor[s-1]);
}
copyData(vektor[4],vektor[3]);
vektor[4].setColorNull();
}
Thread.sleep(500);
}
StartFenster.panelCode.selectLine(10);
synchron();
Thread.sleep(500);
StartFenster.panelCode.selectLine(11);
synchron();
Thread.sleep(500);
}// end von insertsort*/
}