Source Code Cross Referenced for QsScorePanel.java in  » Test-Coverage » salome-tmf » org » objectweb » salome_tmf » ihm » main » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Test Coverage » salome tmf » org.objectweb.salome_tmf.ihm.main 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


001:        package org.objectweb.salome_tmf.ihm.main;
002:
003:        import java.awt.BorderLayout;
004:        import java.awt.Color;
005:        import java.awt.Dimension;
006:        import java.awt.FlowLayout;
007:        import java.awt.Frame;
008:        import java.awt.event.ActionEvent;
009:        import java.awt.event.ActionListener;
010:        import java.text.DateFormat;
011:        import java.text.SimpleDateFormat;
012:        import java.util.ArrayList;
013:        import java.util.Date;
014:        import java.util.Enumeration;
015:        import java.util.Hashtable;
016:        import java.util.Locale;
017:        import java.util.Vector;
018:
019:        import javax.swing.BorderFactory;
020:        import javax.swing.BoxLayout;
021:        import javax.swing.JButton;
022:        import javax.swing.JComboBox;
023:        import javax.swing.JDialog;
024:        import javax.swing.JLabel;
025:        import javax.swing.JOptionPane;
026:        import javax.swing.JPanel;
027:        import javax.swing.JScrollPane;
028:        import javax.swing.JTable;
029:        import javax.swing.ListSelectionModel;
030:        import javax.swing.event.ListSelectionEvent;
031:        import javax.swing.event.ListSelectionListener;
032:
033:        import org.jfree.chart.ChartFactory;
034:        import org.jfree.chart.ChartPanel;
035:        import org.jfree.chart.JFreeChart;
036:        import org.jfree.chart.axis.DateAxis;
037:        import org.jfree.chart.axis.ValueAxis;
038:        import org.jfree.chart.plot.XYPlot;
039:        import org.jfree.chart.renderer.xy.XYItemRenderer;
040:        import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
041:        import org.jfree.data.time.Second;
042:        import org.jfree.data.time.TimeSeries;
043:        import org.jfree.data.time.TimeSeriesCollection;
044:        import org.jfree.data.time.TimeSeriesDataItem;
045:        import org.objectweb.salome_tmf.api.Api;
046:        import org.objectweb.salome_tmf.api.Util;
047:        import org.objectweb.salome_tmf.api.sql.ISQLConfig;
048:        import org.objectweb.salome_tmf.data.Environment;
049:        import org.objectweb.salome_tmf.data.Test;
050:        import org.objectweb.salome_tmf.ihm.languages.Language;
051:        import org.objectweb.salome_tmf.ihm.main.datawrapper.DataModel;
052:        import org.objectweb.salome_tmf.ihm.models.MyTableModel;
053:        import org.objectweb.salome_tmf.ihm.models.RowTransferHandler;
054:        import org.objectweb.salome_tmf.ihm.models.TableSorter;
055:        import org.objectweb.salome_tmf.ihm.tools.Tools;
056:        import org.objectweb.salome_tmf.plugins.core.BugTracker;
057:        import org.objectweb.salome_tmf.plugins.core.ReqManager;
058:
059:        public class QsScorePanel extends JPanel implements  ActionListener,
060:                ListSelectionListener {
061:
062:            JButton deleteQsScoreValueButton;
063:            JButton calculateQsScoreValueButton;
064:            JButton visualizeQsScoreValueButton;
065:            JButton refreshQsScoreValueButton;
066:
067:            JTable qsScoreTable;
068:
069:            TableSorter sorter;
070:
071:            ListSelectionModel rowSM;
072:
073:            RowTransferHandler transferHandler;
074:
075:            MyTableModel qsScoreTableModel;
076:
077:            BugTracker mantis;
078:
079:            ReqManager reqPlug;
080:
081:            AskChooseEnvironment chooseEnvWindow;
082:
083:            public QsScorePanel(BugTracker mantis, ReqManager reqPlug) {
084:
085:                super ();
086:                this .mantis = mantis;
087:                this .reqPlug = reqPlug;
088:
089:                deleteQsScoreValueButton = new JButton(Language.getInstance()
090:                        .getText("Supprimer"));
091:                calculateQsScoreValueButton = new JButton(Language
092:                        .getInstance().getText("QsScore_calculation"));
093:                visualizeQsScoreValueButton = new JButton(Language
094:                        .getInstance().getText("QsScore_graph"));
095:                refreshQsScoreValueButton = new JButton(Language.getInstance()
096:                        .getText("Rafraichir"));
097:
098:                qsScoreTableModel = new MyTableModel();
099:
100:                qsScoreTableModel.addColumnNameAndColumn(Language.getInstance()
101:                        .getText("Environnement"));
102:                qsScoreTableModel.addColumnNameAndColumn(Language.getInstance()
103:                        .getText("Date"));
104:                qsScoreTableModel.addColumnNameAndColumn(Language.getInstance()
105:                        .getText("valeur")
106:                        + " QS Score");
107:
108:                qsScoreTable = new JTable();
109:                transferHandler = new RowTransferHandler();
110:
111:                deleteQsScoreValueButton.setEnabled(false);
112:                deleteQsScoreValueButton.setToolTipText(Language.getInstance()
113:                        .getText("Delete_QsScore_Value"));
114:                deleteQsScoreValueButton.addActionListener(this );
115:                calculateQsScoreValueButton.setToolTipText(Language
116:                        .getInstance().getText("QsScore_calculation"));
117:                calculateQsScoreValueButton.addActionListener(this );
118:                visualizeQsScoreValueButton.setToolTipText(Language
119:                        .getInstance().getText("QsScore_graph"));
120:                visualizeQsScoreValueButton.addActionListener(this );
121:                refreshQsScoreValueButton.setToolTipText(Language.getInstance()
122:                        .getText("Rafraichir"));
123:                refreshQsScoreValueButton.addActionListener(this );
124:
125:                sorter = new TableSorter(qsScoreTableModel);
126:                qsScoreTable = new JTable(sorter);
127:                sorter.setTableHeader(qsScoreTable.getTableHeader());
128:                qsScoreTable.setPreferredScrollableViewportSize(new Dimension(
129:                        700, 350));
130:                qsScoreTable.setTransferHandler(transferHandler);
131:                qsScoreTable
132:                        .setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
133:
134:                JScrollPane pluginsTableScrollPane = new JScrollPane(
135:                        qsScoreTable);
136:                // Gestion des sélection dans la table
137:                rowSM = qsScoreTable.getSelectionModel();
138:                rowSM.addListSelectionListener(this );
139:
140:                createQsScoreTableModel();
141:
142:                JPanel buttonsPanel = new JPanel();
143:
144:                buttonsPanel.add(calculateQsScoreValueButton);
145:                buttonsPanel.add(visualizeQsScoreValueButton);
146:                buttonsPanel.add(refreshQsScoreValueButton);
147:                buttonsPanel.add(deleteQsScoreValueButton);
148:
149:                buttonsPanel.setBorder(BorderFactory.createRaisedBevelBorder());
150:
151:                setLayout(new BorderLayout());
152:                add(BorderLayout.NORTH, buttonsPanel);
153:                add(BorderLayout.CENTER, pluginsTableScrollPane);
154:            }
155:
156:            public void actionPerformed(ActionEvent arg0) {
157:                Object source = arg0.getSource();
158:                if (source.equals(deleteQsScoreValueButton)) {
159:                    deleteQsScoreValuePerformed();
160:                } else if (source.equals(calculateQsScoreValueButton)) {
161:                    calculateQsScoreValuePerformed();
162:                } else if (source.equals(visualizeQsScoreValueButton)) {
163:                    visualizeQsScoreValuePerformed();
164:                } else if (source.equals(refreshQsScoreValueButton)) {
165:                    refreshQsScoreValuePerformed();
166:                }
167:            }
168:
169:            public void valueChanged(ListSelectionEvent arg0) {
170:                if (arg0.getSource().equals(qsScoreTable.getSelectionModel())) {
171:                    if (arg0.getValueIsAdjusting())
172:                        return;
173:                    int nbOfSelectedRows = qsScoreTable.getSelectedRowCount();
174:                    int selectedRow = qsScoreTable.getSelectedRow();
175:                    if ((selectedRow != -1) && (nbOfSelectedRows != 0)) {
176:                        deleteQsScoreValueButton.setEnabled(true);
177:                    } else {
178:                        deleteQsScoreValueButton.setEnabled(false);
179:                    }
180:                }
181:            }
182:
183:            void createQsScoreTableModel() {
184:                try {
185:                    Vector qsScoreKeys = new Vector();
186:                    ISQLConfig pISQLConfig = Api.getISQLObjectFactory()
187:                            .getISQLConfig();
188:                    if (pISQLConfig != null) {
189:                        Hashtable projectConfs = pISQLConfig
190:                                .getAllProjectConf(DataModel
191:                                        .getCurrentProject().getIdBdd());
192:                        for (Enumeration e = projectConfs.keys(); e
193:                                .hasMoreElements();) {
194:                            String key = (String) e.nextElement();
195:                            if (key.startsWith(mantis.getBugTrackerName()
196:                                    + "_QsScore")) {
197:                                qsScoreKeys.add(key);
198:                            }
199:                        }
200:
201:                        if ((qsScoreKeys != null) && (qsScoreKeys.size() != 0)) {
202:
203:                            for (int i = 0; i < qsScoreKeys.size(); i++) {
204:                                int idEnv = -1;
205:                                Object key = qsScoreKeys.elementAt(i);
206:                                String[] tmp = ((String) key).split("[_]");
207:                                if (tmp.length == 3) {
208:                                    idEnv = Integer.parseInt(tmp[2]);
209:                                }
210:                                Environment env = DataModel.getCurrentProject()
211:                                        .getEnvironmentFromModel(idEnv);
212:                                String value = (String) projectConfs.get(key);
213:                                String[] res = value.split("[,]");
214:                                for (int j = 0; j < res.length; j++) {
215:                                    String qsScoreValues = res[j];
216:                                    String[] qsScores = qsScoreValues
217:                                            .split("[_]");
218:                                    if (qsScores.length == 2) {
219:
220:                                        Float qsScore = new Float(Float
221:                                                .parseFloat(qsScores[1]));
222:
223:                                        ArrayList row = new ArrayList(2);
224:                                        row.add(0, env.getNameFromModel());
225:                                        row.add(1, qsScores[0]);
226:                                        row.add(2, qsScore);
227:
228:                                        qsScoreTableModel.addRow(row);
229:                                    }
230:                                }
231:                            }
232:                        }
233:                    }
234:                } catch (Exception e) {
235:                    e.printStackTrace();
236:                    Tools.ihmExceptionView(e);
237:                }
238:            }
239:
240:            public void refreshQsScoreValuePerformed() {
241:                qsScoreTableModel.clearTable();
242:
243:                try {
244:                    Vector qsScoreKeys = new Vector();
245:                    ISQLConfig pISQLConfig = Api.getISQLObjectFactory()
246:                            .getISQLConfig();
247:                    if (pISQLConfig != null) {
248:                        Hashtable projectConfs = pISQLConfig
249:                                .getAllProjectConf(DataModel
250:                                        .getCurrentProject().getIdBdd());
251:                        for (Enumeration e = projectConfs.keys(); e
252:                                .hasMoreElements();) {
253:                            String key = (String) e.nextElement();
254:                            if (key.startsWith(mantis.getBugTrackerName()
255:                                    + "_QsScore")) {
256:                                qsScoreKeys.add(key);
257:                            }
258:                        }
259:
260:                        if ((qsScoreKeys != null) && (qsScoreKeys.size() != 0)) {
261:
262:                            for (int i = 0; i < qsScoreKeys.size(); i++) {
263:                                int idEnv = -1;
264:                                Object key = qsScoreKeys.elementAt(i);
265:                                String[] tmp = ((String) key).split("[_]");
266:                                if (tmp.length == 3) {
267:                                    idEnv = Integer.parseInt(tmp[2]);
268:                                }
269:                                Environment env = DataModel.getCurrentProject()
270:                                        .getEnvironmentFromModel(idEnv);
271:                                String value = (String) projectConfs.get(key);
272:                                String[] res = value.split("[,]");
273:                                for (int j = 0; j < res.length; j++) {
274:                                    String qsScoreValues = res[j];
275:                                    String[] qsScores = qsScoreValues
276:                                            .split("[_]");
277:                                    if (qsScores.length == 2) {
278:
279:                                        Float qsScore = new Float(Float
280:                                                .parseFloat(qsScores[1]));
281:
282:                                        ArrayList row = new ArrayList(2);
283:                                        row.add(0, env.getNameFromModel());
284:                                        row.add(1, qsScores[0]);
285:                                        row.add(2, qsScore);
286:
287:                                        qsScoreTableModel.addRow(row);
288:                                    }
289:                                }
290:                            }
291:                        }
292:                    }
293:                } catch (Exception e) {
294:                    e.printStackTrace();
295:                    Tools.ihmExceptionView(e);
296:                }
297:            }
298:
299:            public void deleteQsScoreValuePerformed() {
300:                Object[] options = { Language.getInstance().getText("Oui"),
301:                        Language.getInstance().getText("Non") };
302:                int choice = -1;
303:                int[] selectedRows = qsScoreTable.getSelectedRows();
304:
305:                choice = JOptionPane
306:                        .showOptionDialog(
307:                                QsScorePanel.this ,
308:                                Language
309:                                        .getInstance()
310:                                        .getText(
311:                                                "Etes_vous_sûr_de_vouloir_supprimer_les_valeurs_QsScore_sélectionnées"),
312:                                Language.getInstance().getText("Attention_!"),
313:                                JOptionPane.YES_NO_OPTION,
314:                                JOptionPane.QUESTION_MESSAGE, null, options,
315:                                options[1]);
316:                if (choice == JOptionPane.YES_OPTION) {
317:                    for (int i = selectedRows.length - 1; i >= 0; i--) {
318:
319:                        try {
320:                            // DB
321:                            ISQLConfig pISQLConfig = Api.getISQLObjectFactory()
322:                                    .getISQLConfig();
323:                            if (pISQLConfig != null) {
324:                                Environment env = DataModel.getCurrentProject()
325:                                        .getEnvironmentFromModel(
326:                                                (String) sorter.getValueAt(
327:                                                        selectedRows[i], 0));
328:                                String key = mantis.getBugTrackerName()
329:                                        + "_QsScore_" + env.getIdBdd();
330:                                String qsScoreValuesForEnv = pISQLConfig
331:                                        .getProjectConf(key, DataModel
332:                                                .getCurrentProject().getIdBdd());
333:                                qsScoreValuesForEnv = qsScoreValuesForEnv
334:                                        .replaceFirst((String) sorter
335:                                                .getValueAt(selectedRows[i], 1)
336:                                                + "_"
337:                                                + sorter.getValueAt(
338:                                                        selectedRows[i], 2), "");
339:                                qsScoreValuesForEnv = qsScoreValuesForEnv
340:                                        .replaceFirst(",,", ",");
341:
342:                                if ((qsScoreValuesForEnv.equals(""))
343:                                        || (qsScoreValuesForEnv.equals(","))) {
344:                                    pISQLConfig.deleteProjectConf(key,
345:                                            DataModel.getCurrentProject()
346:                                                    .getIdBdd());
347:                                } else {
348:                                    pISQLConfig.updateProjectConf(key,
349:                                            qsScoreValuesForEnv, DataModel
350:                                                    .getCurrentProject()
351:                                                    .getIdBdd());
352:                                }
353:
354:                            }
355:                            // IHM
356:                            /*qsScoreTableModel.removeData(selectedRows[i]);
357:                            if (qsScoreTableModel.getRowCount() == 0) {
358:                            	deleteQsScoreValueButton.setEnabled(false);
359:                            }*/
360:                        } catch (Exception exception) {
361:                            exception.printStackTrace();
362:                            Tools.ihmExceptionView(exception);
363:                        }
364:                    }
365:
366:                    //IHM
367:                    refreshQsScoreValuePerformed();
368:                }
369:            }
370:
371:            private void visualizeQsScoreValuePerformed() {
372:                JDialog dialog = new JDialog(
373:                        SalomeTMFContext.getInstance().ptrFrame, true);
374:                dialog
375:                        .setTitle(Language.getInstance().getText(
376:                                "QsScore_graph"));
377:                JPanel pnl = new JPanel(new BorderLayout());
378:                dialog.setContentPane(pnl);
379:                dialog.setSize(600, 400);
380:
381:                try {
382:                    Vector qsScoreKeys = new Vector();
383:                    ISQLConfig pISQLConfig = Api.getISQLObjectFactory()
384:                            .getISQLConfig();
385:                    if (pISQLConfig != null) {
386:                        Hashtable projectConfs = pISQLConfig
387:                                .getAllProjectConf(DataModel
388:                                        .getCurrentProject().getIdBdd());
389:                        for (Enumeration e = projectConfs.keys(); e
390:                                .hasMoreElements();) {
391:                            String key = (String) e.nextElement();
392:                            if (key.startsWith(mantis.getBugTrackerName()
393:                                    + "_QsScore")) {
394:                                qsScoreKeys.add(key);
395:                            }
396:                        }
397:
398:                        if ((qsScoreKeys != null) && (qsScoreKeys.size() != 0)) {
399:
400:                            TimeSeriesCollection dataset = new TimeSeriesCollection();
401:
402:                            for (int i = 0; i < qsScoreKeys.size(); i++) {
403:                                int idEnv = -1;
404:                                Object key = qsScoreKeys.elementAt(i);
405:                                String[] tmp = ((String) key).split("[_]");
406:                                if (tmp.length == 3) {
407:                                    idEnv = Integer.parseInt(tmp[2]);
408:                                }
409:                                Environment env = DataModel.getCurrentProject()
410:                                        .getEnvironmentFromModel(idEnv);
411:                                TimeSeries ts = new TimeSeries(env
412:                                        .getNameFromModel(), Second.class);
413:                                String value = (String) projectConfs.get(key);
414:                                String[] res = value.split("[,]");
415:                                for (int j = 0; j < res.length; j++) {
416:                                    String qsScoreValues = res[j];
417:                                    String[] qsScores = qsScoreValues
418:                                            .split("[_]");
419:                                    if (qsScores.length == 2) {
420:                                        Locale locale = Locale.getDefault();
421:                                        DateFormat dateFormat = DateFormat
422:                                                .getDateTimeInstance(
423:                                                        DateFormat.LONG,
424:                                                        DateFormat.LONG, locale);
425:                                        Date date = dateFormat
426:                                                .parse(qsScores[0]);
427:
428:                                        float qsScore = Float
429:                                                .parseFloat(qsScores[1]);
430:                                        ts.add(new TimeSeriesDataItem(
431:                                                new Second(date), qsScore));
432:                                    }
433:                                }
434:                                dataset.addSeries(ts);
435:                            }
436:
437:                            JFreeChart chart = ChartFactory
438:                                    .createTimeSeriesChart(Language
439:                                            .getInstance().getText(
440:                                                    "QsScoregraphTitle"),
441:                                            "Date", "QsScore", dataset, true,
442:                                            true, false);
443:                            chart.setBackgroundPaint(Color.white);
444:                            XYPlot plot = (XYPlot) chart.getPlot();
445:                            plot.setBackgroundPaint(Color.lightGray);
446:                            plot.setDomainGridlinePaint(Color.white);
447:                            plot.setRangeGridlinePaint(Color.white);
448:                            XYItemRenderer r = plot.getRenderer();
449:                            if (r instanceof  XYLineAndShapeRenderer) {
450:                                XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
451:                                renderer.setShapesVisible(true);
452:                                renderer.setShapesFilled(true);
453:                            }
454:                            DateAxis axis = (DateAxis) plot.getDomainAxis();
455:                            axis.setDateFormatOverride(new SimpleDateFormat(
456:                                    "dd/MM/yy"));
457:                            ValueAxis vAxis = (ValueAxis) plot.getRangeAxis();
458:                            vAxis.setRange(0, 3);
459:                            ChartPanel cPanel = new ChartPanel(chart);
460:                            pnl.add(cPanel);
461:
462:                        } else {
463:                            JLabel label = new JLabel(Language.getInstance()
464:                                    .getText("No_QsScore_values_in_DB"));
465:                            pnl.add(label);
466:                        }
467:
468:                    } else {
469:                        Util.log("[LookAndFeel] WARNING pISQLConfig = "
470:                                + pISQLConfig);
471:                    }
472:                } catch (Exception e) {
473:                    e.printStackTrace();
474:                    Tools.ihmExceptionView(e);
475:                }
476:
477:                dialog.setVisible(true);
478:            }
479:
480:            private void calculateQsScoreValuePerformed() {
481:                ArrayList environments = DataModel.getCurrentProject()
482:                        .getEnvironmentListFromModel();
483:                chooseEnvWindow = new AskChooseEnvironment();
484:                if ((environments == null) && (environments.size() == 0)) {
485:                    JOptionPane.showMessageDialog(new Frame(), Language
486:                            .getInstance().getText("QsScore_problem"), Language
487:                            .getInstance().getText("Information_!"),
488:                            JOptionPane.INFORMATION_MESSAGE);
489:                } else {
490:                    chooseEnvWindow.show();
491:                }
492:            }
493:
494:            private void calculateQsScore(Environment env) {
495:                int choice = -1;
496:                Object[] options = { Language.getInstance().getText("Oui"),
497:                        Language.getInstance().getText("Non") };
498:                chooseEnvWindow.dispose();
499:                if (env != null) {
500:                    int[] all_score_risk = new int[8];
501:                    all_score_risk[0] = getQsScoreRiskForCat(0);
502:                    all_score_risk[1] = getQsScoreRiskForCat(1);
503:                    all_score_risk[2] = getQsScoreRiskForCat(2);
504:                    all_score_risk[3] = getQsScoreRiskForCat(3);
505:                    all_score_risk[4] = getQsScoreRiskForCat(4);
506:                    all_score_risk[5] = getQsScoreRiskForCat(5);
507:                    all_score_risk[6] = getQsScoreRiskForCat(6);
508:                    all_score_risk[7] = getQsScoreRiskForCat(7);
509:
510:                    int[] all_score_defect = new int[8];
511:                    all_score_defect[0] = getQsScoreDefectForCat(0, env);
512:                    all_score_defect[1] = getQsScoreDefectForCat(1, env);
513:                    all_score_defect[2] = getQsScoreDefectForCat(2, env);
514:                    all_score_defect[3] = getQsScoreDefectForCat(3, env);
515:                    all_score_defect[4] = getQsScoreDefectForCat(4, env);
516:                    all_score_defect[5] = getQsScoreDefectForCat(5, env);
517:                    all_score_defect[6] = getQsScoreDefectForCat(6, env);
518:                    all_score_defect[7] = getQsScoreDefectForCat(7, env);
519:
520:                    int[] all_score = new int[8];
521:
522:                    float qsScore = 3;
523:                    boolean score_null = false;
524:                    int i = 0;
525:                    int sum = 0;
526:                    int nb_score = 0;
527:
528:                    String message = "";
529:
530:                    while ((i < 8) && (!score_null)) {
531:                        int tmp_score = Math.min(all_score_risk[i],
532:                                all_score_defect[i]);
533:                        if (tmp_score == 0) {
534:                            score_null = true;
535:                            sum = 0;
536:                            nb_score++;
537:                        } else if (tmp_score > 0) {
538:                            sum += tmp_score;
539:                            nb_score++;
540:                        }
541:                        all_score[i] = tmp_score;
542:                        i++;
543:                    }
544:                    float score_tmp = Math
545:                            .round(((float) sum / (float) nb_score) * 100);
546:                    qsScore = score_tmp / 100;
547:
548:                    for (int j = 0; j < 8; j++) {
549:                        message += "- "
550:                                + Language.getInstance().getText("Categorie")
551:                                + " \"" + getReqCatString(j) + "\" : sr="
552:                                + getQsScoreString(all_score_risk[j]) + ", sa="
553:                                + getQsScoreString(all_score_defect[j])
554:                                + ", score=" + getQsScoreString(all_score[j])
555:                                + "\n";
556:                    }
557:                    message += "\n -------> QS Score = " + qsScore + "";
558:
559:                    choice = JOptionPane.showOptionDialog(new Frame(), message
560:                            + Language.getInstance().getText(
561:                                    "QsScore_saved_in_DB"), Language
562:                            .getInstance().getText("Information_!"),
563:                            JOptionPane.YES_NO_OPTION,
564:                            JOptionPane.QUESTION_MESSAGE, null, options,
565:                            options[1]);
566:
567:                    if (choice == JOptionPane.YES_OPTION) {
568:                        try {
569:                            ISQLConfig pISQLConfig = Api.getISQLObjectFactory()
570:                                    .getISQLConfig();
571:                            if (pISQLConfig != null) {
572:                                Hashtable projectConfs = pISQLConfig
573:                                        .getAllProjectConf(DataModel
574:                                                .getCurrentProject().getIdBdd());
575:                                Locale locale = Locale.getDefault();
576:                                DateFormat dateFormat = DateFormat
577:                                        .getDateTimeInstance(DateFormat.LONG,
578:                                                DateFormat.LONG, locale);
579:                                Date date = new Date();
580:                                String myDate = dateFormat.format(date);
581:                                String key = mantis.getBugTrackerName()
582:                                        + "_QsScore_" + env.getIdBdd();
583:
584:                                if (projectConfs.containsKey(key)) {
585:                                    pISQLConfig.updateProjectConf(key,
586:                                            (String) projectConfs.get(key)
587:                                                    + "," + myDate + "_"
588:                                                    + qsScore, DataModel
589:                                                    .getCurrentProject()
590:                                                    .getIdBdd());
591:                                } else {
592:                                    pISQLConfig.insertProjectConf(mantis
593:                                            .getBugTrackerName()
594:                                            + "_QsScore_" + env.getIdBdd(),
595:                                            myDate + "_" + qsScore, DataModel
596:                                                    .getCurrentProject()
597:                                                    .getIdBdd());
598:                                }
599:
600:                                // IHM
601:                                ArrayList row = new ArrayList(2);
602:                                row.add(0, env.getNameFromModel());
603:                                row.add(1, myDate);
604:                                row.add(2, new Float(qsScore));
605:
606:                                qsScoreTableModel.addRow(row);
607:
608:                            } else {
609:                                Util.log("[LookAndFeel] WARNING pISQLConfig = "
610:                                        + pISQLConfig);
611:                            }
612:                        } catch (Exception E) {
613:                            E.printStackTrace();
614:                            Tools.ihmExceptionView(E);
615:                        }
616:
617:                        JOptionPane.showMessageDialog(new Frame(), Language
618:                                .getInstance().getText(
619:                                        "QsScore_saved_confirmation"), Language
620:                                .getInstance().getText("Information_!"),
621:                                JOptionPane.INFORMATION_MESSAGE);
622:
623:                    }
624:                }
625:            }
626:
627:            private String getQsScoreString(int score) {
628:                String res = "N/A";
629:                if (score >= 0) {
630:                    res = "" + score;
631:                }
632:                return res;
633:            }
634:
635:            private int getQsScoreRiskCovForCat(int cat) {
636:                int res = 0;
637:
638:                if (reqPlug.isAllReqCovered(cat, 1000)) {
639:                    if (reqPlug.isAllReqCovered(cat, 100)) {
640:                        if (reqPlug.isAllReqCovered(cat, 10)) {
641:                            res = 3;
642:                        } else {
643:                            res = 2;
644:                        }
645:                    } else {
646:                        res = 1;
647:                    }
648:                }
649:                return res;
650:            }
651:
652:            private int getQsScoreRiskExecForCat(int cat) {
653:                int res = 0;
654:
655:                if (reqPlug.isAllReqCoveredExecuted(cat, 1000)) {
656:                    if (reqPlug.isAllReqCoveredExecuted(cat, 100)) {
657:                        if (reqPlug.isAllReqCoveredExecuted(cat, 10)) {
658:                            res = 3;
659:                        } else {
660:                            res = 2;
661:                        }
662:                    } else {
663:                        res = 1;
664:                    }
665:                }
666:                return res;
667:            }
668:
669:            private int getQsScoreRiskForCat(int cat) {
670:                int res = 0;
671:
672:                if (reqPlug.getNbReqForCat(cat) == 0) {
673:                    Object[] options = { Language.getInstance().getText("Oui"),
674:                            Language.getInstance().getText("Non") };
675:                    int choice = SalomeTMFContext.getInstance().askQuestion(
676:                            Language.getInstance().getText("No_Req_For_Cat")
677:                                    + " \""
678:                                    + getReqCatString(cat)
679:                                    + "\".\n"
680:                                    + Language.getInstance().getText(
681:                                            "Ask_NA_For_Cat"),
682:                            Language.getInstance().getText("Attention_!"),
683:                            JOptionPane.WARNING_MESSAGE, options);
684:                    if (choice == JOptionPane.NO_OPTION) {
685:                        res = 0;
686:                    } else {
687:                        res = -1;
688:                    }
689:
690:                } else {
691:                    res = Math.min(getQsScoreRiskCovForCat(cat),
692:                            getQsScoreRiskExecForCat(cat));
693:                }
694:
695:                return res;
696:            }
697:
698:            private int getQsScoreDefectForCat(int cat, Environment env) {
699:                int res = 3;
700:                if (reqPlug.getNbReqForCat(cat) != 0) {
701:                    Vector associatedTests = reqPlug
702:                            .getAssociatedTestsForReqCat(cat);
703:                    if (associatedTests != null && associatedTests.size() > 0) {
704:                        int j = 0;
705:                        while ((j < associatedTests.size()) && res > 0) {
706:                            int qs_tmp = 3;
707:                            Test test = (Test) associatedTests.elementAt(j);
708:                            qs_tmp = mantis.getQsScoreDefectForTest(test, env);
709:                            if (qs_tmp < res) {
710:                                res = qs_tmp;
711:                            }
712:                            j++;
713:                        }
714:                    }
715:                }
716:
717:                return res;
718:            }
719:
720:            private String getReqCatString(int index) {
721:                String cat = Language.getInstance().getText("Cat_Autre");
722:
723:                if (index == 0) {
724:                    cat = Language.getInstance().getText("Cat_Fonctionnel");
725:                } else if (index == 1) {
726:                    cat = Language.getInstance()
727:                            .getText("Cat_Interoperabilite");
728:                } else if (index == 2) {
729:                    cat = Language.getInstance().getText("Cat_Charge");
730:                } else if (index == 3) {
731:                    cat = Language.getInstance().getText("Cat_Performance");
732:                } else if (index == 4) {
733:                    cat = Language.getInstance().getText("Cat_Disponibilite");
734:                } else if (index == 5) {
735:                    cat = Language.getInstance().getText("Cat_Securite");
736:                } else if (index == 6) {
737:                    cat = Language.getInstance().getText("Cat_Exploitabilite");
738:                } else if (index == 7) {
739:                    cat = Language.getInstance().getText("Cat_Autre");
740:                }
741:
742:                return cat;
743:            }
744:
745:            class AskChooseEnvironment extends JDialog {
746:                JPanel panel = new JPanel(new BorderLayout());
747:
748:                JComboBox envComboBox = new JComboBox();
749:
750:                /** Creates a new instance of AskChooseEnvironment */
751:                public AskChooseEnvironment() {
752:
753:                    super (SalomeTMFContext.getInstance().ptrFrame, true);
754:
755:                    ArrayList envs = DataModel.getCurrentProject()
756:                            .getEnvironmentListFromModel();
757:                    for (int i = 0; i < envs.size(); i++) {
758:                        Environment currentEnv = (Environment) envs.get(i);
759:                        envComboBox.addItem(currentEnv.getNameFromModel());
760:                    }
761:
762:                    JButton validateButton = new JButton(Language.getInstance()
763:                            .getText("Valider"));
764:                    validateButton.setToolTipText(Language.getInstance()
765:                            .getText("Valider"));
766:                    validateButton.addActionListener(new ActionListener() {
767:                        public void actionPerformed(ActionEvent e) {
768:                            String envString = (String) envComboBox
769:                                    .getSelectedItem();
770:                            calculateQsScore(DataModel.getCurrentProject()
771:                                    .getEnvironmentFromModel(envString));
772:                            AskChooseEnvironment.this .dispose();
773:                        }
774:                    });
775:
776:                    JButton cancelButton = new JButton(Language.getInstance()
777:                            .getText("Annuler"));
778:                    cancelButton.setToolTipText(Language.getInstance().getText(
779:                            "Annuler"));
780:                    cancelButton.addActionListener(new ActionListener() {
781:                        public void actionPerformed(ActionEvent e) {
782:                            AskChooseEnvironment.this .dispose();
783:
784:                        }
785:                    });
786:
787:                    JLabel envLabel = new JLabel(Language.getInstance()
788:                            .getText("Environnement")
789:                            + " : ");
790:
791:                    JPanel textFieldPane = new JPanel();
792:                    textFieldPane.setLayout(new BoxLayout(textFieldPane,
793:                            BoxLayout.Y_AXIS));
794:                    textFieldPane.add(envComboBox);
795:
796:                    JPanel textPane = new JPanel();
797:                    textPane
798:                            .setLayout(new BoxLayout(textPane, BoxLayout.Y_AXIS));
799:                    textPane.add(envLabel);
800:
801:                    JPanel textPaneAll = new JPanel(new FlowLayout(
802:                            FlowLayout.CENTER));
803:                    textPaneAll.add(textPane);
804:                    textPaneAll.add(textFieldPane);
805:
806:                    JPanel buttonPanel = new JPanel(new FlowLayout(
807:                            FlowLayout.CENTER));
808:                    buttonPanel.add(validateButton);
809:                    buttonPanel.add(cancelButton);
810:
811:                    JPanel labelSet = new JPanel();
812:                    labelSet.add(textPaneAll);
813:
814:                    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
815:                    panel.add(labelSet);
816:                    panel.add(buttonPanel);
817:                    panel.setBorder(BorderFactory.createRaisedBevelBorder());
818:
819:                    this .getContentPane().add(panel);
820:
821:                    this .setTitle(Language.getInstance().getText(
822:                            "Environnement"));
823:                    //this.setLocation(300,300);
824:                    this.setLocationRelativeTo(this.getParent());
825:                    this.pack();
826:                }
827:
828:            }
829:
830:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.