-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclsTabelaProcessoEmExecucao.java
191 lines (191 loc) · 8.52 KB
/
clsTabelaProcessoEmExecucao.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
import java.awt.Color;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.awt.event.*;
public class clsTabelaProcessoEmExecucao
{
//--------------------------------------------------------------------------------------------------------------------------//
//ATRIBUTOS//
//--------------------------------------------------------------------------------------------------------------------------//
JTable tblTabela;
clsProcesso objProcesso;
clsTabelaProcessosBloqueados objTabelaProcessosBloqueados;
clsTabelaProcesso objListaProcessos;
int tempo;
//--------------------------------------------------------------------------------------------------------------------------//
//CONSTRUTOR//
//--------------------------------------------------------------------------------------------------------------------------//
public clsTabelaProcessoEmExecucao(int pLargura, int pAltura, clsTabelaProcessosBloqueados pProcessosBloqueados, clsTabelaProcesso pProcessos)
{
tempo = 0;
objProcesso = new clsProcesso();
objTabelaProcessosBloqueados = pProcessosBloqueados;
objListaProcessos = pProcessos;
tblTabela = new JTable();
tblTabela.setPreferredScrollableViewportSize(new Dimension(pLargura, pAltura));
atribuirRenderer();
atribuirModelo();
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS//
//--------------------------------------------------------------------------------------------------------------------------//
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> GETTERS AND SETTERS//
//--------------------------------------------------------------------------------------------------------------------------//
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> GETTERS AND SETTERS -> TEMPO//
//--------------------------------------------------------------------------------------------------------------------------//
public String getTempo()
{
if (tempo == 0 || objProcesso.getIntPid() == -1)
{
return "";
}
return Integer.toString(tempo);
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> GETTERS AND SETTERS -> TABLE//
//--------------------------------------------------------------------------------------------------------------------------//
public JTable getTable()
{
return tblTabela;
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> WORK//
//--------------------------------------------------------------------------------------------------------------------------//
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> WORK -> ATUALIZAR TABELA//
//--------------------------------------------------------------------------------------------------------------------------//
public void atualizarTabela()
{
tblTabela.updateUI();
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> WORK -> REMOVER PROCESSO//
//--------------------------------------------------------------------------------------------------------------------------//
public void removerProceso(clsProcesso pProcesso)
{
if (pProcesso.getIntPid() == objProcesso.getIntPid())
{
objProcesso.restaurar();
tempo = 0;
}
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> WORK -> INCREMENTAR TEMPO//
//--------------------------------------------------------------------------------------------------------------------------//
public boolean incrementarTempo()
{
boolean retorno = false;
if (objProcesso.getIntPid() != -1)
{
tempo++;
if (tempo > objProcesso.getIntTempo())
{
tempo = 0;
retorno = true;
}
else
{
objListaProcessos.incrementarTempoDeCpu(objProcesso);
}
atualizarTabela();
}
else
{
retorno = true;
}
return retorno;
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> WORK -> EXECUTAR PROCESSO//
//--------------------------------------------------------------------------------------------------------------------------//
public void executarProcesso(clsTabelaMemoria pMemoriaPrincipal, clsTabelaMemoria pMemoriaSecundaria)
{
clsProcesso auxiliar;
auxiliar = objTabelaProcessosBloqueados.obterProcessoAExecutar();
if (auxiliar.getIntPid() != -1)
{
objProcesso.setCor(auxiliar.getCor());
objProcesso.setEstado(auxiliar.getEstado());
objProcesso.setFrames(auxiliar.getIntFrames());
objProcesso.setPid(auxiliar.getIntPid());
objProcesso.setSelecionado(auxiliar.getSelecionado());
objProcesso.setTempo(auxiliar.getIntTempo());
objProcesso.setTempoCriacao(auxiliar.getIntTempoCriacao());
objProcesso.setTempoUcp(auxiliar.getIntTempoUcp());
objProcesso.setTipo(auxiliar.getTipo());
objProcesso.setEliminado(auxiliar.getEliminado());
objListaProcessos.atualizarEstados(auxiliar);
}
atualizarTabela();
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PÚBLICAS -> WORK -> EXECUTAR PROCESSO//
//--------------------------------------------------------------------------------------------------------------------------//
public void bloquearProcesso(clsTabelaMemoria pMemoriaPrincipal, clsTabelaMemoria pMemoriaSecundaria)
{
if (objProcesso.getIntPid() != -1)
{
objTabelaProcessosBloqueados.adicionarProcesso(objProcesso, pMemoriaPrincipal, pMemoriaSecundaria);
objProcesso.restaurar();
objTabelaProcessosBloqueados.atualizarTabela();
}
atualizarTabela();
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PRIVADAS//
//--------------------------------------------------------------------------------------------------------------------------//
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PRIVADAS -> ATRIBUIR RENDERER//
//--------------------------------------------------------------------------------------------------------------------------//
private void atribuirRenderer()
{
tblTabela.setDefaultRenderer(Object.class,
new DefaultTableCellRenderer()
{
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col)
{
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
setHorizontalAlignment(CENTER);
setBackground(objProcesso.getCor());
return this;
}
}
);
}
//--------------------------------------------------------------------------------------------------------------------------//
//FUNÇÕES PRIVADAS -> ATRIBUIR MODELO//
//--------------------------------------------------------------------------------------------------------------------------//
private void atribuirModelo()
{
tblTabela.setModel(
new AbstractTableModel()
{
String colunas[] = {"Processo", "Tempo"};
public int getColumnCount()
{
return 2;
}
public int getRowCount()
{
return 1;
}
public Object getValueAt(int row, int col)
{
if (col == 0)
{
return new String(objProcesso.getPid());
}
return new String(getTempo());
}
public String getColumnName(int num)
{
return colunas[num];
}
}
);
}
}